From 0603b6d7050a237f899d29f5557e3682447dd811 Mon Sep 17 00:00:00 2001 From: MikalaiR Date: Fri, 2 Oct 2015 19:03:04 +0000 Subject: popup hiding moved in plugin git-svn-id: http://svn.miranda-ng.org/main/trunk@15498 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/Popup/src/main.cpp | 2 ++ plugins/Popup/src/services.cpp | 5 +++++ plugins/Popup/src/services.h | 1 + plugins/Toaster/src/services.cpp | 7 +++++++ plugins/Toaster/src/toast_event_handler.cpp | 5 +++++ plugins/Toaster/src/toast_event_handler.h | 1 + plugins/Toaster/src/toast_notification.h | 2 ++ plugins/YAPP/src/popwin.cpp | 2 +- plugins/YAPP/src/services.cpp | 15 +++++++++++---- 9 files changed, 35 insertions(+), 5 deletions(-) diff --git a/plugins/Popup/src/main.cpp b/plugins/Popup/src/main.cpp index ffb00e74bd..93dd39d3f7 100644 --- a/plugins/Popup/src/main.cpp +++ b/plugins/Popup/src/main.cpp @@ -387,6 +387,8 @@ MIRAPI int Load(void) CreateServiceFunction(MS_POPUP_UNREGISTERCLASS, Popup_UnregisterPopupClass); CreateServiceFunction(MS_POPUP_ADDPOPUPCLASS, Popup_CreateClassPopup); + CreateServiceFunction(MS_POPUP_DESTROYPOPUP, Popup_DeletePopup); + // load icons / create hook InitIcons(); HookEvent(ME_SKIN2_ICONSCHANGED, IconsChanged); diff --git a/plugins/Popup/src/services.cpp b/plugins/Popup/src/services.cpp index 7741604aaa..b2c3887c4c 100644 --- a/plugins/Popup/src/services.cpp +++ b/plugins/Popup/src/services.cpp @@ -470,3 +470,8 @@ INT_PTR Popup_CreateClassPopup(WPARAM wParam, LPARAM lParam) return Popup_AddPopup2((WPARAM)&ppd2, pc->lParam); } + +INT_PTR Popup_DeletePopup(WPARAM, LPARAM lParam) +{ + return (INT_PTR)SendMessage((HWND)lParam, UM_DESTROYPOPUP, 0, 0); +} \ No newline at end of file diff --git a/plugins/Popup/src/services.h b/plugins/Popup/src/services.h index cea395b1bd..b47f04f397 100644 --- a/plugins/Popup/src/services.h +++ b/plugins/Popup/src/services.h @@ -51,5 +51,6 @@ INT_PTR Popup_RegisterVfx(WPARAM wParam, LPARAM lParam); INT_PTR Popup_RegisterPopupClass(WPARAM wParam, LPARAM lParam); INT_PTR Popup_UnregisterPopupClass(WPARAM wParam, LPARAM lParam); INT_PTR Popup_CreateClassPopup(WPARAM wParam, LPARAM lParam); +INT_PTR Popup_DeletePopup(WPARAM, LPARAM lParam); #endif // __services_h__ diff --git a/plugins/Toaster/src/services.cpp b/plugins/Toaster/src/services.cpp index 973625c35f..d930426906 100644 --- a/plugins/Toaster/src/services.cpp +++ b/plugins/Toaster/src/services.cpp @@ -259,6 +259,11 @@ static INT_PTR ShowMessage(WPARAM wParam, LPARAM lParam) return ShowMessageW(tszText, lParam); } +static INT_PTR HideToast(WPARAM, LPARAM lParam) +{ + static_cast(reinterpret_cast(lParam)->GetToastNotification())->Hide(); + return 0; +} void __stdcall HideAllToasts(void*) { mir_cslock lck(csNotifications); @@ -283,4 +288,6 @@ void InitServices() CreateServiceFunction(MS_POPUP_GETPLUGINDATA, GetPopupData); CreateServiceFunction(MS_POPUP_GETCONTACT, GetPopupContact); + + CreateServiceFunction(MS_POPUP_DESTROYPOPUP, HideToast); } \ No newline at end of file diff --git a/plugins/Toaster/src/toast_event_handler.cpp b/plugins/Toaster/src/toast_event_handler.cpp index a31a0d342b..6248cf9eaa 100644 --- a/plugins/Toaster/src/toast_event_handler.cpp +++ b/plugins/Toaster/src/toast_event_handler.cpp @@ -99,4 +99,9 @@ void* ToastEventHandler::GetPluginData() MCONTACT ToastEventHandler::GetContact() { return _thd->hContact; +} + +void* ToastEventHandler::GetToastNotification() +{ + return _thd->tstNotification; } \ No newline at end of file diff --git a/plugins/Toaster/src/toast_event_handler.h b/plugins/Toaster/src/toast_event_handler.h index a0efcbac2e..2626436540 100644 --- a/plugins/Toaster/src/toast_event_handler.h +++ b/plugins/Toaster/src/toast_event_handler.h @@ -24,6 +24,7 @@ public: void* GetPluginData(); MCONTACT GetContact(); + void* GetToastNotification(); private: ULONG _ref; diff --git a/plugins/Toaster/src/toast_notification.h b/plugins/Toaster/src/toast_notification.h index 30bb591f3d..4399248848 100644 --- a/plugins/Toaster/src/toast_notification.h +++ b/plugins/Toaster/src/toast_notification.h @@ -1,6 +1,8 @@ #ifndef _TOAST_NOTIFICATION_H_ #define _TOAST_NOTIFICATION_H_ +struct ToastHandlerData; + class ToastNotification { private: diff --git a/plugins/YAPP/src/popwin.cpp b/plugins/YAPP/src/popwin.cpp index 01ba681cfe..44f2209b52 100644 --- a/plugins/YAPP/src/popwin.cpp +++ b/plugins/YAPP/src/popwin.cpp @@ -376,7 +376,7 @@ LRESULT CALLBACK PopupWindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lPa // avatar & time if with avatar if (options.av_layout != PAV_NONE && (pwd->have_av || options.time_layout == PT_WITHAV)) { - RECT avr; + RECT avr = { 0 }; avr.top = options.av_padding; if (options.av_layout == PAV_LEFT) { diff --git a/plugins/YAPP/src/services.cpp b/plugins/YAPP/src/services.cpp index bcee759527..88f6a65cfe 100644 --- a/plugins/YAPP/src/services.cpp +++ b/plugins/YAPP/src/services.cpp @@ -214,6 +214,7 @@ INT_PTR PopupQuery(WPARAM wParam, LPARAM) { bool enabled = db_get_b(0, "Popup", "ModuleIsEnabled", 1) != 0; if (!enabled) db_set_b(0, "Popup", "ModuleIsEnabled", 1); + UpdateMenu(); return !enabled; } break; @@ -221,18 +222,17 @@ INT_PTR PopupQuery(WPARAM wParam, LPARAM) { bool enabled = db_get_b(0, "Popup", "ModuleIsEnabled", 1) != 0; if (enabled) db_set_b(0, "Popup", "ModuleIsEnabled", 0); + UpdateMenu(); return enabled; } break; case PUQS_GETSTATUS: return db_get_b(0, "Popup", "ModuleIsEnabled", 1); - default: + UpdateMenu(); return 1; } - UpdateMenu(); - return 0; } static INT_PTR TogglePopups(WPARAM, LPARAM) @@ -410,6 +410,11 @@ static INT_PTR CreateClassPopup(WPARAM wParam, LPARAM lParam) return 0; } +INT_PTR Popup_DeletePopup(WPARAM, LPARAM lParam) +{ + return (INT_PTR)SendMessage((HWND)lParam, UM_DESTROYPOPUP, 0, 0); +} + ////////////////////////////////////////////////////////////////////////////// void InitServices() @@ -429,10 +434,12 @@ void InitServices() CreateServiceFunction(MS_POPUP_QUERY, PopupQuery); CreateServiceFunction(MS_POPUP_SHOWMESSAGE, ShowMessage); - CreateServiceFunction(MS_POPUP_SHOWMESSAGE"W", ShowMessageW); + CreateServiceFunction(MS_POPUP_SHOWMESSAGEW, ShowMessageW); CreateServiceFunction(MS_POPUP_SHOWHISTORY, Popup_ShowHistory); CreateServiceFunction("Popup/EnableDisableMenuCommand", TogglePopups); + + CreateServiceFunction(MS_POPUP_DESTROYPOPUP, Popup_DeletePopup); } void DeinitServices() -- cgit v1.2.3