summaryrefslogtreecommitdiff
path: root/justtabs/justtabs.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'justtabs/justtabs.cpp')
-rw-r--r--justtabs/justtabs.cpp62
1 files changed, 58 insertions, 4 deletions
diff --git a/justtabs/justtabs.cpp b/justtabs/justtabs.cpp
index 6b76e8d..9b7c6a4 100644
--- a/justtabs/justtabs.cpp
+++ b/justtabs/justtabs.cpp
@@ -18,10 +18,14 @@ HANDLE hEventClistDblClick, hEventWindow, hEventIconChanged;
typedef LRESULT (CALLBACK *WNDPROC)(HWND, UINT, WPARAM, LPARAM);
+FontID font_id_tabs = {0};
+FontIDW font_id_tabsw = {0};
+HFONT hFontTabs = 0;
+
PLUGININFO pluginInfo={
sizeof(PLUGININFO),
MODULE,
- PLUGIN_MAKE_VERSION(0,0,2,2),
+ PLUGIN_MAKE_VERSION(0,0,2,3),
"Put SRMM windows into a single frame",
"Scott Ellis",
"mail@scottellis.com.au",
@@ -75,8 +79,8 @@ void ShowPopup(HANDLE hContact, const char *msg) {
lpzContactName = (char *)CallService(MS_CLIST_GETCONTACTDISPLAYNAME,(WPARAM)hContact,0);
- lstrcpy(ppd.lpzContactName, lpzContactName);
- lstrcpy(ppd.lpzText, msg);
+ strcpy(ppd.lpzContactName, lpzContactName);
+ strcpy(ppd.lpzText, msg);
ppd.colorBack = GetSysColor(COLOR_BTNFACE);;
ppd.colorText = RGB(0,0,0);
ppd.PluginWindowProc = (WNDPROC)PopupDlgProc;
@@ -119,6 +123,22 @@ int ContactIconChanged(WPARAM wParam, LPARAM lParam) {
return 0;
}
+int ReloadFont(WPARAM wParam, LPARAM lParam) {
+ if(ServiceExists(MS_FONT_GETW)) {
+ LOGFONTW log_font;
+ if(hFontTabs) DeleteObject(hFontTabs);
+ CallService(MS_FONT_GETW, (WPARAM)&font_id_tabsw, (LPARAM)&log_font);
+ hFontTabs = CreateFontIndirectW(&log_font);
+ } else {
+ LOGFONTA log_font;
+ if(hFontTabs) DeleteObject(hFontTabs);
+ CallService(MS_FONT_GET, (WPARAM)&font_id_tabs, (LPARAM)&log_font);
+ hFontTabs = CreateFontIndirectA(&log_font);
+ }
+ SendMessage(pluginwind, WM_FONTRELOAD, 0, 0);
+ return 0;
+}
+
static int MainInit(WPARAM wParam,LPARAM lParam) {
if(ServiceExists(MS_UPDATE_REGISTER)) {
// register with updater
@@ -147,13 +167,47 @@ static int MainInit(WPARAM wParam,LPARAM lParam) {
}
// plugin only works for srmm classic
- if(GetModuleHandle("srmm")) {
+ if(GetModuleHandle(_T("srmm"))) {
CreateFrame((HWND)CallService(MS_CLUI_GETHWND, 0, 0), hInst);
hEventWindow = HookEvent(ME_MSG_WINDOWEVENT, WindowEvent);
hEventClistDblClick = HookEvent(ME_CLIST_DOUBLECLICKED, ClistDblClick);
hEventIconChanged = HookEvent(ME_CLIST_CONTACTICONCHANGED, ContactIconChanged);
}
+ if(ServiceExists(MS_FONT_REGISTERW)) {
+ font_id_tabsw.cbSize = sizeof(FontIDW);
+ font_id_tabsw.flags = FIDF_ALLOWEFFECTS;
+ //wcsncpy(font_id_tabsw.group, TranslateW("Container"), 64);
+ //wcsncpy(font_id_tabsw.name, TranslateW("Tabs"), 64);
+ wcsncpy(font_id_tabsw.group, TranslateW(L"Container"), 64);
+ wcsncpy(font_id_tabsw.name, TranslateW(L"Tabs"), 64);
+ strcpy(font_id_tabsw.dbSettingsGroup, MODULE);
+ strcpy(font_id_tabsw.prefix, "FontTabs");
+ font_id_tabsw.order = 0;
+
+ CallService(MS_FONT_REGISTERW, (WPARAM)&font_id_tabsw, 0);
+ ReloadFont(0, 0);
+ HookEvent(ME_FONT_RELOAD, ReloadFont);
+ } else if(ServiceExists(MS_FONT_REGISTER)) {
+ font_id_tabs.cbSize = sizeof(FontID);
+ font_id_tabs.flags = FIDF_ALLOWEFFECTS;
+ strncpy(font_id_tabs.group, Translate("Container"), 64);
+ strncpy(font_id_tabs.name, Translate("Tabs"), 64);
+ strcpy(font_id_tabs.dbSettingsGroup, MODULE);
+ strcpy(font_id_tabs.prefix, "FontTabs");
+ font_id_tabs.order = 0;
+
+ CallService(MS_FONT_REGISTER, (WPARAM)&font_id_tabs, 0);
+ ReloadFont(0, 0);
+ HookEvent(ME_FONT_RELOAD, ReloadFont);
+ } else {
+ LOGFONT lf = {0};
+ lf.lfCharSet = DEFAULT_CHARSET;
+ lf.lfHeight = -14;
+ lf.lfWeight = FW_BOLD;
+ hFontTabs = CreateFontIndirect(&lf);
+ }
+
return 0;
}