summaryrefslogtreecommitdiff
path: root/yapp/popups2.cpp
diff options
context:
space:
mode:
authorsje <sje@4f64403b-2f21-0410-a795-97e2b3489a10>2006-11-23 03:22:51 +0000
committersje <sje@4f64403b-2f21-0410-a795-97e2b3489a10>2006-11-23 03:22:51 +0000
commitc0fea55f25ad1f675f40815cefb34b435f32119b (patch)
tree95da2fda7031bf64da5514ba6cd647a8a74124e0 /yapp/popups2.cpp
parent6db050eb2d23035c71971cc88219211bbacca23d (diff)
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
Diffstat (limited to 'yapp/popups2.cpp')
-rw-r--r--yapp/popups2.cpp155
1 files changed, 119 insertions, 36 deletions
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)