diff options
Diffstat (limited to 'font_service/module_fonts.cpp')
-rw-r--r-- | font_service/module_fonts.cpp | 239 |
1 files changed, 239 insertions, 0 deletions
diff --git a/font_service/module_fonts.cpp b/font_service/module_fonts.cpp new file mode 100644 index 0000000..ff84740 --- /dev/null +++ b/font_service/module_fonts.cpp @@ -0,0 +1,239 @@ +#include "common.h"
+#include "module_fonts.h"
+#include "m_fontservice.h"
+
+#define CLIST_FONTID_CONTACTS 0
+#define CLIST_FONTID_INVIS 1
+#define CLIST_FONTID_OFFLINE 2
+#define CLIST_FONTID_NOTONLIST 3
+#define CLIST_FONTID_GROUPS 4
+#define CLIST_FONTID_GROUPCOUNTS 5
+#define CLIST_FONTID_DIVIDERS 6
+#define CLIST_FONTID_OFFINVIS 7
+#define CLIST_FONTID_MAX 7
+
+// from CList
+static const char *szClistFontIdDescr[CLIST_FONTID_MAX + 1] =
+ { "Standard contacts", "Online contacts to whom you have a different visibility", "Offline contacts", "Contacts which are 'not on list'",
+"Groups", "Group member counts", "Dividers", "Offline contacts to whom you have a different visibility" };
+
+static int fontListOrder[CLIST_FONTID_MAX + 1] =
+ { CLIST_FONTID_CONTACTS, CLIST_FONTID_INVIS, CLIST_FONTID_OFFLINE, CLIST_FONTID_OFFINVIS,
+ CLIST_FONTID_NOTONLIST, CLIST_FONTID_GROUPS, CLIST_FONTID_GROUPCOUNTS, CLIST_FONTID_DIVIDERS };
+
+
+// from SRMM
+struct SRMMFontOptionsList
+{
+ char *szDescr;
+ COLORREF defColour;
+ char *szDefFace;
+ BYTE defCharset, defStyle;
+ char defSize;
+ COLORREF colour;
+ char szFace[LF_FACESIZE];
+ BYTE charset, style;
+ char size;
+}
+static fontOptionsList[] = {
+ {"Outgoing messages", RGB(106, 106, 106), "Arial", DEFAULT_CHARSET, 0, -12},
+ {"Incoming messages", RGB(0, 0, 0), "Arial", DEFAULT_CHARSET, 0, -12},
+ {"Outgoing name", RGB(89, 89, 89), "Arial", DEFAULT_CHARSET, DBFONTF_BOLD, -12},
+ {"Outgoing time", RGB(0, 0, 0), "Terminal", DEFAULT_CHARSET, DBFONTF_BOLD, -9},
+ {"Outgoing colon", RGB(89, 89, 89), "Arial", DEFAULT_CHARSET, 0, -11},
+ {"Incoming name", RGB(215, 0, 0), "Arial", DEFAULT_CHARSET, DBFONTF_BOLD, -12},
+ {"Incoming time", RGB(0, 0, 0), "Terminal", DEFAULT_CHARSET, DBFONTF_BOLD, -9},
+ {"Incoming colon", RGB(215, 0, 0), "Arial", DEFAULT_CHARSET, 0, -11},
+ {"Message area", RGB(0, 0, 0), "Arial", DEFAULT_CHARSET, 0, -12},
+ {"Notices", RGB(90, 90, 160), "Arial", DEFAULT_CHARSET, 0, -12},
+};
+const int msgDlgFontCount = sizeof(fontOptionsList) / sizeof(fontOptionsList[0]);
+
+struct ChatFontOptionsList
+{
+ char *szDescr;
+ COLORREF defColour;
+ char *szDefFace;
+ BYTE defCharset, defStyle;
+ char defSize;
+ COLORREF colour;
+ char szFace[LF_FACESIZE];
+ BYTE charset, style;
+ char size;
+}
+
+//remeber to put these in the Translate( ) template file too
+static chatFontOptionsList[] = {
+ {"Timestamp", RGB(50, 50, 240), "Terminal", DEFAULT_CHARSET, 0, -8},
+ {"Others nicknames", RGB(0, 0, 0), "Courier New", DEFAULT_CHARSET, DBFONTF_BOLD, -13},
+ {"Your nickname", RGB(0, 0, 0), "Courier New", DEFAULT_CHARSET, DBFONTF_BOLD, -13},
+ {"User has joined", RGB(90, 160, 90), "Courier New", DEFAULT_CHARSET, 0, -13},
+ {"User has left", RGB(160, 160, 90), "Courier New", DEFAULT_CHARSET, 0, -13},
+ {"User has disconnected", RGB(160, 90, 90), "Courier New", DEFAULT_CHARSET, 0, -13},
+ {"User kicked ...", RGB(100, 100, 100), "Courier New", DEFAULT_CHARSET, 0, -13},
+ {"User is now known as ...", RGB(90, 90, 160), "Courier New", DEFAULT_CHARSET, 0, -13},
+ {"Notice from user", RGB(160, 130, 60), "Courier New", DEFAULT_CHARSET, 0, -13},
+ {"Incoming message", RGB(90, 90, 90), "Courier New", DEFAULT_CHARSET, 0, -13},
+ {"Outgoing message", RGB(90, 90, 90), "Courier New", DEFAULT_CHARSET, 0, -13},
+ {"The topic is ...", RGB(70, 70, 160), "Courier New", DEFAULT_CHARSET, 0, -13},
+ {"Information messages", RGB(130, 130, 195), "Courier New", DEFAULT_CHARSET, 0, -13},
+ {"User enables status for ...", RGB(70, 150, 70), "Courier New", DEFAULT_CHARSET, 0, -13},
+ {"User disables status for ...", RGB(150, 70, 70), "Courier New", DEFAULT_CHARSET, 0, -13},
+ {"Action message", RGB(160, 90, 160), "Courier New", DEFAULT_CHARSET, 0, -13},
+ {"Highlighted message", RGB(180, 150, 80), "Courier New", DEFAULT_CHARSET, 0, -13},
+ {"Message typing area", RGB(0, 0, 40), "MS Shell Dlg", DEFAULT_CHARSET, 0, -13},
+ {"User list members", RGB(40,40, 90), "MS Shell Dlg", DEFAULT_CHARSET, 0, -11},
+ {"User list statuses", RGB(0, 0, 0), "MS Shell Dlg", DEFAULT_CHARSET, DBFONTF_BOLD, -11},
+};
+const int chatMsgDlgFontCount = sizeof(chatFontOptionsList) / sizeof(chatFontOptionsList[0]);
+
+#define CLCDEFAULT_BKCOLOUR GetSysColor(COLOR_3DFACE)
+#define CLCDEFAULT_SELTEXTCOLOUR GetSysColor(COLOR_HIGHLIGHTTEXT)
+#define CLCDEFAULT_HOTTEXTCOLOUR (IsWinVer98Plus()?RGB(0,0,255):GetSysColor(COLOR_HOTLIGHT))
+#define CLCDEFAULT_QUICKSEARCHCOLOUR RGB(255,255,0)
+
+void RegisterCListFonts() {
+ FontID fontid = {0};
+ char idstr[10];
+
+ fontid.cbSize = sizeof(FontID);
+ fontid.flags = FIDF_ALLOWREREGISTER | FIDF_APPENDNAME | FIDF_NOAS | FIDF_SAVEPOINTSIZE | FIDF_ALLOWEFFECTS;
+
+ for (int i = 0; i <= CLIST_FONTID_MAX; i++) {
+ strncpy(fontid.dbSettingsGroup, "CLC", sizeof(fontid.dbSettingsGroup));
+ strncpy(fontid.group, Translate("Contact List"), sizeof(fontid.group));
+ strncpy(fontid.name, Translate(szClistFontIdDescr[fontListOrder[i]]), sizeof(fontid.name));
+ sprintf(idstr, "Font%d", fontListOrder[i]);
+ strncpy(fontid.prefix, idstr, sizeof(fontid.prefix));
+ fontid.order = fontListOrder[i];
+
+ CallService(MS_FONT_REGISTER, (WPARAM)&fontid, 0);
+ }
+
+
+ // and colours
+ ColourID colourid;
+ colourid.cbSize = sizeof(ColourID);
+ strncpy(colourid.dbSettingsGroup, "CLC", sizeof(colourid.dbSettingsGroup));
+
+ strncpy(colourid.setting, "BkColour", sizeof(colourid.setting));
+ strncpy(colourid.name, Translate("Background"), sizeof(colourid.name));
+ colourid.order = 0;
+ strncpy(colourid.group, Translate("Contact List"), sizeof(colourid.group));
+ colourid.defcolour = CLCDEFAULT_BKCOLOUR;
+ CallService(MS_COLOUR_REGISTER, (WPARAM)&colourid, 0);
+
+ strncpy(colourid.setting, "SelTextColour", sizeof(colourid.setting));
+ strncpy(colourid.name, Translate("Selected Text"), sizeof(colourid.name));
+ colourid.order = 1;
+ strncpy(colourid.group, Translate("Contact List"), sizeof(colourid.group));
+ colourid.defcolour = CLCDEFAULT_SELTEXTCOLOUR;
+ CallService(MS_COLOUR_REGISTER, (WPARAM)&colourid, 0);
+
+ strncpy(colourid.setting, "HotTextColour", sizeof(colourid.setting));
+ strncpy(colourid.name, Translate("Hottrack Text"), sizeof(colourid.name));
+ colourid.order = 1;
+ strncpy(colourid.group, Translate("Contact List"), sizeof(colourid.group));
+ colourid.defcolour = CLCDEFAULT_HOTTEXTCOLOUR;
+ CallService(MS_COLOUR_REGISTER, (WPARAM)&colourid, 0);
+
+ strncpy(colourid.setting, "QuickSearchColour", sizeof(colourid.setting));
+ strncpy(colourid.name, Translate("Quicksearch Text"), sizeof(colourid.name));
+ colourid.order = 1;
+ strncpy(colourid.group, Translate("Contact List"), sizeof(colourid.group));
+ colourid.defcolour = CLCDEFAULT_QUICKSEARCHCOLOUR;
+ CallService(MS_COLOUR_REGISTER, (WPARAM)&colourid, 0);
+}
+
+void RegisterSRMMFonts() {
+ FontID fontid = {0};
+ char idstr[10];
+
+ fontid.cbSize = sizeof(FontID);
+ fontid.flags = FIDF_ALLOWREREGISTER | FIDF_DEFAULTVALID;
+ int index = 0;
+ for(int i = 0; i < msgDlgFontCount; i++, index++) {
+ strncpy(fontid.dbSettingsGroup, "SRMM", sizeof(fontid.dbSettingsGroup));
+ strncpy(fontid.group, Translate("Message Log"), sizeof(fontid.group));
+ strncpy(fontid.name, Translate(fontOptionsList[i].szDescr), sizeof(fontid.name));
+ sprintf(idstr, "SRMFont%d", index);
+ strncpy(fontid.prefix, idstr, sizeof(fontid.prefix));
+ fontid.order = index;
+
+ fontid.deffontsettings.charset = fontOptionsList[i].defCharset;
+ fontid.deffontsettings.colour = fontOptionsList[i].defColour;
+ fontid.deffontsettings.size = fontOptionsList[i].defSize;
+ fontid.deffontsettings.style = fontOptionsList[i].defStyle;
+ strncpy(fontid.deffontsettings.szFace, fontOptionsList[i].szDefFace, sizeof(fontid.deffontsettings.szFace));
+
+ CallService(MS_FONT_REGISTER, (WPARAM)&fontid, 0);
+ }
+
+ ColourID colourid;
+ colourid.cbSize = sizeof(ColourID);
+ strncpy(colourid.dbSettingsGroup, "SRMM", sizeof(colourid.dbSettingsGroup));
+ strncpy(colourid.setting, "BkgColour", sizeof(colourid.setting));
+ strncpy(colourid.name, Translate("Background"), sizeof(colourid.name));
+ colourid.order = 0;
+ strncpy(colourid.group, Translate("Message Log"), sizeof(colourid.group));
+
+ CallService(MS_COLOUR_REGISTER, (WPARAM)&colourid, 0);
+}
+
+void RegisterChatFonts() {
+
+ FontID fontid = {0};
+ char idstr[10];
+
+ fontid.cbSize = sizeof(FontID);
+ fontid.flags = FIDF_ALLOWREREGISTER | FIDF_DEFAULTVALID | FIDF_NEEDRESTART;
+ int index = 0;
+ for(int i = 0; i < chatMsgDlgFontCount; i++, index++) {
+ strncpy(fontid.dbSettingsGroup, "ChatFonts", sizeof(fontid.dbSettingsGroup));
+ strncpy(fontid.group, Translate("Chat Module"), sizeof(fontid.group));
+ strncpy(fontid.name, Translate(chatFontOptionsList[i].szDescr), sizeof(fontid.name));
+ sprintf(idstr, "Font%d", index);
+ strncpy(fontid.prefix, idstr, sizeof(fontid.prefix));
+ fontid.order = index;
+
+ fontid.deffontsettings.charset = chatFontOptionsList[i].defCharset;
+ fontid.deffontsettings.colour = chatFontOptionsList[i].defColour;
+ fontid.deffontsettings.size = chatFontOptionsList[i].defSize;
+ fontid.deffontsettings.style = chatFontOptionsList[i].defStyle;
+ strncpy(fontid.deffontsettings.szFace, chatFontOptionsList[i].szDefFace, sizeof(fontid.deffontsettings.szFace));
+
+ CallService(MS_FONT_REGISTER, (WPARAM)&fontid, 0);
+ }
+
+ ColourID colourid;
+ colourid.cbSize = sizeof(ColourID);
+ strncpy(colourid.dbSettingsGroup, "Chat", sizeof(colourid.dbSettingsGroup));
+
+ strncpy(colourid.setting, "ColorLogBG", sizeof(colourid.setting));
+ strncpy(colourid.name, Translate("Background"), sizeof(colourid.name));
+ colourid.order = 0;
+ strncpy(colourid.group, Translate("Chat Module"), sizeof(colourid.group));
+ colourid.defcolour = GetSysColor(COLOR_WINDOW);
+ CallService(MS_COLOUR_REGISTER, (WPARAM)&colourid, 0);
+
+ strncpy(colourid.setting, "ColorMessageBG", sizeof(colourid.setting));
+ strncpy(colourid.name, Translate("Message Background"), sizeof(colourid.name));
+ colourid.order = 0;
+ strncpy(colourid.group, Translate("Chat Module"), sizeof(colourid.group));
+ colourid.defcolour = GetSysColor(COLOR_WINDOW);
+ CallService(MS_COLOUR_REGISTER, (WPARAM)&colourid, 0);
+
+ strncpy(colourid.setting, "ColorNicklistBG", sizeof(colourid.setting));
+ strncpy(colourid.name, Translate("Userlist Background"), sizeof(colourid.name));
+ colourid.order = 0;
+ strncpy(colourid.group, Translate("Chat Module"), sizeof(colourid.group));
+ colourid.defcolour = GetSysColor(COLOR_WINDOW);
+ CallService(MS_COLOUR_REGISTER, (WPARAM)&colourid, 0);
+
+ strncpy(colourid.setting, "ColorNicklistLines", sizeof(colourid.setting));
+ strncpy(colourid.name, Translate("Userlist Lines"), sizeof(colourid.name));
+ colourid.order = 0;
+ strncpy(colourid.group, Translate("Chat Module"), sizeof(colourid.group));
+ colourid.defcolour = GetSysColor(COLOR_INACTIVEBORDER);
+ CallService(MS_COLOUR_REGISTER, (WPARAM)&colourid, 0);
+}
|