diff options
Diffstat (limited to 'tipper/tipper.cpp')
-rw-r--r-- | tipper/tipper.cpp | 189 |
1 files changed, 150 insertions, 39 deletions
diff --git a/tipper/tipper.cpp b/tipper/tipper.cpp index cd8085b..cc03ca9 100644 --- a/tipper/tipper.cpp +++ b/tipper/tipper.cpp @@ -7,15 +7,16 @@ #include "message_pump.h"
#include "options.h"
#include "popwin.h"
+#include "str_utils.h"
HMODULE hInst = 0;
HANDLE mainThread = 0;
-int code_page = CP_ACP;
+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};
+ColourIDW colour_id_bgw = {0}, colour_id_borderw = {0}, colour_id_dividerw = {0}, colour_id_sidebarw = {0};
-
-FontIDW font_id_title = {0}, font_id_labels = {0}, font_id_values = {0};
-ColourIDW colour_id_bg = {0}, colour_id_border = {0}, colour_id_divider = {0}, colour_id_sidebar = {0};
HFONT hFontTitle = 0, hFontLabels = 0, hFontValues = 0;
// hooked here so it's in the main thread
@@ -27,7 +28,11 @@ struct MM_INTERFACE memoryManagerInterface = {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,
@@ -55,20 +60,37 @@ extern "C" __declspec(dllexport) PLUGININFO* MirandaPluginInfo(DWORD mirandaVers int ReloadFont(WPARAM wParam, LPARAM lParam) {
LOGFONT log_font;
- if(hFontTitle) DeleteObject(hFontTitle);
- options.title_col = CallService(MS_FONT_GETW, (WPARAM)&font_id_title, (LPARAM)&log_font);
- hFontTitle = CreateFontIndirect(&log_font);
- if(hFontLabels) DeleteObject(hFontLabels);
- options.label_col = CallService(MS_FONT_GETW, (WPARAM)&font_id_labels, (LPARAM)&log_font);
- hFontLabels = CreateFontIndirect(&log_font);
- if(hFontValues) DeleteObject(hFontValues);
- options.value_col = CallService(MS_FONT_GETW, (WPARAM)&font_id_values, (LPARAM)&log_font);
- hFontValues = CreateFontIndirect(&log_font);
-
- options.bg_col = CallService(MS_COLOUR_GETW, (WPARAM)&colour_id_bg, 0);
- options.border_col = CallService(MS_COLOUR_GETW, (WPARAM)&colour_id_border, 0);
- options.sidebar_col = CallService(MS_COLOUR_GETW, (WPARAM)&colour_id_sidebar, 0);
- options.div_col = CallService(MS_COLOUR_GETW, (WPARAM)&colour_id_divider, 0);
+ if(ServiceExists(MS_FONT_GETW)) {
+ if(hFontTitle) DeleteObject(hFontTitle);
+ options.title_col = CallService(MS_FONT_GETW, (WPARAM)&font_id_titlew, (LPARAM)&log_font);
+ hFontTitle = CreateFontIndirect(&log_font);
+ if(hFontLabels) DeleteObject(hFontLabels);
+ options.label_col = CallService(MS_FONT_GETW, (WPARAM)&font_id_labelsw, (LPARAM)&log_font);
+ hFontLabels = CreateFontIndirect(&log_font);
+ if(hFontValues) DeleteObject(hFontValues);
+ options.value_col = CallService(MS_FONT_GETW, (WPARAM)&font_id_valuesw, (LPARAM)&log_font);
+ hFontValues = CreateFontIndirect(&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 {
+ if(hFontTitle) DeleteObject(hFontTitle);
+ options.title_col = CallService(MS_FONT_GET, (WPARAM)&font_id_title, (LPARAM)&log_font);
+ hFontTitle = CreateFontIndirect(&log_font);
+ if(hFontLabels) DeleteObject(hFontLabels);
+ options.label_col = CallService(MS_FONT_GET, (WPARAM)&font_id_labels, (LPARAM)&log_font);
+ hFontLabels = CreateFontIndirect(&log_font);
+ if(hFontValues) DeleteObject(hFontValues);
+ options.value_col = CallService(MS_FONT_GET, (WPARAM)&font_id_values, (LPARAM)&log_font);
+ hFontValues = CreateFontIndirect(&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);
+ options.sidebar_col = CallService(MS_COLOUR_GET, (WPARAM)&colour_id_sidebar, 0);
+ options.div_col = CallService(MS_COLOUR_GET, (WPARAM)&colour_id_divider, 0);
+ }
return 0;
}
@@ -101,10 +123,97 @@ int ModulesLoaded(WPARAM wParam, LPARAM lParam) { }
if(ServiceExists(MS_FONT_REGISTERW)) {
+ font_id_titlew.cbSize = sizeof(FontIDW);
+ font_id_titlew.flags = FIDF_ALLOWEFFECTS;
+ t2w(TranslateT("Tooltips"), font_id_titlew.group, 64);
+ t2w(TranslateT("Title"), font_id_titlew.name, 64);
+ strcpy(font_id_titlew.dbSettingsGroup, MODULE);
+ strcpy(font_id_titlew.prefix, "FontFirst");
+ font_id_titlew.order = 0;
+
+ font_id_titlew.deffontsettings.charset = DEFAULT_CHARSET;
+ font_id_titlew.deffontsettings.size = -14;
+ font_id_titlew.deffontsettings.style = DBFONTF_BOLD;
+ font_id_titlew.deffontsettings.colour = RGB(255, 0, 0);
+ font_id_titlew.flags |= FIDF_DEFAULTVALID;
+
+ font_id_labelsw.cbSize = sizeof(FontIDW);
+ font_id_labelsw.flags = FIDF_ALLOWEFFECTS;
+ t2w(TranslateT("Tooltips"), font_id_labelsw.group, 64);
+ t2w(TranslateT("Labels"), font_id_labelsw.name, 64);
+ strcpy(font_id_labelsw.dbSettingsGroup, MODULE);
+ strcpy(font_id_labelsw.prefix, "FontLabels");
+ font_id_labelsw.order = 1;
+
+ font_id_labelsw.deffontsettings.charset = DEFAULT_CHARSET;
+ font_id_labelsw.deffontsettings.size = -12;
+ font_id_labelsw.deffontsettings.style = DBFONTF_ITALIC;
+ font_id_labelsw.deffontsettings.colour = RGB(128, 128, 128);
+ font_id_labelsw.flags |= FIDF_DEFAULTVALID;
+
+ font_id_valuesw.cbSize = sizeof(FontIDW);
+ font_id_valuesw.flags = FIDF_ALLOWEFFECTS;
+ t2w(TranslateT("Tooltips"), font_id_valuesw.group, 64);
+ t2w(TranslateT("Values"), font_id_valuesw.name, 64);
+ strcpy(font_id_valuesw.dbSettingsGroup, MODULE);
+ strcpy(font_id_valuesw.prefix, "FontValues");
+ font_id_valuesw.order = 2;
+
+ font_id_valuesw.deffontsettings.charset = DEFAULT_CHARSET;
+ font_id_valuesw.deffontsettings.size = -12;
+ font_id_valuesw.deffontsettings.style = 0;
+ font_id_valuesw.deffontsettings.colour = RGB(0, 0, 0);
+ font_id_valuesw.flags |= FIDF_DEFAULTVALID;
+
+ CallService(MS_FONT_REGISTERW, (WPARAM)&font_id_titlew, 0);
+ CallService(MS_FONT_REGISTERW, (WPARAM)&font_id_labelsw, 0);
+ CallService(MS_FONT_REGISTERW, (WPARAM)&font_id_valuesw, 0);
+
+ colour_id_bgw.cbSize = sizeof(ColourIDW);
+ t2w(TranslateT("Tooltips"), 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 = RGB(219, 219, 219);
+ colour_id_bgw.order = 0;
+
+ colour_id_borderw.cbSize = sizeof(ColourIDW);
+ t2w(TranslateT("Tooltips"), colour_id_borderw.group, 64);
+ t2w(TranslateT("Border"), colour_id_borderw.name, 64);
+ strcpy(colour_id_borderw.dbSettingsGroup, MODULE);
+ strcpy(colour_id_borderw.setting, "BorderCol");
+ colour_id_borderw.defcolour = 0;
+ colour_id_borderw.order = 0;
+
+ colour_id_dividerw.cbSize = sizeof(ColourIDW);
+ t2w(TranslateT("Tooltips"), colour_id_dividerw.group, 64);
+ t2w(TranslateT("Dividers"), colour_id_dividerw.name, 64);
+ strcpy(colour_id_dividerw.dbSettingsGroup, MODULE);
+ strcpy(colour_id_dividerw.setting, "DividerCol");
+ colour_id_dividerw.defcolour = 0;
+ colour_id_dividerw.order = 0;
+
+ colour_id_sidebarw.cbSize = sizeof(ColourIDW);
+ t2w(TranslateT("Tooltips"), colour_id_sidebarw.group, 64);
+ t2w(TranslateT("Sidebar"), colour_id_sidebarw.name, 64);
+ strcpy(colour_id_sidebarw.dbSettingsGroup, MODULE);
+ strcpy(colour_id_sidebarw.setting, "SidebarCol");
+ 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);
+
+ ReloadFont(0, 0);
+
+ HookEvent(ME_FONT_RELOAD, ReloadFont);
+ } else if(ServiceExists(MS_FONT_REGISTER)) {
font_id_title.cbSize = sizeof(FontIDW);
font_id_title.flags = FIDF_ALLOWEFFECTS;
- wcscpy(font_id_title.group, TranslateT("Tooltips"));
- wcscpy(font_id_title.name, TranslateT("Title"));
+ t2a(TranslateT("Tooltips"), font_id_title.group, 64);
+ t2a(TranslateT("Title"), font_id_title.name, 64);
strcpy(font_id_title.dbSettingsGroup, MODULE);
strcpy(font_id_title.prefix, "FontFirst");
font_id_title.order = 0;
@@ -117,8 +226,8 @@ int ModulesLoaded(WPARAM wParam, LPARAM lParam) { font_id_labels.cbSize = sizeof(FontIDW);
font_id_labels.flags = FIDF_ALLOWEFFECTS;
- wcscpy(font_id_labels.group, TranslateT("Tooltips"));
- wcscpy(font_id_labels.name, TranslateT("Labels"));
+ t2a(TranslateT("Tooltips"), font_id_labels.group, 64);
+ t2a(TranslateT("Labels"), font_id_labels.name, 64);
strcpy(font_id_labels.dbSettingsGroup, MODULE);
strcpy(font_id_labels.prefix, "FontLabels");
font_id_labels.order = 1;
@@ -131,8 +240,8 @@ int ModulesLoaded(WPARAM wParam, LPARAM lParam) { font_id_values.cbSize = sizeof(FontIDW);
font_id_values.flags = FIDF_ALLOWEFFECTS;
- wcscpy(font_id_values.group, TranslateT("Tooltips"));
- wcscpy(font_id_values.name, TranslateT("Values"));
+ t2a(TranslateT("Tooltips"), font_id_values.group, 64);
+ t2a(TranslateT("Values"), font_id_values.name, 64);
strcpy(font_id_values.dbSettingsGroup, MODULE);
strcpy(font_id_values.prefix, "FontValues");
font_id_values.order = 2;
@@ -143,46 +252,46 @@ int ModulesLoaded(WPARAM wParam, LPARAM lParam) { font_id_values.deffontsettings.colour = RGB(0, 0, 0);
font_id_values.flags |= FIDF_DEFAULTVALID;
- CallService(MS_FONT_REGISTERW, (WPARAM)&font_id_title, 0);
- CallService(MS_FONT_REGISTERW, (WPARAM)&font_id_labels, 0);
- CallService(MS_FONT_REGISTERW, (WPARAM)&font_id_values, 0);
+ CallService(MS_FONT_REGISTER, (WPARAM)&font_id_title, 0);
+ CallService(MS_FONT_REGISTER, (WPARAM)&font_id_labels, 0);
+ CallService(MS_FONT_REGISTER, (WPARAM)&font_id_values, 0);
colour_id_bg.cbSize = sizeof(ColourIDW);
- wcscpy(colour_id_bg.group, TranslateT("Tooltips"));
- wcscpy(colour_id_bg.name, TranslateT("Background"));
+ t2a(TranslateT("Tooltips"), 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 = RGB(219, 219, 219);
colour_id_bg.order = 0;
colour_id_border.cbSize = sizeof(ColourIDW);
- wcscpy(colour_id_border.group, TranslateT("Tooltips"));
- wcscpy(colour_id_border.name, TranslateT("Border"));
+ t2a(TranslateT("Tooltips"), colour_id_border.group, 64);
+ t2a(TranslateT("Border"), colour_id_border.name, 64);
strcpy(colour_id_border.dbSettingsGroup, MODULE);
strcpy(colour_id_border.setting, "BorderCol");
colour_id_border.defcolour = 0;
colour_id_border.order = 0;
colour_id_divider.cbSize = sizeof(ColourIDW);
- wcscpy(colour_id_divider.group, TranslateT("Tooltips"));
- wcscpy(colour_id_divider.name, TranslateT("Dividers"));
+ t2a(TranslateT("Tooltips"), colour_id_divider.group, 64);
+ t2a(TranslateT("Dividers"), colour_id_divider.name, 64);
strcpy(colour_id_divider.dbSettingsGroup, MODULE);
strcpy(colour_id_divider.setting, "DividerCol");
colour_id_divider.defcolour = 0;
colour_id_divider.order = 0;
colour_id_sidebar.cbSize = sizeof(ColourIDW);
- wcscpy(colour_id_sidebar.group, TranslateT("Tooltips"));
- wcscpy(colour_id_sidebar.name, TranslateT("Sidebar"));
+ t2a(TranslateT("Tooltips"), colour_id_sidebar.group, 64);
+ t2a(TranslateT("Sidebar"), colour_id_sidebar.name, 64);
strcpy(colour_id_sidebar.dbSettingsGroup, MODULE);
strcpy(colour_id_sidebar.setting, "SidebarCol");
colour_id_sidebar.defcolour = RGB(192, 192, 192);
colour_id_sidebar.order = 0;
- 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_divider, 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_divider, 0);
+ CallService(MS_COLOUR_REGISTER, (WPARAM)&colour_id_sidebar, 0);
ReloadFont(0, 0);
@@ -249,6 +358,8 @@ extern "C" int TIPPER_API Load(PLUGINLINK *link) { pluginLink = link;
DuplicateHandle(GetCurrentProcess(), GetCurrentThread(), GetCurrentProcess(), &mainThread, THREAD_SET_CONTEXT, FALSE, 0);
+ set_codepage();
+
// get the internal malloc/free()
memoryManagerInterface.cbSize = sizeof(memoryManagerInterface);
CallService(MS_SYSTEM_GET_MMI, 0, (LPARAM)&memoryManagerInterface);
|