mirror of
https://github.com/notepad-plus-plus/notepad-plus-plus.git
synced 2025-07-28 00:04:25 +02:00
Fix translation problem for "Sort By"
Make "Plugins" & "Window" menu static to simplify the code.
This commit is contained in:
parent
1c8b867395
commit
5917fdefb0
@ -476,15 +476,13 @@ void PluginsManager::addInMenuFromPMIndex(int i)
|
||||
}
|
||||
}
|
||||
|
||||
HMENU PluginsManager::setMenu(HMENU hMenu, const TCHAR *menuName, bool enablePluginAdmin)
|
||||
HMENU PluginsManager::initMenu(HMENU hMenu, bool enablePluginAdmin)
|
||||
{
|
||||
const TCHAR *nom_menu = (menuName && menuName[0])?menuName:TEXT("&Plugins");
|
||||
size_t nbPlugin = _pluginInfos.size();
|
||||
|
||||
if (!_hPluginsMenu)
|
||||
{
|
||||
_hPluginsMenu = ::CreateMenu();
|
||||
::InsertMenu(hMenu, MENUINDEX_PLUGINS, MF_BYPOSITION | MF_POPUP, (UINT_PTR)_hPluginsMenu, nom_menu);
|
||||
_hPluginsMenu = ::GetSubMenu(hMenu, 10);
|
||||
|
||||
int i = 1;
|
||||
|
||||
@ -496,8 +494,6 @@ HMENU PluginsManager::setMenu(HMENU hMenu, const TCHAR *menuName, bool enablePlu
|
||||
::InsertMenu(_hPluginsMenu, i++, MF_BYPOSITION, IDM_SETTING_PLUGINADM, TEXT("Plugins Admin..."));
|
||||
::InsertMenu(_hPluginsMenu, i++, MF_BYPOSITION | MF_SEPARATOR, 0, TEXT(""));
|
||||
}
|
||||
|
||||
::InsertMenu(_hPluginsMenu, i, MF_BYPOSITION, IDM_SETTING_OPENPLUGINSDIR, TEXT("Open Plugins Folder..."));
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < nbPlugin; ++i)
|
||||
|
@ -78,9 +78,6 @@ public:
|
||||
{
|
||||
for (size_t i = 0, len = _pluginInfos.size(); i < len; ++i)
|
||||
delete _pluginInfos[i];
|
||||
|
||||
if (_hPluginsMenu)
|
||||
DestroyMenu(_hPluginsMenu);
|
||||
}
|
||||
|
||||
void init(const NppData & nppData)
|
||||
@ -97,7 +94,7 @@ public:
|
||||
void runPluginCommand(const TCHAR *pluginName, int commandID);
|
||||
|
||||
void addInMenuFromPMIndex(int i);
|
||||
HMENU setMenu(HMENU hMenu, const TCHAR *menuName, bool enablePluginAdmin = false);
|
||||
HMENU initMenu(HMENU hMenu, bool enablePluginAdmin = false);
|
||||
bool getShortcutByCmdID(int cmdID, ShortcutKey *sk);
|
||||
bool removeShortcutByCmdID(int cmdID);
|
||||
|
||||
|
@ -529,7 +529,7 @@ LRESULT Notepad_plus::init(HWND hwnd)
|
||||
//Plugin menu
|
||||
bool enablePluginAdmin = _pluginsAdminDlg.isValide();
|
||||
_pluginsAdminDlg.setPluginsManager(&_pluginsManager);
|
||||
_pluginsManager.setMenu(_mainMenuHandle, NULL, enablePluginAdmin);
|
||||
_pluginsManager.initMenu(_mainMenuHandle, enablePluginAdmin);
|
||||
|
||||
//Search menu
|
||||
//disable "Search Results Window" under Search Menu
|
||||
@ -554,7 +554,7 @@ LRESULT Notepad_plus::init(HWND hwnd)
|
||||
::ModifyMenu(_mainMenuHandle, MENUINDEX_PLUGINS, MF_BYPOSITION, 0, pluginsTrans.c_str());
|
||||
}
|
||||
//Windows menu
|
||||
_windowsMenu.init(_pPublicInterface->getHinst(), _mainMenuHandle, windowTrans.c_str());
|
||||
_windowsMenu.init(_mainMenuHandle, windowTrans.c_str());
|
||||
|
||||
// Update context menu strings (translated)
|
||||
vector<MenuItemUnit> & tmp = nppParam.getContextMenuItems();
|
||||
|
@ -1163,6 +1163,29 @@ BEGIN
|
||||
BEGIN
|
||||
MENUITEM "&Run...", IDM_EXECUTE
|
||||
END
|
||||
|
||||
POPUP "&Plugins"
|
||||
BEGIN
|
||||
MENUITEM "Open Plugins Folder...", IDM_SETTING_OPENPLUGINSDIR
|
||||
END
|
||||
|
||||
POPUP "&Window"
|
||||
BEGIN
|
||||
POPUP "Sort By"
|
||||
BEGIN
|
||||
MENUITEM "Name A to Z", IDM_WINDOW_SORT_FN_ASC
|
||||
MENUITEM "Name Z to A", IDM_WINDOW_SORT_FN_DSC
|
||||
MENUITEM "Path A to Z", IDM_WINDOW_SORT_FP_ASC
|
||||
MENUITEM "Path Z to A", IDM_WINDOW_SORT_FP_DSC
|
||||
MENUITEM "Type A to Z", IDM_WINDOW_SORT_FT_ASC
|
||||
MENUITEM "Type Z to A", IDM_WINDOW_SORT_FT_DSC
|
||||
MENUITEM "Size Smaller to Larger", IDM_WINDOW_SORT_FS_ASC
|
||||
MENUITEM "Size Larger to Smaller", IDM_WINDOW_SORT_FS_DSC
|
||||
END
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Recent Window", IDM_WINDOW_MRU_FIRST, GRAYED
|
||||
MENUITEM "&Windows...", IDM_WINDOW_WINDOWS
|
||||
END
|
||||
|
||||
POPUP "&?"
|
||||
BEGIN
|
||||
|
@ -405,14 +405,14 @@ static const WinMenuKeyDefinition winKeyDefs[] =
|
||||
|
||||
{ VK_F5, IDM_EXECUTE, false, false, false, nullptr },
|
||||
|
||||
{ VK_NULL, IDM_WINDOW_SORT_FN_ASC, false, false, false, nullptr },
|
||||
{ VK_NULL, IDM_WINDOW_SORT_FN_DSC, false, false, false, nullptr },
|
||||
{ VK_NULL, IDM_WINDOW_SORT_FP_ASC, false, false, false, nullptr },
|
||||
{ VK_NULL, IDM_WINDOW_SORT_FP_DSC, false, false, false, nullptr },
|
||||
{ VK_NULL, IDM_WINDOW_SORT_FT_ASC, false, false, false, nullptr },
|
||||
{ VK_NULL, IDM_WINDOW_SORT_FT_DSC, false, false, false, nullptr },
|
||||
{ VK_NULL, IDM_WINDOW_SORT_FS_ASC, false, false, false, nullptr },
|
||||
{ VK_NULL, IDM_WINDOW_SORT_FS_DSC, false, false, false, nullptr },
|
||||
{ VK_NULL, IDM_WINDOW_SORT_FN_ASC, false, false, false, TEXT("Sort By Name A to Z") },
|
||||
{ VK_NULL, IDM_WINDOW_SORT_FN_DSC, false, false, false, TEXT("Sort By Name Z to A") },
|
||||
{ VK_NULL, IDM_WINDOW_SORT_FP_ASC, false, false, false, TEXT("Sort By Path A to Z") },
|
||||
{ VK_NULL, IDM_WINDOW_SORT_FP_DSC, false, false, false, TEXT("Sort By Path Z to A") },
|
||||
{ VK_NULL, IDM_WINDOW_SORT_FT_ASC, false, false, false, TEXT("Sort By Type A to Z") },
|
||||
{ VK_NULL, IDM_WINDOW_SORT_FT_DSC, false, false, false, TEXT("Sort By Type Z to A") },
|
||||
{ VK_NULL, IDM_WINDOW_SORT_FS_ASC, false, false, false, TEXT("Sort By Size Smaller to Larger") },
|
||||
{ VK_NULL, IDM_WINDOW_SORT_FS_DSC, false, false, false, TEXT("Sort By Size Larger to Smaller") },
|
||||
|
||||
{ VK_NULL, IDM_CMDLINEARGUMENTS, false, false, false, nullptr },
|
||||
{ VK_NULL, IDM_HOMESWEETHOME, false, false, false, nullptr },
|
||||
|
@ -1148,18 +1148,10 @@ LRESULT CALLBACK WindowsDlg::listViewProc(HWND hwnd, UINT Message, WPARAM wParam
|
||||
return CallWindowProc(reinterpret_cast<WNDPROC>(originalListViewProc), hwnd, Message, wParam, lParam);
|
||||
}
|
||||
|
||||
WindowsMenu::WindowsMenu()
|
||||
{}
|
||||
|
||||
WindowsMenu::~WindowsMenu()
|
||||
void WindowsMenu::init(HMENU hMainMenu, const TCHAR *translation)
|
||||
{
|
||||
if (_hMenu)
|
||||
DestroyMenu(_hMenu);
|
||||
}
|
||||
|
||||
void WindowsMenu::init(HINSTANCE hInst, HMENU hMainMenu, const TCHAR *translation)
|
||||
{
|
||||
_hMenu = ::LoadMenu(hInst, MAKEINTRESOURCE(IDR_WINDOWS_MENU));
|
||||
_hMenu = ::GetSubMenu(hMainMenu, 11);
|
||||
|
||||
if (translation && translation[0])
|
||||
{
|
||||
@ -1167,25 +1159,6 @@ void WindowsMenu::init(HINSTANCE hInst, HMENU hMainMenu, const TCHAR *translatio
|
||||
windowStr += TEXT("...");
|
||||
::ModifyMenu(_hMenu, IDM_WINDOW_WINDOWS, MF_BYCOMMAND, IDM_WINDOW_WINDOWS, windowStr.c_str());
|
||||
}
|
||||
|
||||
int32_t pos = 0;
|
||||
for (pos = GetMenuItemCount(hMainMenu) - 1; pos > 0; --pos)
|
||||
{
|
||||
if ((GetMenuState(hMainMenu, pos, MF_BYPOSITION) & MF_POPUP) != MF_POPUP)
|
||||
continue;
|
||||
break;
|
||||
}
|
||||
|
||||
MENUITEMINFO mii;
|
||||
memset(&mii, 0, sizeof(mii));
|
||||
mii.cbSize = sizeof(mii);
|
||||
mii.fMask = MIIM_STRING|MIIM_SUBMENU;
|
||||
|
||||
TCHAR buffer[32];
|
||||
LoadString(hInst, IDR_WINDOWS_MENU, buffer, 32);
|
||||
mii.dwTypeData = (TCHAR *)((translation && translation[0])?translation:buffer);
|
||||
mii.hSubMenu = _hMenu;
|
||||
InsertMenuItem(hMainMenu, pos, TRUE, &mii);
|
||||
}
|
||||
|
||||
void WindowsMenu::initPopupMenu(HMENU hMenu, DocTabView *pTab)
|
||||
|
@ -109,9 +109,9 @@ private:
|
||||
class WindowsMenu
|
||||
{
|
||||
public:
|
||||
WindowsMenu();
|
||||
~WindowsMenu();
|
||||
void init(HINSTANCE hInst, HMENU hMainMenu, const TCHAR *translation);
|
||||
WindowsMenu() {};
|
||||
~WindowsMenu() {};
|
||||
void init(HMENU hMainMenu, const TCHAR *translation);
|
||||
void initPopupMenu(HMENU hMenu, DocTabView *pTab);
|
||||
|
||||
private:
|
||||
|
@ -30,27 +30,3 @@ BEGIN
|
||||
PUSHBUTTON "Sort &tabs",IDC_WINDOWS_SORT,219,60,60,14
|
||||
PUSHBUTTON "&OK",IDCANCEL,219,169,60,14
|
||||
END
|
||||
|
||||
IDR_WINDOWS_MENU MENU
|
||||
BEGIN
|
||||
POPUP "Sort By"
|
||||
BEGIN
|
||||
MENUITEM "Name A to Z", IDM_WINDOW_SORT_FN_ASC
|
||||
MENUITEM "Name Z to A", IDM_WINDOW_SORT_FN_DSC
|
||||
MENUITEM "Path A to Z", IDM_WINDOW_SORT_FP_ASC
|
||||
MENUITEM "Path Z to A", IDM_WINDOW_SORT_FP_DSC
|
||||
MENUITEM "Type A to Z", IDM_WINDOW_SORT_FT_ASC
|
||||
MENUITEM "Type Z to A", IDM_WINDOW_SORT_FT_DSC
|
||||
MENUITEM "Size Smaller to Larger", IDM_WINDOW_SORT_FS_ASC
|
||||
MENUITEM "Size Larger to Smaller", IDM_WINDOW_SORT_FS_DSC
|
||||
END
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Recent Window", IDM_WINDOW_MRU_FIRST, GRAYED
|
||||
MENUITEM "&Windows...", IDM_WINDOW_WINDOWS
|
||||
END
|
||||
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDR_WINDOWS_MENU "&Window"
|
||||
END
|
||||
|
@ -33,19 +33,3 @@
|
||||
#define IDC_WINDOWS_SAVE (IDD_WINDOWS + 2)
|
||||
#define IDC_WINDOWS_CLOSE (IDD_WINDOWS + 3)
|
||||
#define IDC_WINDOWS_SORT (IDD_WINDOWS + 4)
|
||||
|
||||
#define IDR_WINDOWS_MENU 11000
|
||||
#define IDM_WINDOW_WINDOWS (IDR_WINDOWS_MENU + 1)
|
||||
#define IDM_WINDOW_SORT_FN_ASC (IDR_WINDOWS_MENU + 2)
|
||||
#define IDM_WINDOW_SORT_FN_DSC (IDR_WINDOWS_MENU + 3)
|
||||
#define IDM_WINDOW_SORT_FP_ASC (IDR_WINDOWS_MENU + 4)
|
||||
#define IDM_WINDOW_SORT_FP_DSC (IDR_WINDOWS_MENU + 5)
|
||||
#define IDM_WINDOW_SORT_FT_ASC (IDR_WINDOWS_MENU + 6)
|
||||
#define IDM_WINDOW_SORT_FT_DSC (IDR_WINDOWS_MENU + 7)
|
||||
#define IDM_WINDOW_SORT_FS_ASC (IDR_WINDOWS_MENU + 8)
|
||||
#define IDM_WINDOW_SORT_FS_DSC (IDR_WINDOWS_MENU + 9)
|
||||
#define IDM_WINDOW_MRU_FIRST (IDR_WINDOWS_MENU + 20)
|
||||
#define IDM_WINDOW_MRU_LIMIT (IDR_WINDOWS_MENU + 29)
|
||||
#define IDM_WINDOW_COPY_NAME (IDM_WINDOW_MRU_LIMIT + 1)
|
||||
#define IDM_WINDOW_COPY_PATH (IDM_WINDOW_MRU_LIMIT + 2)
|
||||
|
||||
|
@ -99,6 +99,7 @@ MenuPosition menuPos[] = {
|
||||
{ 7, 1, -1, "tools-sha256" },
|
||||
|
||||
{ 11, 0, -1, "window-sortby"},
|
||||
|
||||
{ -1, -1, -1, "" } // End of array
|
||||
};
|
||||
|
||||
@ -363,14 +364,6 @@ void NativeLangSpeaker::changeMenuLang(HMENU menuHandle, generic_string & plugin
|
||||
if (nullptr == subMenuIdStr or nullptr == name)
|
||||
continue;
|
||||
|
||||
if (!strcmp(subMenuIdStr, "window-sortby"))
|
||||
{
|
||||
generic_string sortTrans;
|
||||
const wchar_t *nameW = wmc.char2wchar(name, _nativeLangEncoding);
|
||||
sortTrans = nameW;
|
||||
::ModifyMenu(menuHandle, 0, MF_BYPOSITION, 0, sortTrans.c_str());
|
||||
}
|
||||
|
||||
MenuPosition& menuPos = getMenuPosition(subMenuIdStr);
|
||||
int x = menuPos._x;
|
||||
int y = menuPos._y;
|
||||
|
@ -585,3 +585,18 @@
|
||||
#define IDM_SYSTRAYPOPUP_NEW_AND_PASTE (IDM_SYSTRAYPOPUP + 3)
|
||||
#define IDM_SYSTRAYPOPUP_OPENFILE (IDM_SYSTRAYPOPUP + 4)
|
||||
#define IDM_SYSTRAYPOPUP_CLOSE (IDM_SYSTRAYPOPUP + 5)
|
||||
|
||||
#define IDR_WINDOWS_MENU 11000
|
||||
#define IDM_WINDOW_WINDOWS (IDR_WINDOWS_MENU + 1)
|
||||
#define IDM_WINDOW_SORT_FN_ASC (IDR_WINDOWS_MENU + 2)
|
||||
#define IDM_WINDOW_SORT_FN_DSC (IDR_WINDOWS_MENU + 3)
|
||||
#define IDM_WINDOW_SORT_FP_ASC (IDR_WINDOWS_MENU + 4)
|
||||
#define IDM_WINDOW_SORT_FP_DSC (IDR_WINDOWS_MENU + 5)
|
||||
#define IDM_WINDOW_SORT_FT_ASC (IDR_WINDOWS_MENU + 6)
|
||||
#define IDM_WINDOW_SORT_FT_DSC (IDR_WINDOWS_MENU + 7)
|
||||
#define IDM_WINDOW_SORT_FS_ASC (IDR_WINDOWS_MENU + 8)
|
||||
#define IDM_WINDOW_SORT_FS_DSC (IDR_WINDOWS_MENU + 9)
|
||||
#define IDM_WINDOW_MRU_FIRST (IDR_WINDOWS_MENU + 20)
|
||||
#define IDM_WINDOW_MRU_LIMIT (IDR_WINDOWS_MENU + 29)
|
||||
#define IDM_WINDOW_COPY_NAME (IDM_WINDOW_MRU_LIMIT + 1)
|
||||
#define IDM_WINDOW_COPY_PATH (IDM_WINDOW_MRU_LIMIT + 2)
|
||||
|
Loading…
x
Reference in New Issue
Block a user