From 1544759bd9b2418f5929680adf9b66e727f35d98 Mon Sep 17 00:00:00 2001 From: sje Date: Tue, 28 Nov 2006 00:43:38 +0000 Subject: patch for fontservice ansi/unicode services by TioDuke git-svn-id: https://server.scottellis.com.au/svn/mim_plugs@64 4f64403b-2f21-0410-a795-97e2b3489a10 --- tipper/tipper.cpp | 42 ++++++++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 18 deletions(-) (limited to 'tipper/tipper.cpp') diff --git a/tipper/tipper.cpp b/tipper/tipper.cpp index cc03ca9..7d45727 100644 --- a/tipper/tipper.cpp +++ b/tipper/tipper.cpp @@ -12,6 +12,8 @@ HMODULE hInst = 0; HANDLE mainThread = 0; +bool unicode_system; + FontID font_id_title = {0}, font_id_labels = {0}, font_id_values = {0}; ColourID colour_id_bg = {0}, colour_id_border = {0}, colour_id_divider = {0}, colour_id_sidebar = {0}; FontIDW font_id_titlew = {0}, font_id_labelsw = {0}, font_id_valuesw = {0}; @@ -58,33 +60,34 @@ extern "C" __declspec(dllexport) PLUGININFO* MirandaPluginInfo(DWORD mirandaVers } int ReloadFont(WPARAM wParam, LPARAM lParam) { - LOGFONT log_font; if(ServiceExists(MS_FONT_GETW)) { + LOGFONTW log_font; if(hFontTitle) DeleteObject(hFontTitle); options.title_col = CallService(MS_FONT_GETW, (WPARAM)&font_id_titlew, (LPARAM)&log_font); - hFontTitle = CreateFontIndirect(&log_font); + hFontTitle = CreateFontIndirectW(&log_font); if(hFontLabels) DeleteObject(hFontLabels); options.label_col = CallService(MS_FONT_GETW, (WPARAM)&font_id_labelsw, (LPARAM)&log_font); - hFontLabels = CreateFontIndirect(&log_font); + hFontLabels = CreateFontIndirectW(&log_font); if(hFontValues) DeleteObject(hFontValues); options.value_col = CallService(MS_FONT_GETW, (WPARAM)&font_id_valuesw, (LPARAM)&log_font); - hFontValues = CreateFontIndirect(&log_font); + hFontValues = CreateFontIndirectW(&log_font); options.bg_col = CallService(MS_COLOUR_GETW, (WPARAM)&colour_id_bgw, 0); options.border_col = CallService(MS_COLOUR_GETW, (WPARAM)&colour_id_borderw, 0); options.sidebar_col = CallService(MS_COLOUR_GETW, (WPARAM)&colour_id_sidebarw, 0); options.div_col = CallService(MS_COLOUR_GETW, (WPARAM)&colour_id_dividerw, 0); } else { + LOGFONTA log_font; if(hFontTitle) DeleteObject(hFontTitle); options.title_col = CallService(MS_FONT_GET, (WPARAM)&font_id_title, (LPARAM)&log_font); - hFontTitle = CreateFontIndirect(&log_font); + hFontTitle = CreateFontIndirectA(&log_font); if(hFontLabels) DeleteObject(hFontLabels); options.label_col = CallService(MS_FONT_GET, (WPARAM)&font_id_labels, (LPARAM)&log_font); - hFontLabels = CreateFontIndirect(&log_font); + hFontLabels = CreateFontIndirectA(&log_font); if(hFontValues) DeleteObject(hFontValues); options.value_col = CallService(MS_FONT_GET, (WPARAM)&font_id_values, (LPARAM)&log_font); - hFontValues = CreateFontIndirect(&log_font); + hFontValues = CreateFontIndirectA(&log_font); options.bg_col = CallService(MS_COLOUR_GET, (WPARAM)&colour_id_bg, 0); options.border_col = CallService(MS_COLOUR_GET, (WPARAM)&colour_id_border, 0); @@ -201,16 +204,16 @@ int ModulesLoaded(WPARAM wParam, LPARAM lParam) { colour_id_sidebarw.defcolour = RGB(192, 192, 192); colour_id_sidebarw.order = 0; - CallService(MS_COLOUR_REGISTERT, (WPARAM)&colour_id_bgw, 0); - CallService(MS_COLOUR_REGISTERT, (WPARAM)&colour_id_borderw, 0); - CallService(MS_COLOUR_REGISTERT, (WPARAM)&colour_id_dividerw, 0); - CallService(MS_COLOUR_REGISTERT, (WPARAM)&colour_id_sidebarw, 0); + 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_dividerw, 0); + CallService(MS_COLOUR_REGISTERW, (WPARAM)&colour_id_sidebarw, 0); ReloadFont(0, 0); HookEvent(ME_FONT_RELOAD, ReloadFont); } else if(ServiceExists(MS_FONT_REGISTER)) { - font_id_title.cbSize = sizeof(FontIDW); + font_id_title.cbSize = sizeof(FontID); font_id_title.flags = FIDF_ALLOWEFFECTS; t2a(TranslateT("Tooltips"), font_id_title.group, 64); t2a(TranslateT("Title"), font_id_title.name, 64); @@ -224,7 +227,7 @@ int ModulesLoaded(WPARAM wParam, LPARAM lParam) { font_id_title.deffontsettings.colour = RGB(255, 0, 0); font_id_title.flags |= FIDF_DEFAULTVALID; - font_id_labels.cbSize = sizeof(FontIDW); + font_id_labels.cbSize = sizeof(FontID); font_id_labels.flags = FIDF_ALLOWEFFECTS; t2a(TranslateT("Tooltips"), font_id_labels.group, 64); t2a(TranslateT("Labels"), font_id_labels.name, 64); @@ -238,7 +241,7 @@ int ModulesLoaded(WPARAM wParam, LPARAM lParam) { font_id_labels.deffontsettings.colour = RGB(128, 128, 128); font_id_labels.flags |= FIDF_DEFAULTVALID; - font_id_values.cbSize = sizeof(FontIDW); + font_id_values.cbSize = sizeof(FontID); font_id_values.flags = FIDF_ALLOWEFFECTS; t2a(TranslateT("Tooltips"), font_id_values.group, 64); t2a(TranslateT("Values"), font_id_values.name, 64); @@ -256,7 +259,7 @@ int ModulesLoaded(WPARAM wParam, LPARAM lParam) { CallService(MS_FONT_REGISTER, (WPARAM)&font_id_labels, 0); CallService(MS_FONT_REGISTER, (WPARAM)&font_id_values, 0); - colour_id_bg.cbSize = sizeof(ColourIDW); + colour_id_bg.cbSize = sizeof(ColourID); t2a(TranslateT("Tooltips"), colour_id_bg.group, 64); t2a(TranslateT("Background"), colour_id_bg.name, 64); strcpy(colour_id_bg.dbSettingsGroup, MODULE); @@ -264,7 +267,7 @@ int ModulesLoaded(WPARAM wParam, LPARAM lParam) { colour_id_bg.defcolour = RGB(219, 219, 219); colour_id_bg.order = 0; - colour_id_border.cbSize = sizeof(ColourIDW); + colour_id_border.cbSize = sizeof(ColourID); t2a(TranslateT("Tooltips"), colour_id_border.group, 64); t2a(TranslateT("Border"), colour_id_border.name, 64); strcpy(colour_id_border.dbSettingsGroup, MODULE); @@ -272,7 +275,7 @@ int ModulesLoaded(WPARAM wParam, LPARAM lParam) { colour_id_border.defcolour = 0; colour_id_border.order = 0; - colour_id_divider.cbSize = sizeof(ColourIDW); + colour_id_divider.cbSize = sizeof(ColourID); t2a(TranslateT("Tooltips"), colour_id_divider.group, 64); t2a(TranslateT("Dividers"), colour_id_divider.name, 64); strcpy(colour_id_divider.dbSettingsGroup, MODULE); @@ -280,7 +283,7 @@ int ModulesLoaded(WPARAM wParam, LPARAM lParam) { colour_id_divider.defcolour = 0; colour_id_divider.order = 0; - colour_id_sidebar.cbSize = sizeof(ColourIDW); + colour_id_sidebar.cbSize = sizeof(ColourID); t2a(TranslateT("Tooltips"), colour_id_sidebar.group, 64); t2a(TranslateT("Sidebar"), colour_id_sidebar.name, 64); strcpy(colour_id_sidebar.dbSettingsGroup, MODULE); @@ -360,6 +363,9 @@ extern "C" int TIPPER_API Load(PLUGINLINK *link) { set_codepage(); + char szVer[128]; + unicode_system = (CallService(MS_SYSTEM_GETVERSIONTEXT, (WPARAM)sizeof(szVer), (LPARAM)szVer) == 0 && strstr(szVer, "Unicode")); + // get the internal malloc/free() memoryManagerInterface.cbSize = sizeof(memoryManagerInterface); CallService(MS_SYSTEM_GET_MMI, 0, (LPARAM)&memoryManagerInterface); -- cgit v1.2.3