From 7fea34d87866e1fbfce343bd650c732fe05a6a83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20P=C3=B6sel?= Date: Thu, 29 May 2014 16:40:20 +0000 Subject: Plugin Updater: Improved silentMode popups git-svn-id: http://svn.miranda-ng.org/main/trunk@9355 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/PluginUpdater/res/Resource.rc | 4 +-- plugins/PluginUpdater/src/DlgUpdate.cpp | 45 ++++++++++++++++++++++++++++++++- 2 files changed, 46 insertions(+), 3 deletions(-) (limited to 'plugins/PluginUpdater') diff --git a/plugins/PluginUpdater/res/Resource.rc b/plugins/PluginUpdater/res/Resource.rc index 2d153aa4eb..12236bac66 100644 --- a/plugins/PluginUpdater/res/Resource.rc +++ b/plugins/PluginUpdater/res/Resource.rc @@ -81,7 +81,7 @@ BEGIN "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,11,135,247,10 CONTROL "Custom version",IDC_CUSTOM,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,11,150,247,10 EDITTEXT IDC_CUSTOMURL,11,164,234,16,ES_AUTOHSCROLL | WS_DISABLED - LTEXT "You need restart your Miranda to apply installed updates",IDC_NEEDRESTARTLABEL,11,192,253,22,NOT WS_VISIBLE + CTEXT "Some component(s) was updated.\nYou need to restart your Miranda to apply installed updates.",IDC_NEEDRESTARTLABEL,11,193,247,15,NOT WS_VISIBLE END IDD_POPUP DIALOGEX 0, 0, 316, 182 @@ -191,7 +191,7 @@ BEGIN VERTGUIDE, 11 VERTGUIDE, 258 VERTGUIDE, 264 - BOTTOMMARGIN, 207 + BOTTOMMARGIN, 214 END IDD_LIST, DIALOG diff --git a/plugins/PluginUpdater/src/DlgUpdate.cpp b/plugins/PluginUpdater/src/DlgUpdate.cpp index 58da5f1263..bf0b803862 100644 --- a/plugins/PluginUpdater/src/DlgUpdate.cpp +++ b/plugins/PluginUpdater/src/DlgUpdate.cpp @@ -334,6 +334,27 @@ static INT_PTR CALLBACK DlgUpdate(HWND hDlg, UINT message, WPARAM wParam, LPARAM return FALSE; } +static LRESULT CALLBACK PopupDlgProcRestart(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) +{ + switch (uMsg) { + case WM_COMMAND: + case WM_CONTEXTMENU: + PUDeletePopup(hDlg); + + if (uMsg == WM_COMMAND) { + TCHAR tszText[200]; + mir_sntprintf(tszText, SIZEOF(tszText), _T("%s\n\n%s"), TranslateT("You need to restart your Miranda to apply installed updates."), TranslateT("Would you like to restart it now?")); + + if (MessageBox(hDlg, tszText, TranslateT("Plugin Updater"), MB_YESNO | MB_ICONQUESTION) == IDYES) + CallFunctionAsync(RestartMe, 0); + } + + return TRUE; + } + + return DefWindowProc(hDlg, uMsg, wParam, lParam); +} + static void DlgUpdateSilent(void *lParam) { OBJLIST &UpdateFiles = *(OBJLIST *)lParam; @@ -422,7 +443,29 @@ static void DlgUpdateSilent(void *lParam) db_set_b(NULL, MODNAME, "RestartCount", 5); db_set_b(NULL, MODNAME, "NeedRestart", 1); - ShowPopup(0, LPGENT("Plugin Updater"), LPGENT("You need restart your Miranda to apply installed updates"), 2, 0, 1); + TCHAR tszTitle[100]; + mir_sntprintf(tszTitle, SIZEOF(tszTitle), TranslateT("%d component(s) was updated"), UpdateFiles.getCount()); + + if (!ServiceExists(MS_POPUP_ADDPOPUPT) || !db_get_b(NULL, "Popup", "ModuleIsEnabled", 1)) { + TCHAR tszText[200]; + mir_sntprintf(tszText, SIZEOF(tszText), _T("%s\n\n%s"), TranslateT("You need to restart your Miranda to apply installed updates."), TranslateT("Would you like to restart it now?")); + + if (MessageBox(NULL, tszText, tszTitle, MB_ICONINFORMATION | MB_YESNO) == IDYES) + CallFunctionAsync(RestartMe, 0); + } else { + POPUPDATAT_V2 pd = { 0 }; + pd.cbSize = sizeof(pd); + pd.lchContact = NULL; + pd.lchIcon = LoadSkinnedIcon(SKINICON_OTHER_MIRANDA); + pd.colorBack = pd.colorText = 0; + pd.iSeconds = -1; + pd.PluginWindowProc = PopupDlgProcRestart; + + lstrcpyn(pd.lptzText, TranslateT("You need to restart your Miranda to apply installed updates."), MAX_SECONDLINE); + lstrcpyn(pd.lptzContactName, tszTitle, MAX_CONTACTNAME); + + CallService(MS_POPUP_ADDPOPUPT, (WPARAM)&pd, APF_NEWDATA); + } } } -- cgit v1.2.3