From c0fea55f25ad1f675f40815cefb34b435f32119b Mon Sep 17 00:00:00 2001 From: sje Date: Thu, 23 Nov 2006 03:22:51 +0000 Subject: use ansi font services if unicode ones unavailable bugfixes to allow pure ansi build git-svn-id: https://server.scottellis.com.au/svn/mim_plugs@57 4f64403b-2f21-0410-a795-97e2b3489a10 --- yapp/popups2.cpp | 155 ++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 119 insertions(+), 36 deletions(-) (limited to 'yapp/popups2.cpp') diff --git a/yapp/popups2.cpp b/yapp/popups2.cpp index 3439832..1027289 100644 --- a/yapp/popups2.cpp +++ b/yapp/popups2.cpp @@ -8,30 +8,35 @@ #include "options.h" #include "popwin.h" #include "notify.h" +#include "str_utils.h" HMODULE hInst = 0; HANDLE mainThread = 0; MNOTIFYLINK *notifyLink = 0; -int code_page = CP_ACP; - // used to work around a bug in neweventnotify and others with the address passed in the GetPluginData function bool ignore_gpd_passed_addy = false; -FontIDW font_id_firstline = {0}, font_id_secondline = {0}, font_id_time = {0}; -ColourIDW colour_id_bg = {0}, colour_id_border = {0}, colour_id_sidebar = {0}; +FontID font_id_firstline = {0}, font_id_secondline = {0}, font_id_time = {0}; +ColourID colour_id_bg = {0}, colour_id_border = {0}, colour_id_sidebar = {0}; +FontIDW font_id_firstlinew = {0}, font_id_secondlinew = {0}, font_id_timew = {0}; +ColourIDW colour_id_bgw = {0}, colour_id_borderw = {0}, colour_id_sidebarw = {0}; + COLORREF colBg = GetSysColor(COLOR_3DSHADOW); HFONT hFontFirstLine = 0, hFontSecondLine = 0, hFontTime = 0; COLORREF colFirstLine = RGB(255, 0, 0), colSecondLine = 0, colTime = RGB(0, 0, 255), colBorder = RGB(0, 0, 0), colSidebar = RGB(128, 128, 128); - // hooked here so it's in the main thread HANDLE hAvChangeEvent = 0; PLUGININFO pluginInfo={ sizeof(PLUGININFO), +#ifndef _UNICODE + __PLUGIN_NAME " (ANSI)", +#else __PLUGIN_NAME, +#endif PLUGIN_MAKE_VERSION(__MAJOR_VERSION, __MINOR_VERSION, __RELEASE_NUM, __BUILD_NUM), __DESC, __AUTHOR, @@ -59,19 +64,35 @@ extern "C" POPUPS2_API PLUGININFO* MirandaPluginInfo(DWORD mirandaVersion) int ReloadFont(WPARAM wParam, LPARAM lParam) { LOGFONT log_font; - if(hFontFirstLine) DeleteObject(hFontFirstLine); - colFirstLine = CallService(MS_FONT_GETW, (WPARAM)&font_id_firstline, (LPARAM)&log_font); - hFontFirstLine = CreateFontIndirect(&log_font); - if(hFontSecondLine) DeleteObject(hFontSecondLine); - colSecondLine = CallService(MS_FONT_GETW, (WPARAM)&font_id_secondline, (LPARAM)&log_font); - hFontSecondLine = CreateFontIndirect(&log_font); - if(hFontTime) DeleteObject(hFontTime); - colTime = CallService(MS_FONT_GETW, (WPARAM)&font_id_time, (LPARAM)&log_font); - hFontTime = CreateFontIndirect(&log_font); - - colBg = CallService(MS_COLOUR_GETW, (WPARAM)&colour_id_bg, 0); - colBorder = CallService(MS_COLOUR_GETW, (WPARAM)&colour_id_border, 0); - colSidebar = CallService(MS_COLOUR_GETW, (WPARAM)&colour_id_sidebar, 0); + if(ServiceExists(MS_FONT_GETW)) { + if(hFontFirstLine) DeleteObject(hFontFirstLine); + colFirstLine = CallService(MS_FONT_GETW, (WPARAM)&font_id_firstlinew, (LPARAM)&log_font); + hFontFirstLine = CreateFontIndirect(&log_font); + if(hFontSecondLine) DeleteObject(hFontSecondLine); + colSecondLine = CallService(MS_FONT_GETW, (WPARAM)&font_id_secondlinew, (LPARAM)&log_font); + hFontSecondLine = CreateFontIndirect(&log_font); + if(hFontTime) DeleteObject(hFontTime); + colTime = CallService(MS_FONT_GETW, (WPARAM)&font_id_timew, (LPARAM)&log_font); + hFontTime = CreateFontIndirect(&log_font); + + colBg = CallService(MS_COLOUR_GETW, (WPARAM)&colour_id_bgw, 0); + colBorder = CallService(MS_COLOUR_GETW, (WPARAM)&colour_id_borderw, 0); + colSidebar = CallService(MS_COLOUR_GETW, (WPARAM)&colour_id_sidebarw, 0); + } else { + if(hFontFirstLine) DeleteObject(hFontFirstLine); + colFirstLine = CallService(MS_FONT_GET, (WPARAM)&font_id_firstline, (LPARAM)&log_font); + hFontFirstLine = CreateFontIndirect(&log_font); + if(hFontSecondLine) DeleteObject(hFontSecondLine); + colSecondLine = CallService(MS_FONT_GET, (WPARAM)&font_id_secondline, (LPARAM)&log_font); + hFontSecondLine = CreateFontIndirect(&log_font); + if(hFontTime) DeleteObject(hFontTime); + colTime = CallService(MS_FONT_GET, (WPARAM)&font_id_time, (LPARAM)&log_font); + hFontTime = CreateFontIndirect(&log_font); + + colBg = CallService(MS_COLOUR_GET, (WPARAM)&colour_id_bg, 0); + colBorder = CallService(MS_COLOUR_GET, (WPARAM)&colour_id_border, 0); + colSidebar = CallService(MS_COLOUR_GET, (WPARAM)&colour_id_sidebar, 0); + } return 0; } @@ -108,61 +129,121 @@ int ModulesLoaded(WPARAM wParam, LPARAM lParam) { } if(ServiceExists(MS_FONT_REGISTERW)) { + font_id_firstlinew.cbSize = sizeof(FontIDW); + font_id_firstlinew.flags = FIDF_ALLOWEFFECTS; + t2w(TranslateT("Popups"), font_id_firstlinew.group, 64); + t2w(TranslateT("First line"), font_id_firstlinew.name, 64); + strcpy(font_id_firstlinew.dbSettingsGroup, MODULE); + strcpy(font_id_firstlinew.prefix, "FontFirst"); + font_id_firstlinew.order = 0; + + font_id_secondlinew.cbSize = sizeof(FontIDW); + font_id_secondlinew.flags = FIDF_ALLOWEFFECTS; + t2w(TranslateT("Popups"), font_id_secondlinew.group, 64); + t2w(TranslateT("Second line"), font_id_secondlinew.name, 64); + strcpy(font_id_secondlinew.dbSettingsGroup, MODULE); + strcpy(font_id_secondlinew.prefix, "FontSecond"); + font_id_secondlinew.order = 1; + + font_id_timew.cbSize = sizeof(FontIDW); + font_id_timew.flags = FIDF_ALLOWEFFECTS; + t2w(TranslateT("Popups"), font_id_timew.group, 64); + t2w(TranslateT("Time"), font_id_timew.name, 64); + strcpy(font_id_timew.dbSettingsGroup, MODULE); + strcpy(font_id_timew.prefix, "FontTime"); + font_id_timew.order = 2; + + CallService(MS_FONT_REGISTERW, (WPARAM)&font_id_firstlinew, 0); + CallService(MS_FONT_REGISTERW, (WPARAM)&font_id_secondlinew, 0); + CallService(MS_FONT_REGISTERW, (WPARAM)&font_id_timew, 0); + + colour_id_bgw.cbSize = sizeof(ColourIDW); + t2w(TranslateT("Popups"), colour_id_bgw.group, 64); + t2w(TranslateT("Background"), colour_id_bgw.name, 64); + strcpy(colour_id_bgw.dbSettingsGroup, MODULE); + strcpy(colour_id_bgw.setting, "ColourBg"); + colour_id_bgw.defcolour = GetSysColor(COLOR_3DSHADOW); + colour_id_bgw.order = 0; + + colour_id_borderw.cbSize = sizeof(ColourIDW); + t2w(TranslateT("Popups"), colour_id_borderw.group, 64); + t2w(TranslateT("Border"), colour_id_borderw.name, 64); + strcpy(colour_id_borderw.dbSettingsGroup, MODULE); + strcpy(colour_id_borderw.setting, "ColourBorder"); + colour_id_borderw.defcolour = RGB(0, 0, 0); + colour_id_borderw.order = 1; + + colour_id_sidebarw.cbSize = sizeof(ColourIDW); + t2w(TranslateT("Popups"), colour_id_sidebarw.group, 64); + t2w(TranslateT("Sidebar"), colour_id_sidebarw.name, 64); + strcpy(colour_id_sidebarw.dbSettingsGroup, MODULE); + strcpy(colour_id_sidebarw.setting, "ColourSidebar"); + colour_id_sidebarw.defcolour = RGB(128, 128, 128); + colour_id_sidebarw.order = 2; + + CallService(MS_COLOUR_REGISTERW, (WPARAM)&colour_id_bgw, 0); + CallService(MS_COLOUR_REGISTERW, (WPARAM)&colour_id_borderw, 0); + CallService(MS_COLOUR_REGISTERW, (WPARAM)&colour_id_sidebarw, 0); + + ReloadFont(0, 0); + + hEventReloadFont = HookEvent(ME_FONT_RELOAD, ReloadFont); + } else if(ServiceExists(MS_FONT_REGISTER)) { font_id_firstline.cbSize = sizeof(FontIDW); font_id_firstline.flags = FIDF_ALLOWEFFECTS; - wcscpy(font_id_firstline.group, TranslateT("Popups")); - wcscpy(font_id_firstline.name, TranslateT("First Line")); + t2a(TranslateT("Popups"), font_id_firstline.group, 64); + t2a(TranslateT("First line"), font_id_firstline.name, 64); strcpy(font_id_firstline.dbSettingsGroup, MODULE); strcpy(font_id_firstline.prefix, "FontFirst"); font_id_firstline.order = 0; font_id_secondline.cbSize = sizeof(FontIDW); font_id_secondline.flags = FIDF_ALLOWEFFECTS; - wcscpy(font_id_secondline.group, TranslateT("Popups")); - wcscpy(font_id_secondline.name, TranslateT("Second Line")); + t2a(TranslateT("Popups"), font_id_secondline.group, 64); + t2a(TranslateT("Second line"), font_id_secondline.name, 64); strcpy(font_id_secondline.dbSettingsGroup, MODULE); strcpy(font_id_secondline.prefix, "FontSecond"); font_id_secondline.order = 1; font_id_time.cbSize = sizeof(FontIDW); font_id_time.flags = FIDF_ALLOWEFFECTS; - wcscpy(font_id_time.group, TranslateT("Popups")); - wcscpy(font_id_time.name, TranslateT("Time")); + t2a(TranslateT("Popups"), font_id_time.group, 64); + t2a(TranslateT("Time"), font_id_time.name, 64); strcpy(font_id_time.dbSettingsGroup, MODULE); strcpy(font_id_time.prefix, "FontTime"); font_id_time.order = 2; - CallService(MS_FONT_REGISTERW, (WPARAM)&font_id_firstline, 0); - CallService(MS_FONT_REGISTERW, (WPARAM)&font_id_secondline, 0); - CallService(MS_FONT_REGISTERW, (WPARAM)&font_id_time, 0); + CallService(MS_FONT_REGISTER, (WPARAM)&font_id_firstline, 0); + CallService(MS_FONT_REGISTER, (WPARAM)&font_id_secondline, 0); + CallService(MS_FONT_REGISTER, (WPARAM)&font_id_time, 0); colour_id_bg.cbSize = sizeof(ColourIDW); - wcscpy(colour_id_bg.group, TranslateT("Popups")); - wcscpy(colour_id_bg.name, TranslateT("Background")); + t2a(TranslateT("Popups"), colour_id_bg.group, 64); + t2a(TranslateT("Background"), colour_id_bg.name, 64); strcpy(colour_id_bg.dbSettingsGroup, MODULE); strcpy(colour_id_bg.setting, "ColourBg"); colour_id_bg.defcolour = GetSysColor(COLOR_3DSHADOW); colour_id_bg.order = 0; colour_id_border.cbSize = sizeof(ColourIDW); - wcscpy(colour_id_border.group, TranslateT("Popups")); - wcscpy(colour_id_border.name, TranslateT("Border")); + t2a(TranslateT("Popups"), colour_id_border.group, 64); + t2a(TranslateT("Border"), colour_id_border.name, 64); strcpy(colour_id_border.dbSettingsGroup, MODULE); strcpy(colour_id_border.setting, "ColourBorder"); colour_id_border.defcolour = RGB(0, 0, 0); colour_id_border.order = 1; colour_id_sidebar.cbSize = sizeof(ColourIDW); - wcscpy(colour_id_sidebar.group, TranslateT("Popups")); - wcscpy(colour_id_sidebar.name, TranslateT("Sidebar")); + t2a(TranslateT("Popups"), colour_id_sidebar.group, 64); + t2a(TranslateT("Sidebar"), colour_id_sidebar.name, 64); strcpy(colour_id_sidebar.dbSettingsGroup, MODULE); strcpy(colour_id_sidebar.setting, "ColourSidebar"); colour_id_sidebar.defcolour = RGB(128, 128, 128); colour_id_sidebar.order = 2; - CallService(MS_COLOUR_REGISTERW, (WPARAM)&colour_id_bg, 0); - CallService(MS_COLOUR_REGISTERW, (WPARAM)&colour_id_border, 0); - CallService(MS_COLOUR_REGISTERW, (WPARAM)&colour_id_sidebar, 0); + CallService(MS_COLOUR_REGISTER, (WPARAM)&colour_id_bg, 0); + CallService(MS_COLOUR_REGISTER, (WPARAM)&colour_id_border, 0); + CallService(MS_COLOUR_REGISTER, (WPARAM)&colour_id_sidebar, 0); ReloadFont(0, 0); @@ -207,6 +288,8 @@ extern "C" int POPUPS2_API Load(PLUGINLINK *link) { pluginLink = link; DuplicateHandle(GetCurrentProcess(), GetCurrentThread(), GetCurrentProcess(), &mainThread, THREAD_SET_CONTEXT, FALSE, 0); + set_codepage(); + INITCOMMONCONTROLSEX icex; // Ensure that the common control DLL is loaded (for listview) -- cgit v1.2.3