| Index: src/plugin/PluginClass.cpp |
| =================================================================== |
| --- a/src/plugin/PluginClass.cpp |
| +++ b/src/plugin/PluginClass.cpp |
| @@ -1,27 +1,28 @@ |
| #include "PluginStdAfx.h" |
| #include "PluginClass.h" |
| -#include "PluginDictionary.h" |
| #include "PluginSettings.h" |
| #include "PluginSystem.h" |
| #ifdef SUPPORT_FILTER |
| #include "PluginFilter.h" |
| #endif |
| #include "PluginMimeFilterClient.h" |
| #include "PluginClient.h" |
| #include "PluginClientFactory.h" |
| #include "PluginHttpRequest.h" |
| #include "PluginMutex.h" |
| #include "DownloadSource.h" |
| #include "sddl.h" |
| #include "PluginUtil.h" |
| #include "PluginUserSettings.h" |
| +#include "../shared/Dictionary.h" |
| + |
| #ifdef DEBUG_HIDE_EL |
| DWORD profileTime = 0; |
| #endif |
| typedef HANDLE (WINAPI *OPENTHEMEDATA)(HWND, LPCWSTR); |
| typedef HRESULT (WINAPI *DRAWTHEMEBACKGROUND)(HANDLE, HDC, INT, INT, LPRECT, LPRECT); |
| typedef HRESULT (WINAPI *CLOSETHEMEDATA)(HANDLE); |
| @@ -551,36 +552,40 @@ void CPluginClass::ShowStatusBar() |
| if (SUCCEEDED(hr)) |
| { |
| if (!isVisible) |
| { |
| if (!settings->GetBool("statusbarasked", false)) |
| { |
| SHANDLE_PTR pBrowserHWnd; |
| browser->get_HWND((SHANDLE_PTR*)&pBrowserHWnd); |
| - CPluginDictionary* dictionary = CPluginDictionary::GetInstance(false); |
| + Dictionary* dictionary = Dictionary::GetInstance(); |
| settings->SetBool("statusbarasked", true); |
| settings->Write(); |
| HKEY pHkey; |
| HKEY pHkeySub; |
| LSTATUS regRes = 0; |
| regRes = RegOpenCurrentUser(KEY_WRITE, &pHkey); |
| // Do we have enough rights to enable a status bar? |
| if (regRes != 0) |
| { |
| // We use the tab window here and in the next few calls, since the browser window may still not be available |
| - LRESULT res = MessageBox((HWND)m_hTabWnd, dictionary->Lookup("ERROR_CAN_NOT_ENABLE_STATUS_BAR"), |
| - dictionary->Lookup("ERROR_CAN_NOT_ENABLE_STATUS_BAR_TITLE"), MB_OK); |
| + LRESULT res = MessageBox((HWND)m_hTabWnd, |
| + dictionary->Lookup("status-bar", "error-text").c_str(), |
| + dictionary->Lookup("status-bar", "error-title").c_str(), |
| + MB_OK); |
| return; |
| } |
| // Ask if a user wants to enable a status bar automatically |
| - LRESULT res = MessageBox((HWND)m_hTabWnd, dictionary->Lookup("ERROR_STATUS_BAR_DISABLED"), |
| - dictionary->Lookup("ERROR_STATUS_BAR_DISABLED_TITLE"), MB_YESNO); |
| + LRESULT res = MessageBox((HWND)m_hTabWnd, |
| + dictionary->Lookup("status-bar", "question").c_str(), |
| + dictionary->Lookup("status-bar", "title").c_str(), |
| + MB_YESNO); |
| if (res == IDYES) |
| { |
| DWORD trueth = 1; |
| regRes = RegOpenKey(pHkey, L"Software\\Microsoft\\Internet Explorer\\MINIE", &pHkeySub); |
| regRes = RegSetValueEx(pHkeySub, L"ShowStatusBar", 0, REG_DWORD, (BYTE*)&trueth, sizeof(DWORD)); |
| regRes = RegCloseKey(pHkeySub); |
| regRes = RegOpenKey(pHkey, L"Software\\Microsoft\\Internet Explorer\\Main", &pHkeySub); |
| regRes = RegSetValueEx(pHkeySub, L"StatusBarWeb", 0, REG_DWORD, (BYTE*)&trueth, sizeof(DWORD)); |
| @@ -1464,39 +1469,39 @@ void CPluginClass::DisplayPluginMenu(HME |
| } |
| } |
| } |
| } |
| bool CPluginClass::SetMenuBar(HMENU hMenu, const CString& url) |
| { |
| - CString ctext; |
| + std::wstring ctext; |
| s_criticalSectionLocal.Lock(); |
| { |
| #ifdef SUPPORT_WHITELIST |
| s_menuDomains.clear(); |
| #endif |
| } |
| s_criticalSectionLocal.Unlock(); |
| CPluginTab* tab = GetTab(::GetCurrentThreadId()); |
| if (!tab) |
| { |
| return false; |
| } |
| - CPluginDictionary* dictionary = CPluginDictionary::GetInstance(); |
| + Dictionary* dictionary = Dictionary::GetInstance(); |
| - MENUITEMINFO fmii; |
| + MENUITEMINFOW fmii; |
| memset(&fmii, 0, sizeof(MENUITEMINFO)); |
| fmii.cbSize = sizeof(MENUITEMINFO); |
| - MENUITEMINFO miiSep; |
| + MENUITEMINFOW miiSep; |
| memset(&miiSep, 0, sizeof(MENUITEMINFO)); |
| miiSep.cbSize = sizeof(MENUITEMINFO); |
| miiSep.fMask = MIIM_TYPE | MIIM_FTYPE; |
| miiSep.fType = MFT_SEPARATOR; |
| CPluginClient* client = CPluginClient::GetInstance(); |
| CPluginSettings* settings = CPluginSettings::GetInstance(); |
| @@ -1504,94 +1509,92 @@ bool CPluginClass::SetMenuBar(HMENU hMen |
| settings->RefreshTab(); |
| // Update settings |
| m_tab->OnUpdateSettings(false); |
| #ifdef SUPPORT_WHITELIST |
| { |
| // White list domain |
| - ctext = dictionary->Lookup("MENU_DISABLE_ON"); |
| + ctext = dictionary->Lookup("menu", "disable-on-site"); |
| fmii.fMask = MIIM_STRING | MIIM_STATE; |
| fmii.fState = MFS_DISABLED; |
| - fmii.dwTypeData = ctext.GetBuffer(); |
| - fmii.cch = ctext.GetLength(); |
| + fmii.dwTypeData = const_cast<LPWSTR>(ctext.c_str()); |
| + fmii.cch = ctext.size(); |
| UINT index = WM_WHITELIST_DOMAIN; |
| - ::SetMenuItemInfo(hMenu, ID_WHITELISTDOMAIN, FALSE, &fmii); |
| + ::SetMenuItemInfoW(hMenu, ID_WHITELISTDOMAIN, FALSE, &fmii); |
| } |
| #else |
| { |
| ::DeleteMenu(hMenu, ID_WHITELISTDOMAIN, FALSE); |
| } |
| #endif // SUPPORT_WHITELIST |
|
Oleksandr
2013/06/18 07:41:09
This is a menu that has been shown when a user cli
Wladimir Palant
2013/06/18 08:17:48
It's quite the opposite actually - we should make
|
| // Invite friends |
| - ctext = dictionary->Lookup("MENU_INVITE_FRIENDS"); |
| + ctext = dictionary->Lookup("menu", "invite"); |
| fmii.fMask = MIIM_STATE | MIIM_STRING; |
| fmii.fState = MFS_ENABLED; |
| - fmii.dwTypeData = ctext.GetBuffer(); |
| - fmii.cch = ctext.GetLength(); |
| - ::SetMenuItemInfo(hMenu, ID_INVITEFRIENDS, FALSE, &fmii); |
| + fmii.dwTypeData = const_cast<LPWSTR>(ctext.c_str()); |
| + fmii.cch = ctext.size(); |
| + ::SetMenuItemInfoW(hMenu, ID_INVITEFRIENDS, FALSE, &fmii); |
| // FAQ |
| - ctext = dictionary->Lookup("MENU_FAQ"); |
| + ctext = dictionary->Lookup("menu", "faq"); |
| fmii.fMask = MIIM_STATE | MIIM_STRING; |
| fmii.fState = MFS_ENABLED; |
| - fmii.dwTypeData = ctext.GetBuffer(); |
| - fmii.cch = ctext.GetLength(); |
| - ::SetMenuItemInfo(hMenu, ID_FAQ, FALSE, &fmii); |
| + fmii.dwTypeData = const_cast<LPWSTR>(ctext.c_str()); |
| + fmii.cch = ctext.size(); |
| + ::SetMenuItemInfoW(hMenu, ID_FAQ, FALSE, &fmii); |
| // About |
| - ctext = dictionary->Lookup("MENU_ABOUT"); |
| + ctext = dictionary->Lookup("menu", "about"); |
| fmii.fMask = MIIM_STATE | MIIM_STRING; |
| fmii.fState = MFS_ENABLED; |
| - fmii.dwTypeData = ctext.GetBuffer(); |
| - fmii.cch = ctext.GetLength(); |
| - ::SetMenuItemInfo(hMenu, ID_ABOUT, FALSE, &fmii); |
| + fmii.dwTypeData = const_cast<LPWSTR>(ctext.c_str()); |
| + fmii.cch = ctext.size(); |
| + ::SetMenuItemInfoW(hMenu, ID_ABOUT, FALSE, &fmii); |
| // Feedback |
| - ctext = dictionary->Lookup("MENU_FEEDBACK"); |
| + ctext = dictionary->Lookup("menu", "feedback"); |
| fmii.fMask = MIIM_STATE | MIIM_STRING; |
| fmii.fState = MFS_ENABLED; |
| - fmii.dwTypeData = ctext.GetBuffer(); |
| - fmii.cch = ctext.GetLength(); |
| - ::SetMenuItemInfo(hMenu, ID_FEEDBACK, FALSE, &fmii); |
| + fmii.dwTypeData = const_cast<LPWSTR>(ctext.c_str()); |
| + fmii.cch = ctext.size(); |
| + ::SetMenuItemInfoW(hMenu, ID_FEEDBACK, FALSE, &fmii); |
| // Plugin enable |
| if (settings->GetPluginEnabled()) |
| { |
| - ctext = dictionary->Lookup("MENU_DISABLE"); |
| + ctext = dictionary->Lookup("menu", "disable"); |
| } |
| else |
| { |
| - ctext = dictionary->Lookup("MENU_ENABLE"); |
| + ctext = dictionary->Lookup("menu", "enable"); |
| } |
| fmii.fMask = MIIM_STATE | MIIM_STRING; |
| fmii.fState = client ? MFS_ENABLED : MFS_DISABLED; |
| - fmii.dwTypeData = ctext.GetBuffer(); |
| - fmii.cch = ctext.GetLength(); |
| - ::SetMenuItemInfo(hMenu, ID_PLUGIN_ENABLE, FALSE, &fmii); |
| + fmii.dwTypeData = const_cast<LPWSTR>(ctext.c_str()); |
| + fmii.cch = ctext.size(); |
| + ::SetMenuItemInfoW(hMenu, ID_PLUGIN_ENABLE, FALSE, &fmii); |
| // Settings |
| #ifndef ENTERPRISE |
| - ctext = dictionary->Lookup("MENU_SETTINGS"); |
| + ctext = dictionary->Lookup("menu", "settings"); |
| fmii.fMask = MIIM_STATE | MIIM_STRING; |
| fmii.fState = MFS_ENABLED; |
| - fmii.dwTypeData = ctext.GetBuffer(); |
| - fmii.cch = ctext.GetLength(); |
| - ::SetMenuItemInfo(hMenu, ID_SETTINGS, FALSE, &fmii); |
| + fmii.dwTypeData = const_cast<LPWSTR>(ctext.c_str()); |
| + fmii.cch = ctext.size(); |
| + ::SetMenuItemInfoW(hMenu, ID_SETTINGS, FALSE, &fmii); |
| #else |
| RemoveMenu(hMenu, ID_SETTINGS, MF_BYCOMMAND); |
| RemoveMenu(hMenu, 5, MF_BYPOSITION); |
| #endif |
| - ctext.ReleaseBuffer(); |
| - |
| return true; |
| } |
| STDMETHODIMP CPluginClass::Exec(const GUID*, DWORD nCmdID, DWORD, VARIANTARG*, VARIANTARG*) |
| { |
| HWND hBrowserWnd = GetBrowserHWND(); |
| if (!hBrowserWnd) |
| @@ -1966,19 +1969,22 @@ LRESULT CALLBACK CPluginClass::PaneWindo |
| { |
| HRESULT hr = S_OK; |
| hr = browser->get_StatusBar(&isVisible); |
| if (SUCCEEDED(hr)) |
| { |
| if (!isVisible) |
| { |
| - CPluginDictionary* dictionary = CPluginDictionary::GetInstance(); |
| + Dictionary* dictionary = Dictionary::GetInstance(); |
| - LRESULT res = MessageBox(NULL, dictionary->Lookup("ERROR_STATUS_BAR_DISABLED"), dictionary->Lookup("ERROR_STATUS_BAR_DISABLED_TITLE"), MB_YESNO); |
| + LRESULT res = MessageBox(NULL, |
| + dictionary->Lookup("status-bar", "question").c_str(), |
| + dictionary->Lookup("status-bar", "title").c_str(), |
| + MB_YESNO); |
| if (res == IDYES) |
| { |
| hr = browser->put_StatusBar(TRUE); |
| if (FAILED(hr)) |
| { |
| DEBUG_ERROR_LOG(hr, PLUGIN_ERROR_UI, PLUGIN_ERROR_UI_PUT_STATUSBAR, "Class::Enable statusbar"); |
| } |
| } |