| Index: src/plugin/PluginClass.cpp |
| =================================================================== |
| --- a/src/plugin/PluginClass.cpp |
| +++ b/src/plugin/PluginClass.cpp |
| @@ -13,7 +13,7 @@ |
| #include "sddl.h" |
| #include "PluginUtil.h" |
| #include "PluginUserSettings.h" |
| - |
| +#include "../shared/Utils.h" |
| #include "../shared/Dictionary.h" |
| #ifdef DEBUG_HIDE_EL |
| @@ -24,7 +24,6 @@ |
| typedef HRESULT (WINAPI *DRAWTHEMEBACKGROUND)(HANDLE, HDC, INT, INT, LPRECT, LPRECT); |
| typedef HRESULT (WINAPI *CLOSETHEMEDATA)(HANDLE); |
| - |
| HICON CPluginClass::s_hIcons[ICON_MAX] = { NULL, NULL, NULL }; |
| DWORD CPluginClass::s_hIconTypes[ICON_MAX] = { IDI_ICON_DISABLED, IDI_ICON_ENABLED, IDI_ICON_DEACTIVATED }; |
| @@ -595,6 +594,10 @@ |
| } |
| } |
| } |
| + if (notificationMessage.IsVisible()) |
| + { |
| + notificationMessage.Hide(); |
|
Wladimir Palant
2013/09/19 08:59:16
I think IsVisible() check should happen inside the
|
| + } |
| DEBUG_GENERAL("Tab change end"); |
| return VARIANT_TRUE; |
| } |
| @@ -1270,7 +1273,12 @@ |
| case ID_MENU_UPDATE: |
| { |
| CPluginClient* client = CPluginClient::GetInstance(); |
| - client->CheckForUpdates(); |
| + notificationMessage.SetParent(m_hPaneWnd); |
| + Dictionary* dictionary = Dictionary::GetInstance(); |
| + std::wstring checkingText = dictionary->Lookup("updater", "checking-for-updates-text"); |
| + std::wstring checkingTitle = dictionary->Lookup("updater", "checking-for-updates-title"); |
| + notificationMessage.Show(checkingText, checkingTitle, TTI_INFO); |
| + client->CheckForUpdates(m_hPaneWnd); |
| } |
| break; |
| case ID_MENU_DISABLE: |
| @@ -1777,7 +1785,48 @@ |
| if (tab) |
| { |
| tab->OnActivate(); |
| + RECT rect; |
| + GetWindowRect(pClass->m_hPaneWnd, &rect); |
| + pClass->notificationMessage.Move(rect.left + (rect.right - rect.left) / 2, rect.top + (rect.bottom - rect.top) / 2); |
| } |
| + if (LOWORD(wParam) == UIS_CLEAR) |
| + { |
| + pClass->notificationMessage.Hide(); |
| + } |
| + } |
| + break; |
| + case WM_WINDOWPOSCHANGING: |
| + { |
| + RECT rect; |
| + GetWindowRect(pClass->m_hPaneWnd, &rect); |
| + if (pClass->notificationMessage.IsVisible()) |
| + { |
| + pClass->notificationMessage.Move(rect.left + (rect.right - rect.left) / 2, rect.top + (rect.bottom - rect.top) / 2); |
| + } |
| + } |
| + break; |
| + case WM_ALREADY_UP_TO_DATE: |
| + { |
| + Dictionary* dictionary = Dictionary::GetInstance(); |
| + std::wstring upToDateText = dictionary->Lookup("updater", "update-already-up-to-date-text"); |
| + std::wstring upToDateTitle = dictionary->Lookup("updater", "update-already-up-to-date-title"); |
| + pClass->notificationMessage.SetTextAndIcon(upToDateText, upToDateTitle, TTI_INFO); |
| + } |
| + break; |
| + case WM_UPDATE_CHECK_ERROR: |
| + { |
| + Dictionary* dictionary = Dictionary::GetInstance(); |
| + std::wstring errorText = dictionary->Lookup("updater", "update-error-text"); |
| + std::wstring errorTitle = dictionary->Lookup("updater", "update-error-title"); |
| + pClass->notificationMessage.SetTextAndIcon(errorText, errorText, TTI_ERROR); |
| + } |
| + break; |
| + case WM_DOWNLOADING_UPDATE: |
| + { |
| + Dictionary* dictionary = Dictionary::GetInstance(); |
| + std::wstring downloadingText = dictionary->Lookup("updater", "downloading-update-text"); |
| + std::wstring downloadingTitle = dictionary->Lookup("updater", "downloading-update-title"); |
| + pClass->notificationMessage.SetTextAndIcon(downloadingText, downloadingTitle, TTI_ERROR); |
| } |
| break; |
| } |