mirror of
https://github.com/notepad-plus-plus/notepad-plus-plus.git
synced 2025-07-28 08:14:18 +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();
|
size_t nbPlugin = _pluginInfos.size();
|
||||||
|
|
||||||
if (!_hPluginsMenu)
|
if (!_hPluginsMenu)
|
||||||
{
|
{
|
||||||
_hPluginsMenu = ::CreateMenu();
|
_hPluginsMenu = ::GetSubMenu(hMenu, 10);
|
||||||
::InsertMenu(hMenu, MENUINDEX_PLUGINS, MF_BYPOSITION | MF_POPUP, (UINT_PTR)_hPluginsMenu, nom_menu);
|
|
||||||
|
|
||||||
int i = 1;
|
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, IDM_SETTING_PLUGINADM, TEXT("Plugins Admin..."));
|
||||||
::InsertMenu(_hPluginsMenu, i++, MF_BYPOSITION | MF_SEPARATOR, 0, TEXT(""));
|
::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)
|
for (size_t i = 0; i < nbPlugin; ++i)
|
||||||
|
@ -78,9 +78,6 @@ public:
|
|||||||
{
|
{
|
||||||
for (size_t i = 0, len = _pluginInfos.size(); i < len; ++i)
|
for (size_t i = 0, len = _pluginInfos.size(); i < len; ++i)
|
||||||
delete _pluginInfos[i];
|
delete _pluginInfos[i];
|
||||||
|
|
||||||
if (_hPluginsMenu)
|
|
||||||
DestroyMenu(_hPluginsMenu);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void init(const NppData & nppData)
|
void init(const NppData & nppData)
|
||||||
@ -97,7 +94,7 @@ public:
|
|||||||
void runPluginCommand(const TCHAR *pluginName, int commandID);
|
void runPluginCommand(const TCHAR *pluginName, int commandID);
|
||||||
|
|
||||||
void addInMenuFromPMIndex(int i);
|
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 getShortcutByCmdID(int cmdID, ShortcutKey *sk);
|
||||||
bool removeShortcutByCmdID(int cmdID);
|
bool removeShortcutByCmdID(int cmdID);
|
||||||
|
|
||||||
|
@ -529,7 +529,7 @@ LRESULT Notepad_plus::init(HWND hwnd)
|
|||||||
//Plugin menu
|
//Plugin menu
|
||||||
bool enablePluginAdmin = _pluginsAdminDlg.isValide();
|
bool enablePluginAdmin = _pluginsAdminDlg.isValide();
|
||||||
_pluginsAdminDlg.setPluginsManager(&_pluginsManager);
|
_pluginsAdminDlg.setPluginsManager(&_pluginsManager);
|
||||||
_pluginsManager.setMenu(_mainMenuHandle, NULL, enablePluginAdmin);
|
_pluginsManager.initMenu(_mainMenuHandle, enablePluginAdmin);
|
||||||
|
|
||||||
//Search menu
|
//Search menu
|
||||||
//disable "Search Results Window" under 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());
|
::ModifyMenu(_mainMenuHandle, MENUINDEX_PLUGINS, MF_BYPOSITION, 0, pluginsTrans.c_str());
|
||||||
}
|
}
|
||||||
//Windows menu
|
//Windows menu
|
||||||
_windowsMenu.init(_pPublicInterface->getHinst(), _mainMenuHandle, windowTrans.c_str());
|
_windowsMenu.init(_mainMenuHandle, windowTrans.c_str());
|
||||||
|
|
||||||
// Update context menu strings (translated)
|
// Update context menu strings (translated)
|
||||||
vector<MenuItemUnit> & tmp = nppParam.getContextMenuItems();
|
vector<MenuItemUnit> & tmp = nppParam.getContextMenuItems();
|
||||||
|
@ -1164,6 +1164,29 @@ BEGIN
|
|||||||
MENUITEM "&Run...", IDM_EXECUTE
|
MENUITEM "&Run...", IDM_EXECUTE
|
||||||
END
|
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 "&?"
|
POPUP "&?"
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "Command Line Arguments...", IDM_CMDLINEARGUMENTS
|
MENUITEM "Command Line Arguments...", IDM_CMDLINEARGUMENTS
|
||||||
|
@ -405,14 +405,14 @@ static const WinMenuKeyDefinition winKeyDefs[] =
|
|||||||
|
|
||||||
{ VK_F5, IDM_EXECUTE, false, false, false, nullptr },
|
{ 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_ASC, false, false, false, TEXT("Sort By Name A to Z") },
|
||||||
{ VK_NULL, IDM_WINDOW_SORT_FN_DSC, false, false, false, nullptr },
|
{ 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, nullptr },
|
{ 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, nullptr },
|
{ 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, nullptr },
|
{ 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, nullptr },
|
{ 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, nullptr },
|
{ 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, nullptr },
|
{ 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_CMDLINEARGUMENTS, false, false, false, nullptr },
|
||||||
{ VK_NULL, IDM_HOMESWEETHOME, 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);
|
return CallWindowProc(reinterpret_cast<WNDPROC>(originalListViewProc), hwnd, Message, wParam, lParam);
|
||||||
}
|
}
|
||||||
|
|
||||||
WindowsMenu::WindowsMenu()
|
|
||||||
{}
|
|
||||||
|
|
||||||
WindowsMenu::~WindowsMenu()
|
void WindowsMenu::init(HMENU hMainMenu, const TCHAR *translation)
|
||||||
{
|
{
|
||||||
if (_hMenu)
|
_hMenu = ::GetSubMenu(hMainMenu, 11);
|
||||||
DestroyMenu(_hMenu);
|
|
||||||
}
|
|
||||||
|
|
||||||
void WindowsMenu::init(HINSTANCE hInst, HMENU hMainMenu, const TCHAR *translation)
|
|
||||||
{
|
|
||||||
_hMenu = ::LoadMenu(hInst, MAKEINTRESOURCE(IDR_WINDOWS_MENU));
|
|
||||||
|
|
||||||
if (translation && translation[0])
|
if (translation && translation[0])
|
||||||
{
|
{
|
||||||
@ -1167,25 +1159,6 @@ void WindowsMenu::init(HINSTANCE hInst, HMENU hMainMenu, const TCHAR *translatio
|
|||||||
windowStr += TEXT("...");
|
windowStr += TEXT("...");
|
||||||
::ModifyMenu(_hMenu, IDM_WINDOW_WINDOWS, MF_BYCOMMAND, IDM_WINDOW_WINDOWS, windowStr.c_str());
|
::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)
|
void WindowsMenu::initPopupMenu(HMENU hMenu, DocTabView *pTab)
|
||||||
|
@ -109,9 +109,9 @@ private:
|
|||||||
class WindowsMenu
|
class WindowsMenu
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
WindowsMenu();
|
WindowsMenu() {};
|
||||||
~WindowsMenu();
|
~WindowsMenu() {};
|
||||||
void init(HINSTANCE hInst, HMENU hMainMenu, const TCHAR *translation);
|
void init(HMENU hMainMenu, const TCHAR *translation);
|
||||||
void initPopupMenu(HMENU hMenu, DocTabView *pTab);
|
void initPopupMenu(HMENU hMenu, DocTabView *pTab);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -30,27 +30,3 @@ BEGIN
|
|||||||
PUSHBUTTON "Sort &tabs",IDC_WINDOWS_SORT,219,60,60,14
|
PUSHBUTTON "Sort &tabs",IDC_WINDOWS_SORT,219,60,60,14
|
||||||
PUSHBUTTON "&OK",IDCANCEL,219,169,60,14
|
PUSHBUTTON "&OK",IDCANCEL,219,169,60,14
|
||||||
END
|
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_SAVE (IDD_WINDOWS + 2)
|
||||||
#define IDC_WINDOWS_CLOSE (IDD_WINDOWS + 3)
|
#define IDC_WINDOWS_CLOSE (IDD_WINDOWS + 3)
|
||||||
#define IDC_WINDOWS_SORT (IDD_WINDOWS + 4)
|
#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" },
|
{ 7, 1, -1, "tools-sha256" },
|
||||||
|
|
||||||
{ 11, 0, -1, "window-sortby"},
|
{ 11, 0, -1, "window-sortby"},
|
||||||
|
|
||||||
{ -1, -1, -1, "" } // End of array
|
{ -1, -1, -1, "" } // End of array
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -363,14 +364,6 @@ void NativeLangSpeaker::changeMenuLang(HMENU menuHandle, generic_string & plugin
|
|||||||
if (nullptr == subMenuIdStr or nullptr == name)
|
if (nullptr == subMenuIdStr or nullptr == name)
|
||||||
continue;
|
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);
|
MenuPosition& menuPos = getMenuPosition(subMenuIdStr);
|
||||||
int x = menuPos._x;
|
int x = menuPos._x;
|
||||||
int y = menuPos._y;
|
int y = menuPos._y;
|
||||||
|
@ -585,3 +585,18 @@
|
|||||||
#define IDM_SYSTRAYPOPUP_NEW_AND_PASTE (IDM_SYSTRAYPOPUP + 3)
|
#define IDM_SYSTRAYPOPUP_NEW_AND_PASTE (IDM_SYSTRAYPOPUP + 3)
|
||||||
#define IDM_SYSTRAYPOPUP_OPENFILE (IDM_SYSTRAYPOPUP + 4)
|
#define IDM_SYSTRAYPOPUP_OPENFILE (IDM_SYSTRAYPOPUP + 4)
|
||||||
#define IDM_SYSTRAYPOPUP_CLOSE (IDM_SYSTRAYPOPUP + 5)
|
#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