diff options
-rw-r--r-- | include/m_popup.h | 16 | ||||
-rw-r--r-- | plugins/BasicHistory/src/Scheduler.cpp | 2 | ||||
-rw-r--r-- | plugins/MirFox/src/MirandaInterface.cpp | 3 | ||||
-rw-r--r-- | plugins/Nudge/src/main.cpp | 11 | ||||
-rw-r--r-- | plugins/Ping/src/utils.cpp | 2 | ||||
-rw-r--r-- | plugins/Popup/src/font.cpp | 36 | ||||
-rw-r--r-- | plugins/Popup/src/font.h | 2 | ||||
-rw-r--r-- | plugins/Popup/src/main.cpp | 11 | ||||
-rw-r--r-- | plugins/Popup/src/notifications.cpp | 2 | ||||
-rw-r--r-- | plugins/Popup/src/notifications.h | 8 | ||||
-rw-r--r-- | plugins/Popup/src/opt_class.cpp | 4 | ||||
-rw-r--r-- | plugins/Popup/src/services.cpp | 62 | ||||
-rw-r--r-- | plugins/Popup/src/version.h | 4 | ||||
-rw-r--r-- | protocols/Gadu-Gadu/src/popups.cpp | 5 | ||||
-rw-r--r-- | protocols/JabberG/src/jabber_misc.cpp | 10 | ||||
-rw-r--r-- | protocols/JabberG/src/jabber_proto.cpp | 4 | ||||
-rw-r--r-- | protocols/Sametime/src/utils.cpp | 9 | ||||
-rw-r--r-- | protocols/SkypeWeb/src/skype_popups.cpp | 10 | ||||
-rw-r--r-- | protocols/VKontakte/src/vk_proto.cpp | 4 | ||||
-rw-r--r-- | src/core/stdpopup/src/options.cpp | 2 | ||||
-rw-r--r-- | src/core/stdpopup/src/services.cpp | 1 | ||||
-rw-r--r-- | src/mir_app/src/popups.cpp | 6 |
22 files changed, 93 insertions, 121 deletions
diff --git a/include/m_popup.h b/include/m_popup.h index dae1b8df6a..039b05e9fe 100644 --- a/include/m_popup.h +++ b/include/m_popup.h @@ -254,7 +254,7 @@ EXTERN_C MIR_APP_DLL(int) PURegisterActions(POPUPACTION *actions, int count); #define POPUP_ACTION_NOTHING LPGEN("Do nothing")
#define POPUP_ACTION_DISMISS LPGEN("Dismiss popup")
-typedef struct
+struct POPUPNOTIFYACTION
{
char lpzTitle[64];
uint32_t dwFlags;
@@ -275,11 +275,11 @@ typedef struct void(*pfnCallback)(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam, uint32_t cookie);
};
};
-} POPUPNOTIFYACTION, *LPPOPUPNOTIFYACTION;
+};
#define PNF_CONTACT 0x01
-typedef struct
+struct POPUPNOTIFICATION
{
int cbSize;
uint32_t dwFlags; // set of PNF_* flags
@@ -290,16 +290,16 @@ typedef struct COLORREF colorText; // this will be registered in fontservice
int iSeconds; // default timeout
int actionCount; // for unified action comboboxes
- LPPOPUPNOTIFYACTION lpActions;
+ POPUPNOTIFYACTION *lpActions;
char *lpzLAction;
char *lpzRAction;
char *pszReserved1; // reserved for future use
#ifdef _WINDOWS
DLGPROC pfnReserved2; // reserved for future use
#endif
-} POPUPNOTIFICATION, *LPPOPUPNOTIFICATION;
+};
-EXTERN_C MIR_APP_DLL(HANDLE) PURegisterNotification(LPPOPUPNOTIFICATION notification);
+EXTERN_C MIR_APP_DLL(HANDLE) PURegisterNotification(POPUPNOTIFICATION *notification);
/* Popup/UnhookEventAsync
Using of "UnhookEvent" inside PluginWindowProc in conjunction with HookEventMessage
@@ -410,11 +410,10 @@ EXTERN_C MIR_APP_DLL(int) PUShowMessageW(const wchar_t *lpwzText, uint32_t kind) struct POPUPCLASS
{
- int cbSize;
+ char *pszName;
int flags; // PCF_* constants
int iSeconds;
COLORREF colorBack, colorText;
- char *pszName;
MAllStrings pszDescription;
HICON hIcon;
#ifdef _WINDOWS
@@ -431,7 +430,6 @@ EXTERN_C MIR_APP_DLL(void) Popup_UnregisterClass(HANDLE ppc); struct POPUPDATACLASS
{
- int cbSize;
MCONTACT hContact;
const char *pszClassName;
MAllCStrings szTitle;
diff --git a/plugins/BasicHistory/src/Scheduler.cpp b/plugins/BasicHistory/src/Scheduler.cpp index 553171710a..6721f102f4 100644 --- a/plugins/BasicHistory/src/Scheduler.cpp +++ b/plugins/BasicHistory/src/Scheduler.cpp @@ -63,7 +63,7 @@ static int OnShutdown(WPARAM, LPARAM) void InitScheduler()
{
- POPUPCLASS test = { sizeof(test) };
+ POPUPCLASS test = {};
test.flags = PCF_UNICODE;
test.hIcon = Skin_LoadIcon(SKINICON_OTHER_HISTORY);
test.iSeconds = 10;
diff --git a/plugins/MirFox/src/MirandaInterface.cpp b/plugins/MirFox/src/MirandaInterface.cpp index bb5242f90a..94e2755126 100644 --- a/plugins/MirFox/src/MirandaInterface.cpp +++ b/plugins/MirFox/src/MirandaInterface.cpp @@ -88,8 +88,7 @@ static int __cdecl onContactSettingChanged(WPARAM hContact, LPARAM lParam) static int onModulesLoaded(WPARAM, LPARAM)
{
//init popup classes
- POPUPCLASS puc = { 0 };
- puc.cbSize = sizeof(puc);
+ POPUPCLASS puc = {};
puc.flags = PCF_UNICODE;
puc.pszName = "MirFox_Notify";
diff --git a/plugins/Nudge/src/main.cpp b/plugins/Nudge/src/main.cpp index 8dbf4c33a2..ee2ad72b2f 100644 --- a/plugins/Nudge/src/main.cpp +++ b/plugins/Nudge/src/main.cpp @@ -217,13 +217,11 @@ static int OnShutdown(WPARAM, LPARAM) void LoadPopupClass()
{
- POPUPCLASS ppc = { sizeof(ppc) };
+ POPUPCLASS ppc = {};
+ ppc.flags = PCF_UNICODE;
ppc.pszName = "Nudge";
- ppc.pszDescription.a = LPGEN("Show Nudge");
+ ppc.pszDescription.w = TranslateT("Show Nudge");
ppc.hIcon = IcoLib_GetIconByHandle(iconList[0].hIcolib);
- ppc.colorBack = NULL;
- ppc.colorText = NULL;
- ppc.iSeconds = 0;
ppc.PluginWindowProc = NudgePopupProc;
if (hPopupClass = Popup_RegisterClass(&ppc))
HookEvent(ME_SYSTEM_SHUTDOWN, OnShutdown);
@@ -272,8 +270,7 @@ void Nudge_ShowPopup(CNudgeElement*, MCONTACT hContact, wchar_t * Message) hContact = db_mc_tryMeta(hContact);
wchar_t *lpzContactName = Clist_GetContactDisplayName(hContact);
- POPUPDATACLASS NudgePopup = { 0 };
- NudgePopup.cbSize = sizeof(NudgePopup);
+ POPUPDATACLASS NudgePopup = {};
NudgePopup.hContact = hContact;
NudgePopup.szText.w = Message;
NudgePopup.szTitle.w = lpzContactName;
diff --git a/plugins/Ping/src/utils.cpp b/plugins/Ping/src/utils.cpp index e225d1f864..ea2b2d90db 100644 --- a/plugins/Ping/src/utils.cpp +++ b/plugins/Ping/src/utils.cpp @@ -266,7 +266,7 @@ void InitUtils() hIconTesting = IcoLib_GetIcon("ping_testing");
hIconDisabled = IcoLib_GetIcon("ping_disabled");
- POPUPCLASS test = { sizeof(test) };
+ POPUPCLASS test = {};
test.flags = PCF_UNICODE;
test.hIcon = hIconResponding;
test.iSeconds = -1;
diff --git a/plugins/Popup/src/font.cpp b/plugins/Popup/src/font.cpp index 349dccd1e2..3346cf046c 100644 --- a/plugins/Popup/src/font.cpp +++ b/plugins/Popup/src/font.cpp @@ -81,43 +81,41 @@ void InitFonts() ReloadFonts();
}
+///////////////////////////////////////////////////////////////////////////////
-void ReloadFonts()
+static void ReplaceFont(HFONT &hFont, LOGFONTW &lf)
{
- if (fonts.title) DeleteObject(fonts.title);
- if (fonts.clock) DeleteObject(fonts.clock);
- if (fonts.text) DeleteObject(fonts.text);
- if (fonts.action) DeleteObject(fonts.action);
- if (fonts.actionHover) DeleteObject(fonts.actionHover);
+ if (hFont)
+ DeleteObject(hFont);
+ hFont = CreateFontIndirectW(&lf);
+}
- LOGFONT lf = { 0 };
+void CALLBACK ReloadFonts()
+{
+ LOGFONT lf;
fonts.clTitle = Font_GetW(_A2W(PU_FNT_AND_COLOR), _A2W(PU_FNT_NAME_TITLE), &lf);
- fonts.title = CreateFontIndirect(&lf);
+ ReplaceFont(fonts.title, lf);
fonts.clClock = Font_GetW(_A2W(PU_FNT_AND_COLOR), _A2W(PU_FNT_NAME_CLOCK), &lf);
- fonts.clock = CreateFontIndirect(&lf);
+ ReplaceFont(fonts.clock, lf);
fonts.clText = Font_GetW(_A2W(PU_FNT_AND_COLOR), _A2W(PU_FNT_NAME_TEXT), &lf);
- fonts.text = CreateFontIndirect(&lf);
+ ReplaceFont(fonts.text, lf);
fonts.clAction = Font_GetW(_A2W(PU_FNT_AND_COLOR), _A2W(PU_FNT_NAME_ACTION), &lf);
- fonts.action = CreateFontIndirect(&lf);
+ ReplaceFont(fonts.action, lf);
fonts.clActionHover = Font_GetW(_A2W(PU_FNT_AND_COLOR), _A2W(PU_FNT_NAME_HOVERED_ACTION), &lf);
- fonts.actionHover = CreateFontIndirect(&lf);
+ ReplaceFont(fonts.actionHover, lf);
fonts.clBack = Colour_GetW(_A2W(PU_FNT_AND_COLOR), PU_COL_BACK_NAME);
fonts.clAvatarBorder = Colour_GetW(_A2W(PU_FNT_AND_COLOR), PU_COL_AVAT_NAME);
- // update class popups (only temp at this point, must rework)
- char setting[256];
+ // update class popups
for (auto &it : gTreeData) {
if (it->typ == 2) {
- mir_snprintf(setting, "%s/TextCol", it->pupClass.pszName);
- it->colorText = it->pupClass.colorText = (COLORREF)db_get_dw(0, PU_MODULCLASS, setting, (uint32_t)fonts.clText);
-
- mir_snprintf(setting, "%s/BgCol", it->pupClass.pszName);
- it->colorBack = it->pupClass.colorBack = (COLORREF)db_get_dw(0, PU_MODULCLASS, setting, (uint32_t)fonts.clBack/*pc->colorBack*/);
+ it->pupClass.colorText = Font_GetW(it->fid, &lf);
+ it->pupClass.colorBack = Colour_GetW(it->cid);
}
}
}
diff --git a/plugins/Popup/src/font.h b/plugins/Popup/src/font.h index 6b2b473499..19b9c3a559 100644 --- a/plugins/Popup/src/font.h +++ b/plugins/Popup/src/font.h @@ -69,7 +69,7 @@ extern PopupFonts fonts; void InitFonts();
-void ReloadFonts();
+void CALLBACK ReloadFonts();
#endif // __font_h__
diff --git a/plugins/Popup/src/main.cpp b/plugins/Popup/src/main.cpp index 879018c8a1..affb110364 100644 --- a/plugins/Popup/src/main.cpp +++ b/plugins/Popup/src/main.cpp @@ -233,10 +233,6 @@ static int ModulesLoaded(WPARAM, LPARAM) if (ServiceExists("PluginSweeper/Add"))
CallService("PluginSweeper/Add", (WPARAM)Translate(MODULENAME), (LPARAM)MODULENAME);
- // load fonts / create hook
- InitFonts();
- HookEvent(ME_FONT_RELOAD, FontsChanged);
-
// load actions and notifications
LoadActions();
LoadNotifications();
@@ -377,12 +373,17 @@ int CMPlugin::Load() CreateServiceFunction("Popup/LoadSkin", Popup_LoadSkin);
+ // load fonts / create hook
+ InitFonts();
+ HookEvent(ME_FONT_RELOAD, FontsChanged);
+ Miranda_WaitOnHandle(ReloadFonts);
+
// load icons / create hook
InitIcons();
HookEvent(ME_SKIN_ICONSCHANGED, IconsChanged);
+
// add menu items
InitMenuItems();
-
return 0;
}
diff --git a/plugins/Popup/src/notifications.cpp b/plugins/Popup/src/notifications.cpp index 96158a2890..6884a735d9 100644 --- a/plugins/Popup/src/notifications.cpp +++ b/plugins/Popup/src/notifications.cpp @@ -25,8 +25,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. HANDLE g_hntfError, g_hntfWarning, g_hntfNotification;
-#define PopupNotificationData_SIGNATURE 0x11BEDA1A
-
int TreeDataSortFunc(const POPUPTREEDATA *p1, const POPUPTREEDATA *p2)
{
if (int cmp = mir_wstrcmp(p1->pszTreeRoot, p2->pszTreeRoot))
diff --git a/plugins/Popup/src/notifications.h b/plugins/Popup/src/notifications.h index b9a6baa709..4512a47002 100644 --- a/plugins/Popup/src/notifications.h +++ b/plugins/Popup/src/notifications.h @@ -24,9 +24,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #ifndef __notifications_h__
#define __notifications_h__
+#define PopupNotificationData_SIGNATURE 0x11BEDA1A
+
struct POPUPTREEDATA
{
- int cbSize;
uint32_t signature;
LPTSTR pszTreeRoot;
LPTSTR pszDescription;
@@ -41,8 +42,9 @@ struct POPUPTREEDATA char leftAction[MAXMODULELABELLENGTH];
char rightAction[MAXMODULELABELLENGTH];
HANDLE hIcoLib;
- COLORREF colorBack; //really needed ??
- COLORREF colorText; //really needed ??
+
+ FontIDW fid;
+ ColourIDW cid;
};
extern LIST<POPUPTREEDATA> gTreeData;
diff --git a/plugins/Popup/src/opt_class.cpp b/plugins/Popup/src/opt_class.cpp index d6d28f42d8..b63768da97 100644 --- a/plugins/Popup/src/opt_class.cpp +++ b/plugins/Popup/src/opt_class.cpp @@ -333,8 +333,8 @@ INT_PTR CALLBACK DlgProcOptsClasses(HWND hwnd, UINT msg, WPARAM wParam, LPARAM l ppd.szTitle.w = ptd->pszDescription;
ppd.szText.w = TranslateT("Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn!");
ppd.iSeconds = ptd->timeoutValue;
- ppd.colorBack = ptd->colorBack;
- ppd.colorText = ptd->colorText;
+ ppd.colorBack = ptd->pupClass.colorBack;
+ ppd.colorText = ptd->pupClass.colorText;
POPUPTREEDATA *ptdPrev = nullptr;
if (ptd->typ == 1) {
// we work with a copy for preview
diff --git a/plugins/Popup/src/services.cpp b/plugins/Popup/src/services.cpp index eb8107d2fe..527e9c0c64 100644 --- a/plugins/Popup/src/services.cpp +++ b/plugins/Popup/src/services.cpp @@ -285,7 +285,7 @@ INT_PTR Popup_RegisterActions(WPARAM wParam, LPARAM lParam) INT_PTR Popup_RegisterNotification(WPARAM wParam, LPARAM)
{
- return (INT_PTR)RegisterNotification((LPPOPUPNOTIFICATION)wParam);
+ return (INT_PTR)RegisterNotification((POPUPNOTIFICATION*)wParam);
}
@@ -324,13 +324,15 @@ INT_PTR Popup_RegisterVfx(WPARAM, LPARAM lParam) //===== Popup/RegisterClass (for core class api support)
INT_PTR Popup_RegisterPopupClass(WPARAM, LPARAM lParam)
{
- char setting[256];
POPUPCLASS *pc = (POPUPCLASS *)lParam;
POPUPTREEDATA *ptd = (POPUPTREEDATA *)mir_calloc(sizeof(POPUPTREEDATA));
- ptd->cbSize = sizeof(POPUPTREEDATA);
- ptd->signature = 0/*PopupNotificationData_SIGNATURE*/;
+ ptd->signature = PopupNotificationData_SIGNATURE;
ptd->typ = 2;
memcpy(&ptd->pupClass, pc, sizeof(POPUPCLASS));
+ if (pc->colorText == 0) // default text color
+ ptd->pupClass.colorText = fonts.clText;
+ if (pc->colorBack == 0) // default back color
+ ptd->pupClass.colorBack = fonts.clBack;
ptd->pszTreeRoot = mir_a2u(pc->pszName);
ptd->pupClass.pszName = mir_strdup(pc->pszName);
if (pc->flags & PCF_UNICODE) {
@@ -343,35 +345,25 @@ INT_PTR Popup_RegisterPopupClass(WPARAM, LPARAM lParam) }
LoadClassSettings(ptd, PU_MODULCLASS);
- // we ignore pc->colorText and use fonts.text as default (if no setting found in DB)
- mir_snprintf(setting, "%s/TextCol", ptd->pupClass.pszName);
- ptd->pupClass.colorText = (COLORREF)db_get_dw(0, PU_MODULCLASS, setting, fonts.clText/*pc->colorText*/);
-
- FontIDW fid = {};
- mir_snwprintf(fid.group, L"%S/%s", PU_FNT_AND_COLOR, ptd->pszDescription);
- strncpy_s(fid.dbSettingsGroup, PU_MODULCLASS, _TRUNCATE);
- fid.flags = FIDF_DEFAULTVALID;
- fid.deffontsettings.charset = DEFAULT_CHARSET;
- fid.deffontsettings.size = -11;
- wcsncpy_s(fid.deffontsettings.szFace, L"Verdana", _TRUNCATE);
- wcsncpy_s(fid.name, _A2W(PU_FNT_NAME_TEXT), _TRUNCATE);
- strncpy_s(fid.setting, setting, _TRUNCATE);
- mir_snprintf(fid.setting, "%s/Text", ptd->pupClass.pszName); // result is "%s/TextCol"
- fid.deffontsettings.style = 0;
- fid.deffontsettings.colour = fonts.clText;
- g_plugin.addFont(&fid);
-
- // we ignore pc->colorBack and use fonts.clBack as default (if no setting found in DB)
- mir_snprintf(setting, "%s/BgCol", ptd->pupClass.pszName);
- ptd->pupClass.colorBack = (COLORREF)db_get_dw(0, PU_MODULCLASS, setting, (uint32_t)fonts.clBack/*pc->colorBack*/);
-
- ColourIDW cid = {};
- mir_snwprintf(cid.group, L"%S/%s", PU_FNT_AND_COLOR, ptd->pszDescription);
- wcsncpy_s(cid.name, PU_COL_BACK_NAME, _TRUNCATE);
- strncpy_s(cid.dbSettingsGroup, PU_MODULCLASS, _TRUNCATE);
- mir_snprintf(cid.setting, "%s/BgCol", ptd->pupClass.pszName);
- cid.defcolour = fonts.clBack;
- g_plugin.addColor(&cid);
+ // text & back colors
+ mir_snwprintf(ptd->fid.group, L"%S/%s", PU_FNT_AND_COLOR, ptd->pszDescription);
+ strncpy_s(ptd->fid.dbSettingsGroup, PU_MODULCLASS, _TRUNCATE);
+ ptd->fid.flags = FIDF_DEFAULTVALID;
+ ptd->fid.deffontsettings.charset = DEFAULT_CHARSET;
+ ptd->fid.deffontsettings.size = -11;
+ wcsncpy_s(ptd->fid.deffontsettings.szFace, L"Verdana", _TRUNCATE);
+ wcsncpy_s(ptd->fid.name, _A2W(PU_FNT_NAME_TEXT), _TRUNCATE);
+ mir_snprintf(ptd->fid.setting, "%s/TextCol", ptd->pupClass.pszName); // result is "%s/TextCol"
+ ptd->fid.deffontsettings.style = 0;
+ ptd->fid.deffontsettings.colour = ptd->pupClass.colorText;
+ g_plugin.addFont(&ptd->fid);
+
+ mir_snwprintf(ptd->cid.group, L"%S/%s", PU_FNT_AND_COLOR, ptd->pszDescription);
+ wcsncpy_s(ptd->cid.name, PU_COL_BACK_NAME, _TRUNCATE);
+ strncpy_s(ptd->cid.dbSettingsGroup, PU_MODULCLASS, _TRUNCATE);
+ mir_snprintf(ptd->cid.setting, "%s/BgCol", ptd->pupClass.pszName);
+ ptd->cid.defcolour = ptd->pupClass.colorBack;
+ g_plugin.addColor(&ptd->cid);
gTreeData.insert(ptd);
num_classes++;
@@ -398,7 +390,7 @@ INT_PTR Popup_UnregisterPopupClass(WPARAM, LPARAM lParam) INT_PTR Popup_CreateClassPopup(WPARAM wParam, LPARAM lParam)
{
POPUPDATACLASS *pdc = (POPUPDATACLASS *)lParam;
- if (!pdc || (pdc->cbSize != sizeof(POPUPDATACLASS)))
+ if (!pdc)
return 1;
POPUPCLASS *pc;
@@ -458,4 +450,4 @@ INT_PTR Popup_LoadSkin(WPARAM, LPARAM lParam) }
return 1;
-}
\ No newline at end of file +}
diff --git a/plugins/Popup/src/version.h b/plugins/Popup/src/version.h index 450918c248..f957f9ade0 100644 --- a/plugins/Popup/src/version.h +++ b/plugins/Popup/src/version.h @@ -1,7 +1,7 @@ #define __MAJOR_VERSION 2
#define __MINOR_VERSION 1
-#define __RELEASE_NUM 1
-#define __BUILD_NUM 17
+#define __RELEASE_NUM 2
+#define __BUILD_NUM 0
#include <stdver.h>
diff --git a/protocols/Gadu-Gadu/src/popups.cpp b/protocols/Gadu-Gadu/src/popups.cpp index 7ae48ba9c6..872a1bc01e 100644 --- a/protocols/Gadu-Gadu/src/popups.cpp +++ b/protocols/Gadu-Gadu/src/popups.cpp @@ -75,8 +75,7 @@ void GaduProto::initpopups() wchar_t szDescr[256];
char szName[256];
- POPUPCLASS puc = { 0 };
- puc.cbSize = sizeof(puc);
+ POPUPCLASS puc = {};
puc.PluginWindowProc = PopupWindowProc;
puc.flags = PCF_UNICODE;
puc.pszName = szName;
@@ -113,7 +112,7 @@ void CALLBACK sttMainThreadCallback(PVOID dwParam) else
mir_snprintf(szName, "%s_%s", gg->m_szModuleName, "Notify");
- POPUPDATACLASS ppd = { sizeof(ppd) };
+ POPUPDATACLASS ppd = {};
ppd.szTitle.w = puData->title;
ppd.szText.w = puData->text;
ppd.PluginData = puData;
diff --git a/protocols/JabberG/src/jabber_misc.cpp b/protocols/JabberG/src/jabber_misc.cpp index 9083b8c9e3..0e1ce56479 100644 --- a/protocols/JabberG/src/jabber_misc.cpp +++ b/protocols/JabberG/src/jabber_misc.cpp @@ -403,15 +403,15 @@ void CJabberProto::SetContactOfflineStatus(MCONTACT hContact) void CJabberProto::InitPopups(void)
{
char name[256];
+ mir_snprintf(name, "%s_%s", m_szModuleName, "Error");
+
wchar_t desc[256];
+ mir_snwprintf(desc, L"%s/%s", m_tszUserName, TranslateT("Errors"));
- POPUPCLASS ppc = { sizeof(ppc) };
+ POPUPCLASS ppc = {};
ppc.flags = PCF_UNICODE;
ppc.pszName = name;
ppc.pszDescription.w = desc;
-
- mir_snprintf(name, "%s_%s", m_szModuleName, "Error");
- mir_snwprintf(desc, L"%s/%s", m_tszUserName, TranslateT("Errors"));
ppc.hIcon = IcoLib_GetIconByHandle(m_hProtoIcon);
ppc.colorBack = RGB(191, 0, 0); //Red
ppc.colorText = RGB(255, 245, 225); //Yellow
@@ -435,7 +435,7 @@ void CJabberProto::MsgPopup(MCONTACT hContact, const wchar_t *szMsg, const wchar wszTitle.Insert(0, m_tszUserName);
}
- POPUPDATACLASS ppd = { sizeof(ppd) };
+ POPUPDATACLASS ppd = {};
ppd.szTitle.w = wszTitle;
ppd.szText.w = szMsg;
ppd.pszClassName = name;
diff --git a/protocols/JabberG/src/jabber_proto.cpp b/protocols/JabberG/src/jabber_proto.cpp index 0aa73bbca2..6b17777e13 100644 --- a/protocols/JabberG/src/jabber_proto.cpp +++ b/protocols/JabberG/src/jabber_proto.cpp @@ -203,8 +203,6 @@ CJabberProto::CJabberProto(const char *aProtoName, const wchar_t *aUserName) : AddDefaultCaps();
IconsInit();
- InitPopups();
- GlobalMenuInit();
m_pepServices.insert(new CPepMood(this));
m_pepServices.insert(new CPepActivity(this));
@@ -294,6 +292,8 @@ void CJabberProto::OnModulesLoaded() m_pepServices.InitGui();
InitInfoFrame();
+ InitPopups();
+ GlobalMenuInit();
StatusIconData sid = {};
sid.szModule = m_szModuleName;
diff --git a/protocols/Sametime/src/utils.cpp b/protocols/Sametime/src/utils.cpp index d7bffc8089..e83c2bb823 100644 --- a/protocols/Sametime/src/utils.cpp +++ b/protocols/Sametime/src/utils.cpp @@ -34,7 +34,7 @@ void CSametimeProto::RegisterPopups() debugLogW(L"CSametimeProto::RegisterPopups()");
- POPUPCLASS puc = { sizeof(puc) };
+ POPUPCLASS puc = {};
puc.PluginWindowProc = PopupWindowProc;
puc.flags = PCF_UNICODE;
puc.pszName = szName;
@@ -45,8 +45,6 @@ void CSametimeProto::RegisterPopups() puc.hIcon = CopyIcon(g_plugin.getIcon(IDI_ICON_NOTIFY));
g_plugin.releaseIcon(IDI_ICON_NOTIFY);
puc.iSeconds = 8;
- puc.colorBack = GetSysColor(COLOR_BTNFACE);
- puc.colorText = GetSysColor(COLOR_WINDOWTEXT);
hPopupNotify = Popup_RegisterClass(&puc);
mir_snprintf(szName, "%s_%s", m_szModuleName, "Error");
@@ -54,12 +52,9 @@ void CSametimeProto::RegisterPopups() puc.hIcon = CopyIcon(g_plugin.getIcon(IDI_ICON_ERROR, FALSE));
g_plugin.releaseIcon(IDI_ICON_ERROR);
puc.iSeconds = 10;
- puc.colorBack = GetSysColor(COLOR_BTNFACE);
- puc.colorText = GetSysColor(COLOR_WINDOWTEXT);
hPopupError = Popup_RegisterClass(&puc);
}
-
void CSametimeProto::UnregisterPopups()
{
debugLogW(L"CSametimeProto::RegisterPopups()");
@@ -77,7 +72,7 @@ void CALLBACK sttMainThreadCallback(PVOID dwParam) ErrorDisplay disp = proto->options.err_method;
if (disp == ED_POP) {
- POPUPDATACLASS ppd = { sizeof(ppd) };
+ POPUPDATACLASS ppd = {};
char szName[256];
ppd.szTitle.w = puData->title;
ppd.szText.w = puData->text;
diff --git a/protocols/SkypeWeb/src/skype_popups.cpp b/protocols/SkypeWeb/src/skype_popups.cpp index e147cd3936..7aa386b279 100644 --- a/protocols/SkypeWeb/src/skype_popups.cpp +++ b/protocols/SkypeWeb/src/skype_popups.cpp @@ -5,7 +5,7 @@ void CSkypeProto::InitPopups() wchar_t desc[256];
char name[256];
- POPUPCLASS ppc = { sizeof(ppc) };
+ POPUPCLASS ppc = {};
ppc.flags = PCF_UNICODE;
ppc.pszName = name;
ppc.pszDescription.w = desc;
@@ -13,24 +13,18 @@ void CSkypeProto::InitPopups() mir_snwprintf(desc, L"%s/%s", m_tszUserName, TranslateT("Notifications"));
mir_snprintf(name, "%s_%s", m_szModuleName, "Notification");
ppc.hIcon = g_plugin.getIcon(IDI_NOTIFY);
- ppc.colorBack = RGB(255, 255, 255);
- ppc.colorText = RGB(0, 0, 0);
ppc.iSeconds = 5;
m_PopupClasses.insert(Popup_RegisterClass(&ppc));
mir_snwprintf(desc, L"%s/%s", m_tszUserName, TranslateT("Errors"));
mir_snprintf(name, "%s_%s", m_szModuleName, "Error");
ppc.hIcon = g_plugin.getIcon(IDI_ERRORICON);
- ppc.colorBack = RGB(255, 255, 255);
- ppc.colorText = RGB(0, 0, 0);
ppc.iSeconds = -1;
m_PopupClasses.insert(Popup_RegisterClass(&ppc));
mir_snwprintf(desc, L"%s/%s", m_tszUserName, TranslateT("Calls"));
mir_snprintf(name, "%s_%s", m_szModuleName, "Call");
ppc.hIcon = g_plugin.getIcon(IDI_CALL);
- ppc.colorBack = RGB(255, 255, 255);
- ppc.colorText = RGB(0, 0, 0);
ppc.iSeconds = 30;
ppc.PluginWindowProc = PopupDlgProcCall;
m_PopupClasses.insert(Popup_RegisterClass(&ppc));
@@ -63,7 +57,7 @@ void CSkypeProto::ShowNotification(const wchar_t *caption, const wchar_t *messag break;
}
- POPUPDATACLASS ppd = { sizeof(ppd) };
+ POPUPDATACLASS ppd = {};
ppd.szTitle.w = caption;
ppd.szText.w = message;
ppd.pszClassName = className.GetBuffer();
diff --git a/protocols/VKontakte/src/vk_proto.cpp b/protocols/VKontakte/src/vk_proto.cpp index 489615b0c3..b2eb707ab4 100644 --- a/protocols/VKontakte/src/vk_proto.cpp +++ b/protocols/VKontakte/src/vk_proto.cpp @@ -426,7 +426,7 @@ void CVkProto::InitPopups(void) wchar_t desc[256];
char name[256];
- POPUPCLASS ppc = { sizeof(ppc) };
+ POPUPCLASS ppc = {};
ppc.flags = PCF_UNICODE;
ppc.pszName = name;
ppc.pszDescription.w = desc;
@@ -454,7 +454,7 @@ void CVkProto::MsgPopup(MCONTACT hContact, const wchar_t *wszMsg, const wchar_t {
char name[256];
- POPUPDATACLASS ppd = { sizeof(ppd) };
+ POPUPDATACLASS ppd = {};
ppd.szTitle.w = wszTitle;
ppd.szText.w = wszMsg;
ppd.pszClassName = name;
diff --git a/src/core/stdpopup/src/options.cpp b/src/core/stdpopup/src/options.cpp index cff89de23e..6e196dfea7 100644 --- a/src/core/stdpopup/src/options.cpp +++ b/src/core/stdpopup/src/options.cpp @@ -465,7 +465,7 @@ public: POPUPCLASS pc = *p; pc.PluginWindowProc = nullptr; - POPUPDATACLASS d = { sizeof(d) }; + POPUPDATACLASS d = {}; d.pszClassName = pc.pszName; if (p->flags & PCF_UNICODE) { d.szTitle.w = TranslateT("Preview"); diff --git a/src/core/stdpopup/src/services.cpp b/src/core/stdpopup/src/services.cpp index b743e173df..aa5defdb00 100644 --- a/src/core/stdpopup/src/services.cpp +++ b/src/core/stdpopup/src/services.cpp @@ -337,7 +337,6 @@ static INT_PTR UnregisterPopupClass(WPARAM, LPARAM lParam) static INT_PTR CreateClassPopup(WPARAM wParam, LPARAM lParam) { POPUPDATACLASS *pdc = (POPUPDATACLASS *)lParam; - if (pdc->cbSize < sizeof(POPUPDATACLASS)) return 1; POPUPCLASS *pc = nullptr; if (wParam) diff --git a/src/mir_app/src/popups.cpp b/src/mir_app/src/popups.cpp index ac8e7f5dd9..bc4d5f86d8 100644 --- a/src/mir_app/src/popups.cpp +++ b/src/mir_app/src/popups.cpp @@ -114,7 +114,7 @@ MIR_APP_DLL(int) PURegisterActions(POPUPACTION *actions, int count) return (int)CallService(MS_POPUP_REGISTERACTIONS, (WPARAM)actions, (LPARAM)count); } -MIR_APP_DLL(HANDLE) PURegisterNotification(LPPOPUPNOTIFICATION notification) +MIR_APP_DLL(HANDLE) PURegisterNotification(POPUPNOTIFICATION *notification) { return (HANDLE)CallService(MS_POPUP_REGISTERNOTIFICATION, (WPARAM)notification, 0); } @@ -140,7 +140,7 @@ MIR_APP_DLL(HWND) Popup_AddClass(POPUPDATACLASS *pData) MIR_APP_DLL(HWND) ShowClassPopup(const char *name, const char *title, const char *text) { - POPUPDATACLASS d = { sizeof(d) }; + POPUPDATACLASS d = {}; d.pszClassName = name; d.szTitle.a = title; d.szText.a = text; @@ -149,7 +149,7 @@ MIR_APP_DLL(HWND) ShowClassPopup(const char *name, const char *title, const char MIR_APP_DLL(HWND) ShowClassPopupW(const char *name, const wchar_t *title, const wchar_t *text) { - POPUPDATACLASS d = { sizeof(d) }; + POPUPDATACLASS d = {}; d.pszClassName = name; d.szTitle.w = title; d.szText.w = text; |