/* Copyright (C) 2011 monte This file is part of PSP NetParty. PSP NetParty is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ package pspnetparty.client.swt.config; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.graphics.Font; import org.eclipse.swt.graphics.FontData; import org.eclipse.swt.graphics.RGB; import pspnetparty.client.swt.SwtUtils; import pspnetparty.lib.IniSection; public class IniAppearance { public static final String SECTION = "Appearance"; private static final String FONT_GLOBAL = "FontGlobal"; private static final String FONT_LOG = "FontLog"; private static final String FONT_CHAT = "FontChat"; private static final String COLOR_BACKGROUND = "ColorBackground"; private static final String COLOR_FOREGROUND = "ColorForeground"; private static final String LOG_TIMESTAMP_RULER_WIDTH = "LogTimestampRulerWidth"; private static final String LOG_NAME_RULER_WIDTH = "LogNameRulerWidth"; private static final String COLOR_LOG_TIMESTAMP_RULER_BG = "ColorLogTimestampRulerBG"; private static final String COLOR_LOG_TIMESTAMP_RULER_FG = "ColorLogTimestampRulerFG"; private static final String COLOR_LOG_NAME_RULER_BG = "ColorLogNameRulerBG"; private static final String COLOR_LOG_NAME_RULER_FG = "ColorLogNameRulerFG"; private static final String COLOR_LOG_BACKGROUND = "ColorLogBackground"; private static final String COLOR_LOG_INFO = "ColorLogInfo"; private static final String COLOR_LOG_ERROR = "ColorLogError"; private static final String COLOR_LOG_APP = "ColorLogApp"; private static final String COLOR_LOG_SERVER = "ColorLogServer"; private static final String COLOR_LOG_ROOM = "ColorLogRoom"; private static final String COLOR_CHAT_MINE = "ColorChatMine"; private static final String COLOR_CHAT_OTHERS = "ColorChatOthers"; private static final String COLOR_CHAT_PRIVATE = "ColorChatPrivate"; public static final RGB DEFAULT_COLOR_BACKGROUND = new RGB(255, 255, 255); public static final RGB DEFAULT_COLOR_FOREGROUND = new RGB(0, 0, 0); public static final RGB DEFAULT_COLOR_LOG_TIMESTAMP_RULER_BG = new RGB(230, 230, 230); public static final RGB DEFAULT_COLOR_LOG_TIMESTAMP_RULER_FG = new RGB(0, 0, 100); public static final int DEFAULT_TIMESTAMP_RULER_WIDTH = 55; public static final RGB DEFAULT_COLOR_LOG_NAME_RULER_BG = new RGB(255, 230, 230); public static final RGB DEFAULT_COLOR_LOG_NAME_RULER_FG = new RGB(20, 0, 0); public static final int DEFAULT_NAME_RULER_WIDTH = 70; public static final RGB DEFAULT_COLOR_LOG_BACKGROUND = new RGB(255, 255, 255); public static final RGB DEFAULT_COLOR_LOG_INFO = new RGB(128, 128, 128); public static final RGB DEFAULT_COLOR_LOG_ERROR = new RGB(255, 0, 0); public static final RGB DEFAULT_COLOR_LOG_APP = new RGB(0, 100, 0); public static final RGB DEFAULT_COLOR_LOG_SERVER = new RGB(0, 0, 255); public static final RGB DEFAULT_COLOR_LOG_ROOM = new RGB(128, 0, 128); public static final RGB DEFAULT_COLOR_CHAT_MINE = new RGB(200, 70, 0); public static final RGB DEFAULT_COLOR_CHAT_OTHERS = new RGB(0, 0, 0); public static final RGB DEFAULT_COLOR_CHAT_PRIVATE = new RGB(0, 128, 0); private IniSection section; public IniAppearance(IniSection section) { this.section = section; FontData[] data = SwtUtils.DISPLAY.getSystemFont().getFontData(); fontGlobal = SwtUtils.loadFont(section.get(FONT_GLOBAL, ""), data); fontLog = SwtUtils.loadFont(section.get(FONT_LOG, ""), data); for (FontData d : data) d.setHeight(d.getHeight() + 4); fontChat = SwtUtils.loadFont(section.get(FONT_CHAT, ""), data); colorBackground = SwtUtils.loadColor(section.get(COLOR_BACKGROUND, ""), DEFAULT_COLOR_BACKGROUND); colorForeground = SwtUtils.loadColor(section.get(COLOR_FOREGROUND, ""), DEFAULT_COLOR_FOREGROUND); logTimestampRulerWidth = section.get(LOG_TIMESTAMP_RULER_WIDTH, DEFAULT_TIMESTAMP_RULER_WIDTH); logNameRulerWidth = section.get(LOG_NAME_RULER_WIDTH, DEFAULT_NAME_RULER_WIDTH); colorLogTimestampRulerBG = SwtUtils.loadColor(section.get(COLOR_LOG_TIMESTAMP_RULER_BG, ""), DEFAULT_COLOR_LOG_TIMESTAMP_RULER_BG); colorLogTimestampRulerFG = SwtUtils.loadColor(section.get(COLOR_LOG_TIMESTAMP_RULER_FG, ""), DEFAULT_COLOR_LOG_TIMESTAMP_RULER_FG); colorLogNameRulerBG = SwtUtils.loadColor(section.get(COLOR_LOG_NAME_RULER_BG, ""), DEFAULT_COLOR_LOG_NAME_RULER_BG); colorLogNameRulerFG = SwtUtils.loadColor(section.get(COLOR_LOG_NAME_RULER_FG, ""), DEFAULT_COLOR_LOG_NAME_RULER_FG); colorLogBackground = SwtUtils.loadColor(section.get(COLOR_LOG_BACKGROUND, ""), DEFAULT_COLOR_LOG_BACKGROUND); colorLogInfo = SwtUtils.loadColor(section.get(COLOR_LOG_INFO, ""), DEFAULT_COLOR_LOG_INFO); colorLogError = SwtUtils.loadColor(section.get(COLOR_LOG_ERROR, ""), DEFAULT_COLOR_LOG_ERROR); colorLogApp = SwtUtils.loadColor(section.get(COLOR_LOG_APP, ""), DEFAULT_COLOR_LOG_APP); colorLogServer = SwtUtils.loadColor(section.get(COLOR_LOG_SERVER, ""), DEFAULT_COLOR_LOG_SERVER); colorLogRoom = SwtUtils.loadColor(section.get(COLOR_LOG_ROOM, ""), DEFAULT_COLOR_LOG_ROOM); colorChatMine = SwtUtils.loadColor(section.get(COLOR_CHAT_MINE, ""), DEFAULT_COLOR_CHAT_MINE); colorChatOthers = SwtUtils.loadColor(section.get(COLOR_CHAT_OTHERS, ""), DEFAULT_COLOR_CHAT_OTHERS); colorChatPrivate = SwtUtils.loadColor(section.get(COLOR_CHAT_PRIVATE, ""), DEFAULT_COLOR_CHAT_PRIVATE); } private Font fontGlobal; private Font fontLog; private Font fontChat; private Color colorBackground; private Color colorForeground; private int logTimestampRulerWidth; private int logNameRulerWidth; private Color colorLogTimestampRulerBG; private Color colorLogTimestampRulerFG; private Color colorLogNameRulerBG; private Color colorLogNameRulerFG; private Color colorLogBackground; private Color colorLogInfo; private Color colorLogError; private Color colorLogApp; private Color colorLogServer; private Color colorLogRoom; private Color colorChatMine; private Color colorChatOthers; private Color colorChatPrivate; public Font getFontGlobal() { return fontGlobal; } public void setFontGlobal(Font fontGlobal) { this.fontGlobal = fontGlobal; section.set(FONT_GLOBAL, SwtUtils.fontToString(fontGlobal)); } public Font getFontLog() { return fontLog; } public void setFontLog(Font fontLog) { this.fontLog = fontLog; section.set(FONT_LOG, SwtUtils.fontToString(fontLog)); } public Font getFontChat() { return fontChat; } public void setFontChat(Font fontChat) { this.fontChat = fontChat; section.set(FONT_CHAT, SwtUtils.fontToString(fontChat)); } public Color getColorBackground() { return colorBackground; } public void setColorBackground(Color colorBackground) { this.colorBackground = colorBackground; section.set(COLOR_BACKGROUND, SwtUtils.colorToString(colorBackground)); } public Color getColorForeground() { return colorForeground; } public void setColorForeground(Color colorForeground) { this.colorForeground = colorForeground; section.set(COLOR_FOREGROUND, SwtUtils.colorToString(colorForeground)); } public int getLogTimestampRulerWidth() { return logTimestampRulerWidth; } public void setLogTimestampRulerWidth(int logTimestampRulerWidth) { this.logTimestampRulerWidth = logTimestampRulerWidth; section.set(LOG_TIMESTAMP_RULER_WIDTH, logTimestampRulerWidth); } public int getLogNameRulerWidth() { return logNameRulerWidth; } public void setLogNameRulerWidth(int logNameRulerWidth) { this.logNameRulerWidth = logNameRulerWidth; section.set(LOG_NAME_RULER_WIDTH, logNameRulerWidth); } public Color getColorLogTimestampRulerBG() { return colorLogTimestampRulerBG; } public void setColorLogTimestampRulerBG(Color colorLogTimestampRulerBG) { this.colorLogTimestampRulerBG = colorLogTimestampRulerBG; section.set(COLOR_LOG_TIMESTAMP_RULER_BG, SwtUtils.colorToString(colorLogTimestampRulerBG)); } public Color getColorLogTimestampRulerFG() { return colorLogTimestampRulerFG; } public void setColorLogTimestampRulerFG(Color colorLogTimestampRulerFG) { this.colorLogTimestampRulerFG = colorLogTimestampRulerFG; section.set(COLOR_LOG_TIMESTAMP_RULER_FG, SwtUtils.colorToString(colorLogTimestampRulerFG)); } public Color getColorLogNameRulerBG() { return colorLogNameRulerBG; } public void setColorLogNameRulerBG(Color colorLogNameRulerBG) { this.colorLogNameRulerBG = colorLogNameRulerBG; section.set(COLOR_LOG_NAME_RULER_BG, SwtUtils.colorToString(colorLogNameRulerBG)); } public Color getColorLogNameRulerFG() { return colorLogNameRulerFG; } public void setColorLogNameRulerFG(Color colorLogNameRulerFG) { this.colorLogNameRulerFG = colorLogNameRulerFG; section.set(COLOR_LOG_NAME_RULER_FG, SwtUtils.colorToString(colorLogNameRulerFG)); } public Color getColorLogBackground() { return colorLogBackground; } public void setColorLogBackground(Color colorLogBackground) { this.colorLogBackground = colorLogBackground; section.set(COLOR_LOG_BACKGROUND, SwtUtils.colorToString(colorLogBackground)); } public Color getColorLogInfo() { return colorLogInfo; } public void setColorLogInfo(Color colorLogInfo) { this.colorLogInfo = colorLogInfo; section.set(COLOR_LOG_INFO, SwtUtils.colorToString(colorLogInfo)); } public Color getColorLogError() { return colorLogError; } public void setColorLogError(Color colorLogError) { this.colorLogError = colorLogError; section.set(COLOR_LOG_ERROR, SwtUtils.colorToString(colorLogError)); } public Color getColorLogApp() { return colorLogApp; } public void setColorLogApp(Color colorLogApp) { this.colorLogApp = colorLogApp; section.set(COLOR_LOG_APP, SwtUtils.colorToString(colorLogApp)); } public Color getColorLogServer() { return colorLogServer; } public void setColorLogServer(Color colorLogServer) { this.colorLogServer = colorLogServer; section.set(COLOR_LOG_SERVER, SwtUtils.colorToString(colorLogServer)); } public Color getColorLogRoom() { return colorLogRoom; } public void setColorLogRoom(Color colorLogRoom) { this.colorLogRoom = colorLogRoom; section.set(COLOR_LOG_ROOM, SwtUtils.colorToString(colorLogRoom)); } public Color getColorChatMine() { return colorChatMine; } public void setColorChatMine(Color colorChatMine) { this.colorChatMine = colorChatMine; section.set(COLOR_CHAT_MINE, SwtUtils.colorToString(colorChatMine)); } public Color getColorChatOthers() { return colorChatOthers; } public void setColorChatOthers(Color colorChatOthers) { this.colorChatOthers = colorChatOthers; section.set(COLOR_CHAT_OTHERS, SwtUtils.colorToString(colorChatOthers)); } public Color getColorChatPrivate() { return colorChatPrivate; } public void setColorChatPrivate(Color colorChatPrivate) { this.colorChatPrivate = colorChatPrivate; section.set(COLOR_CHAT_PRIVATE, SwtUtils.colorToString(colorChatPrivate)); } }