mirror of
https://github.com/notepad-plus-plus/notepad-plus-plus.git
synced 2025-07-24 06:14:47 +02:00
Improve some ambiguous commands naming in Shortcut Mapper
Separate command shortcut names and menu names. Fix #8689, close #8690
This commit is contained in:
parent
03eebf8496
commit
ddd2e5fd23
@ -512,6 +512,66 @@
|
|||||||
<ScintillaCommandsTab name="Scintilla commands"/>
|
<ScintillaCommandsTab name="Scintilla commands"/>
|
||||||
<ConflictInfoOk name="No shortcut conflicts for this item."/>
|
<ConflictInfoOk name="No shortcut conflicts for this item."/>
|
||||||
<ConflictInfoEditing name="No conflicts . . ."/>
|
<ConflictInfoEditing name="No conflicts . . ."/>
|
||||||
|
<MainCommandNames>
|
||||||
|
<Item id="41019" name="Open containing folder in Explorer"/>
|
||||||
|
<Item id="41020" name="Open containing folder in Command Prompt"/>
|
||||||
|
<Item id="41021" name="Restore Recent Closed File"/>
|
||||||
|
<Item id="45001" name="EOL Conversion to Windows (CR LF)"/>
|
||||||
|
<Item id="45002" name="EOL Conversion to Unix (LF)"/>
|
||||||
|
<Item id="45003" name="EOL Conversion to Macintosh (CR)"/>
|
||||||
|
<Item id="43022" name="Mark search results using 1st style"/>
|
||||||
|
<Item id="43024" name="Mark search results using 2nd style"/>
|
||||||
|
<Item id="43026" name="Mark search results using 3rd style"/>
|
||||||
|
<Item id="43028" name="Mark search results using 4th style"/>
|
||||||
|
<Item id="43030" name="Mark search results using 5th style"/>
|
||||||
|
<Item id="43023" name="Clear marks using 1st style"/>
|
||||||
|
<Item id="43025" name="Clear marks using 2nd style"/>
|
||||||
|
<Item id="43027" name="Clear marks using 3rd style"/>
|
||||||
|
<Item id="43029" name="Clear marks using 4th style"/>
|
||||||
|
<Item id="43031" name="Clear marks using 5th style"/>
|
||||||
|
<Item id="43032" name="Clear marks using any style"/>
|
||||||
|
<Item id="43033" name="Previous mark using 1st style"/>
|
||||||
|
<Item id="43034" name="Previous mark using 2nd style"/>
|
||||||
|
<Item id="43035" name="Previous mark using 3rd style"/>
|
||||||
|
<Item id="43036" name="Previous mark using 4th style"/>
|
||||||
|
<Item id="43037" name="Previous mark using 5th style"/>
|
||||||
|
<Item id="43038" name="Previous mark created with Mark..."/>
|
||||||
|
<Item id="43039" name="Next mark using 1st style"/>
|
||||||
|
<Item id="43040" name="Next mark using 2nd style"/>
|
||||||
|
<Item id="43041" name="Next mark using 3rd style"/>
|
||||||
|
<Item id="43042" name="Next mark using 4th style"/>
|
||||||
|
<Item id="43043" name="Next mark using 5th style"/>
|
||||||
|
<Item id="43044" name="Next mark created with Mark..."/>
|
||||||
|
<Item id="44100" name="View current file in Firefox"/>
|
||||||
|
<Item id="44101" name="View current file in Chrome"/>
|
||||||
|
<Item id="44103" name="View current file in IE"/>
|
||||||
|
<Item id="44102" name="View current file in Edge"/>
|
||||||
|
<Item id="50003" name="Switch to previous document"/>
|
||||||
|
<Item id="50004" name="Switch to next document"/>
|
||||||
|
<Item id="44051" name="Collapse Level 1"/>
|
||||||
|
<Item id="44052" name="Collapse Level 2"/>
|
||||||
|
<Item id="44053" name="Collapse Level 3"/>
|
||||||
|
<Item id="44054" name="Collapse Level 4"/>
|
||||||
|
<Item id="44055" name="Collapse Level 5"/>
|
||||||
|
<Item id="44056" name="Collapse Level 6"/>
|
||||||
|
<Item id="44057" name="Collapse Level 7"/>
|
||||||
|
<Item id="44058" name="Collapse Level 8"/>
|
||||||
|
<Item id="44061" name="Uncollapse Level 1"/>
|
||||||
|
<Item id="44062" name="Uncollapse Level 2"/>
|
||||||
|
<Item id="44063" name="Uncollapse Level 3"/>
|
||||||
|
<Item id="44064" name="Uncollapse Level 4"/>
|
||||||
|
<Item id="44065" name="Uncollapse Level 5"/>
|
||||||
|
<Item id="44066" name="Uncollapse Level 6"/>
|
||||||
|
<Item id="44067" name="Uncollapse Level 7"/>
|
||||||
|
<Item id="44068" name="Uncollapse Level 8"/>
|
||||||
|
<Item id="44081" name="Toggle Project Panel 1"/>
|
||||||
|
<Item id="44082" name="Toggle Project Panel 2"/>
|
||||||
|
<Item id="44083" name="Toggle Project Panel 3"/>
|
||||||
|
<Item id="44085" name="Toggle Folder as Workspace"/>
|
||||||
|
<Item id="44080" name="Toggle Document Map"/>
|
||||||
|
<Item id="44084" name="Toggle Function List"/>
|
||||||
|
<Item id="50005" name="Toggle macro recording"/>
|
||||||
|
</MainCommandNames>
|
||||||
</ShortcutMapper>
|
</ShortcutMapper>
|
||||||
<ShortcutMapperSubDialg title="Shortcut">
|
<ShortcutMapperSubDialg title="Shortcut">
|
||||||
<Item id="1" name="OK"/>
|
<Item id="1" name="OK"/>
|
||||||
@ -1292,3 +1352,4 @@ Find in all files except exe, obj && log:
|
|||||||
</MiscStrings>
|
</MiscStrings>
|
||||||
</Native-Langue>
|
</Native-Langue>
|
||||||
</NotepadPlus>
|
</NotepadPlus>
|
||||||
|
|
||||||
|
@ -120,6 +120,7 @@
|
|||||||
<Item id="42064" name="Sort Lines As Decimals (Comma) Descending"/>
|
<Item id="42064" name="Sort Lines As Decimals (Comma) Descending"/>
|
||||||
<Item id="42065" name="Sort Lines As Decimals (Dot) Ascending"/>
|
<Item id="42065" name="Sort Lines As Decimals (Dot) Ascending"/>
|
||||||
<Item id="42066" name="Sort Lines As Decimals (Dot) Descending"/>
|
<Item id="42066" name="Sort Lines As Decimals (Dot) Descending"/>
|
||||||
|
<Item id="42078" name="Sort Lines Randomly"/>
|
||||||
<Item id="42016" name="&UPPERCASE"/>
|
<Item id="42016" name="&UPPERCASE"/>
|
||||||
<Item id="42017" name="&lowercase"/>
|
<Item id="42017" name="&lowercase"/>
|
||||||
<Item id="42067" name="&Proper Case"/>
|
<Item id="42067" name="&Proper Case"/>
|
||||||
@ -511,6 +512,66 @@
|
|||||||
<ScintillaCommandsTab name="Scintilla commands"/>
|
<ScintillaCommandsTab name="Scintilla commands"/>
|
||||||
<ConflictInfoOk name="No shortcut conflicts for this item."/>
|
<ConflictInfoOk name="No shortcut conflicts for this item."/>
|
||||||
<ConflictInfoEditing name="No conflicts . . ."/>
|
<ConflictInfoEditing name="No conflicts . . ."/>
|
||||||
|
<MainCommandNames>
|
||||||
|
<Item id="41019" name="Open containing folder in Explorer"/>
|
||||||
|
<Item id="41020" name="Open containing folder in Command Prompt"/>
|
||||||
|
<Item id="41021" name="Restore Recent Closed File"/>
|
||||||
|
<Item id="45001" name="EOL Conversion to Windows (CR LF)"/>
|
||||||
|
<Item id="45002" name="EOL Conversion to Unix (LF)"/>
|
||||||
|
<Item id="45003" name="EOL Conversion to Macintosh (CR)"/>
|
||||||
|
<Item id="43022" name="Mark search results using 1st style"/>
|
||||||
|
<Item id="43024" name="Mark search results using 2nd style"/>
|
||||||
|
<Item id="43026" name="Mark search results using 3rd style"/>
|
||||||
|
<Item id="43028" name="Mark search results using 4th style"/>
|
||||||
|
<Item id="43030" name="Mark search results using 5th style"/>
|
||||||
|
<Item id="43023" name="Clear marks using 1st style"/>
|
||||||
|
<Item id="43025" name="Clear marks using 2nd style"/>
|
||||||
|
<Item id="43027" name="Clear marks using 3rd style"/>
|
||||||
|
<Item id="43029" name="Clear marks using 4th style"/>
|
||||||
|
<Item id="43031" name="Clear marks using 5th style"/>
|
||||||
|
<Item id="43032" name="Clear marks using any style"/>
|
||||||
|
<Item id="43033" name="Previous mark using 1st style"/>
|
||||||
|
<Item id="43034" name="Previous mark using 2nd style"/>
|
||||||
|
<Item id="43035" name="Previous mark using 3rd style"/>
|
||||||
|
<Item id="43036" name="Previous mark using 4th style"/>
|
||||||
|
<Item id="43037" name="Previous mark using 5th style"/>
|
||||||
|
<Item id="43038" name="Previous mark created with Mark..."/>
|
||||||
|
<Item id="43039" name="Next mark using 1st style"/>
|
||||||
|
<Item id="43040" name="Next mark using 2nd style"/>
|
||||||
|
<Item id="43041" name="Next mark using 3rd style"/>
|
||||||
|
<Item id="43042" name="Next mark using 4th style"/>
|
||||||
|
<Item id="43043" name="Next mark using 5th style"/>
|
||||||
|
<Item id="43044" name="Next mark created with Mark..."/>
|
||||||
|
<Item id="44100" name="View current file in Firefox"/>
|
||||||
|
<Item id="44101" name="View current file in Chrome"/>
|
||||||
|
<Item id="44103" name="View current file in IE"/>
|
||||||
|
<Item id="44102" name="View current file in Edge"/>
|
||||||
|
<Item id="50003" name="Switch to previous document"/>
|
||||||
|
<Item id="50004" name="Switch to next document"/>
|
||||||
|
<Item id="44051" name="Collapse Level 1"/>
|
||||||
|
<Item id="44052" name="Collapse Level 2"/>
|
||||||
|
<Item id="44053" name="Collapse Level 3"/>
|
||||||
|
<Item id="44054" name="Collapse Level 4"/>
|
||||||
|
<Item id="44055" name="Collapse Level 5"/>
|
||||||
|
<Item id="44056" name="Collapse Level 6"/>
|
||||||
|
<Item id="44057" name="Collapse Level 7"/>
|
||||||
|
<Item id="44058" name="Collapse Level 8"/>
|
||||||
|
<Item id="44061" name="Uncollapse Level 1"/>
|
||||||
|
<Item id="44062" name="Uncollapse Level 2"/>
|
||||||
|
<Item id="44063" name="Uncollapse Level 3"/>
|
||||||
|
<Item id="44064" name="Uncollapse Level 4"/>
|
||||||
|
<Item id="44065" name="Uncollapse Level 5"/>
|
||||||
|
<Item id="44066" name="Uncollapse Level 6"/>
|
||||||
|
<Item id="44067" name="Uncollapse Level 7"/>
|
||||||
|
<Item id="44068" name="Uncollapse Level 8"/>
|
||||||
|
<Item id="44081" name="Toggle Project Panel 1"/>
|
||||||
|
<Item id="44082" name="Toggle Project Panel 2"/>
|
||||||
|
<Item id="44083" name="Toggle Project Panel 3"/>
|
||||||
|
<Item id="44085" name="Toggle Folder as Workspace"/>
|
||||||
|
<Item id="44080" name="Toggle Document Map"/>
|
||||||
|
<Item id="44084" name="Toggle Function List"/>
|
||||||
|
<Item id="50005" name="Toggle macro recording"/>
|
||||||
|
</MainCommandNames>
|
||||||
</ShortcutMapper>
|
</ShortcutMapper>
|
||||||
<ShortcutMapperSubDialg title="Shortcut">
|
<ShortcutMapperSubDialg title="Shortcut">
|
||||||
<Item id="1" name="OK"/>
|
<Item id="1" name="OK"/>
|
||||||
@ -756,6 +817,7 @@ You can define several column markers by using white space to separate the diffe
|
|||||||
<Item id="6231" name="Border Width"/>
|
<Item id="6231" name="Border Width"/>
|
||||||
<Item id="6235" name="No edge"/>
|
<Item id="6235" name="No edge"/>
|
||||||
<Item id="6236" name="Enable scrolling beyond last line"/>
|
<Item id="6236" name="Enable scrolling beyond last line"/>
|
||||||
|
<Item id="6239" name="Keep selection when right-click outside of selection"/>
|
||||||
</Scintillas>
|
</Scintillas>
|
||||||
|
|
||||||
<NewDoc title="New Document">
|
<NewDoc title="New Document">
|
||||||
@ -842,6 +904,11 @@ You can define several column markers by using white space to separate the diffe
|
|||||||
<Item id="6728" name="Header and Footer"/>
|
<Item id="6728" name="Header and Footer"/>
|
||||||
</Print>
|
</Print>
|
||||||
|
|
||||||
|
<Searching title="Searching">
|
||||||
|
<Item id="6901" name="Don't fill find field in Find dialog with selected word"/>
|
||||||
|
<Item id="6902" name="Use monospaced font in Find dialog (Need to restart Notepad++)"/>
|
||||||
|
</Searching>
|
||||||
|
|
||||||
<RecentFilesHistory title="Recent Files History">
|
<RecentFilesHistory title="Recent Files History">
|
||||||
<Item id="6304" name="Recent Files History"/>
|
<Item id="6304" name="Recent Files History"/>
|
||||||
<Item id="6306" name="Max. number of entries :"/>
|
<Item id="6306" name="Max. number of entries :"/>
|
||||||
@ -943,14 +1010,13 @@ You can define several column markers by using white space to separate the diffe
|
|||||||
<Item id="6324" name="Document Switcher (Ctrl+TAB)"/>
|
<Item id="6324" name="Document Switcher (Ctrl+TAB)"/>
|
||||||
<Item id="6331" name="Show only filename in title bar"/>
|
<Item id="6331" name="Show only filename in title bar"/>
|
||||||
<Item id="6334" name="Autodetect character encoding"/>
|
<Item id="6334" name="Autodetect character encoding"/>
|
||||||
<Item id="6314" name="Use monospaced font in Find dialog (Need to restart Notepad++)"/>
|
<Item id="6349" name="Use DirectWrite (May improve rendering special characters, need to restart Notepad++)"/>
|
||||||
<Item id="6337" name="Workspace file ext.:"/>
|
<Item id="6337" name="Workspace file ext.:"/>
|
||||||
<Item id="6114" name="Enable"/>
|
<Item id="6114" name="Enable"/>
|
||||||
<Item id="6117" name="Enable MRU behaviour"/>
|
<Item id="6117" name="Enable MRU behaviour"/>
|
||||||
<Item id="6344" name="Document Peeker"/>
|
<Item id="6344" name="Document Peeker"/>
|
||||||
<Item id="6345" name="Peek on tab"/>
|
<Item id="6345" name="Peek on tab"/>
|
||||||
<Item id="6346" name="Peek on document map"/>
|
<Item id="6346" name="Peek on document map"/>
|
||||||
<Item id="6348" name="Don't fill find field in Find dialog with selected word"/>
|
|
||||||
</MISC>
|
</MISC>
|
||||||
</Preference>
|
</Preference>
|
||||||
<MultiMacro title="Run a Macro Multiple Times">
|
<MultiMacro title="Run a Macro Multiple Times">
|
||||||
@ -969,17 +1035,17 @@ You can define several column markers by using white space to separate the diffe
|
|||||||
<Item id="7004" name="Sort &tabs"/>
|
<Item id="7004" name="Sort &tabs"/>
|
||||||
</Window>
|
</Window>
|
||||||
<ColumnEditor title="Column Editor">
|
<ColumnEditor title="Column Editor">
|
||||||
<Item id="2023" name="Text to Insert"/>
|
<Item id="2023" name="&Text to Insert"/>
|
||||||
<Item id="2033" name="Number to Insert"/>
|
<Item id="2033" name="&Number to Insert"/>
|
||||||
<Item id="2030" name="Initial number :"/>
|
<Item id="2030" name="&Initial number :"/>
|
||||||
<Item id="2031" name="Increase by :"/>
|
<Item id="2031" name="Increase b&y :"/>
|
||||||
<Item id="2035" name="Leading zeros"/>
|
<Item id="2035" name="Leading &zeros"/>
|
||||||
<Item id="2036" name="Repeat :"/>
|
<Item id="2036" name="&Repeat :"/>
|
||||||
<Item id="2032" name="Format"/>
|
<Item id="2032" name="&Format"/>
|
||||||
<Item id="2024" name="Dec"/>
|
<Item id="2024" name="&Dec"/>
|
||||||
<Item id="2025" name="Oct"/>
|
<Item id="2025" name="&Oct"/>
|
||||||
<Item id="2026" name="Hex"/>
|
<Item id="2026" name="&Hex"/>
|
||||||
<Item id="2027" name="Bin"/>
|
<Item id="2027" name="&Bin"/>
|
||||||
<Item id="1" name="OK"/>
|
<Item id="1" name="OK"/>
|
||||||
<Item id="2" name="Cancel"/>
|
<Item id="2" name="Cancel"/>
|
||||||
</ColumnEditor>
|
</ColumnEditor>
|
||||||
@ -1234,6 +1300,10 @@ Find in all files except exe, obj && log:
|
|||||||
<find-status-replace-not-found value="Replace: no occurrence was found"/>
|
<find-status-replace-not-found value="Replace: no occurrence was found"/>
|
||||||
<find-status-replace-readonly value="Replace: Cannot replace text. The current document is read only"/>
|
<find-status-replace-readonly value="Replace: Cannot replace text. The current document is read only"/>
|
||||||
<find-status-cannot-find value="Find: Can't find the text "$STR_REPLACE$""/>
|
<find-status-cannot-find value="Find: Can't find the text "$STR_REPLACE$""/>
|
||||||
|
<find-status-scope-selection value="in selected text"/>
|
||||||
|
<find-status-scope-all value="in entire file"/>
|
||||||
|
<find-status-scope-backward value="from start-of-file to caret"/>
|
||||||
|
<find-status-scope-forward value="from caret to end-of-file"/>
|
||||||
<finder-find-in-finder value="Find in this found results..."/>
|
<finder-find-in-finder value="Find in this found results..."/>
|
||||||
<finder-close-this value="Close this finder"/>
|
<finder-close-this value="Close this finder"/>
|
||||||
<finder-collapse-all value="Collapse all"/>
|
<finder-collapse-all value="Collapse all"/>
|
||||||
@ -1268,11 +1338,15 @@ Find in all files except exe, obj && log:
|
|||||||
<replace-in-files-confirm-title value="Are you sure?"/>
|
<replace-in-files-confirm-title value="Are you sure?"/>
|
||||||
<replace-in-files-confirm-directory value="Are you sure you want to replace all occurrences in :"/>
|
<replace-in-files-confirm-directory value="Are you sure you want to replace all occurrences in :"/>
|
||||||
<replace-in-files-confirm-filetype value="For file type :"/>
|
<replace-in-files-confirm-filetype value="For file type :"/>
|
||||||
|
<replace-in-open-docs-confirm-title value="Are you sure?"/>
|
||||||
|
<replace-in-open-docs-confirm-message value="Are you sure you want to replace all occurrences in all open documents?"/>
|
||||||
<find-result-caption value="Find result"/>
|
<find-result-caption value="Find result"/>
|
||||||
<find-result-title value="Search"/>
|
<find-result-title value="Search"/>
|
||||||
<find-result-title-info value="($INT_REPLACE1$ hits in $INT_REPLACE2$ files of $INT_REPLACE3$ searched)"/>
|
<find-result-title-info value="($INT_REPLACE1$ hits in $INT_REPLACE2$ files of $INT_REPLACE3$ searched)"/>
|
||||||
|
<find-result-title-info-selections value="($INT_REPLACE1$ hits in $INT_REPLACE2$ selections of $INT_REPLACE3$ searched)"/>
|
||||||
<find-result-title-info-extra value=" - Line Filter Mode: only display the filtered results"/>
|
<find-result-title-info-extra value=" - Line Filter Mode: only display the filtered results"/>
|
||||||
<find-result-hits value="($INT_REPLACE$ hits)"/>
|
<find-result-hits value="($INT_REPLACE$ hits)"/>
|
||||||
|
<find-regex-zero-length-match value="zero length match" />
|
||||||
</MiscStrings>
|
</MiscStrings>
|
||||||
</Native-Langue>
|
</Native-Langue>
|
||||||
</NotepadPlus>
|
</NotepadPlus>
|
||||||
|
@ -551,28 +551,8 @@ LRESULT Notepad_plus::init(HWND hwnd)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//Input all the menu item names into shortcut list
|
updateCommandShortcuts();
|
||||||
//This will automatically do all translations, since menu translation has been done already
|
|
||||||
vector<CommandShortcut> & shortcuts = nppParam.getUserShortcuts();
|
|
||||||
len = shortcuts.size();
|
|
||||||
|
|
||||||
for (size_t i = 0; i < len; ++i)
|
|
||||||
{
|
|
||||||
CommandShortcut & csc = shortcuts[i];
|
|
||||||
if (!csc.getName()[0])
|
|
||||||
{ //no predefined name, get name from menu and use that
|
|
||||||
::GetMenuString(_mainMenuHandle, csc.getID(), menuName, 64, MF_BYCOMMAND);
|
|
||||||
csc.setName(purgeMenuItemString(menuName, true).c_str());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// The menu name is already present (e.g. "Restore recent close file")
|
|
||||||
// Now get the localized name if possible
|
|
||||||
generic_string localizedMenuName = _nativeLangSpeaker.getNativeLangMenuString(csc.getID());
|
|
||||||
if(!localizedMenuName.empty())
|
|
||||||
csc.setName(purgeMenuItemString(localizedMenuName.c_str(), true).c_str());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//Translate non-menu shortcuts
|
//Translate non-menu shortcuts
|
||||||
_nativeLangSpeaker.changeShortcutLang();
|
_nativeLangSpeaker.changeShortcutLang();
|
||||||
|
|
||||||
@ -5779,25 +5759,8 @@ bool Notepad_plus::reloadLang()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
vector<CommandShortcut> & shortcuts = nppParam.getUserShortcuts();
|
updateCommandShortcuts();
|
||||||
len = shortcuts.size();
|
|
||||||
|
|
||||||
for (size_t i = 0; i < len; ++i)
|
|
||||||
{
|
|
||||||
CommandShortcut & csc = shortcuts[i];
|
|
||||||
// If menu item is not present (e.g. "Restore recent close file" might not present initially)
|
|
||||||
// then fill the localized string directly
|
|
||||||
if (::GetMenuString(_mainMenuHandle, csc.getID(), menuName, 64, MF_BYCOMMAND))
|
|
||||||
{
|
|
||||||
csc.setName(purgeMenuItemString(menuName, true).c_str());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
generic_string localizedMenuName = _nativeLangSpeaker.getNativeLangMenuString(csc.getID());
|
|
||||||
if (!localizedMenuName.empty())
|
|
||||||
csc.setName(purgeMenuItemString(localizedMenuName.c_str(), true).c_str());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
_accelerator.updateFullMenu();
|
_accelerator.updateFullMenu();
|
||||||
|
|
||||||
_scintaccelerator.updateKeys();
|
_scintaccelerator.updateKeys();
|
||||||
@ -7122,3 +7085,58 @@ void Notepad_plus::monitoringStartOrStopAndUpdateUI(Buffer* pBuf, bool isStartin
|
|||||||
pBuf->setUserReadOnly(isStarting);
|
pBuf->setUserReadOnly(isStarting);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Fill names into the shortcut list.
|
||||||
|
// Each command shortcut has two names:
|
||||||
|
// - The menu name, to be displayed in the menu
|
||||||
|
// - The shortcut name, to be displayed in the shortcut list
|
||||||
|
//
|
||||||
|
// The names are filled in with the following priorities:
|
||||||
|
// * Menu name
|
||||||
|
// 1. From xml Menu/Main/Commands section
|
||||||
|
// 2. From menu resource in Notepad_plus.rc
|
||||||
|
// 3. From winKeyDefs[] table in Parameter.cpp
|
||||||
|
// We don't use xml ShortCutMapper/MainCommandNames here
|
||||||
|
//
|
||||||
|
// * Shortcut name
|
||||||
|
// 1. From xml ShortCutMapper/MainCommandNames section
|
||||||
|
// 2. From xml file Menu/Main/Commands section
|
||||||
|
// 3. From the winKeyDefs[] table in Parameter.cpp
|
||||||
|
// 4. From the menu resource in Notepad_plus.rc
|
||||||
|
|
||||||
|
void Notepad_plus::updateCommandShortcuts()
|
||||||
|
{
|
||||||
|
NppParameters& nppParam = NppParameters::getInstance();
|
||||||
|
vector<CommandShortcut> & shortcuts = nppParam.getUserShortcuts();
|
||||||
|
size_t len = shortcuts.size();
|
||||||
|
|
||||||
|
for (size_t i = 0; i < len; ++i)
|
||||||
|
{
|
||||||
|
CommandShortcut & csc = shortcuts[i];
|
||||||
|
unsigned long id = csc.getID();
|
||||||
|
generic_string localizedMenuName = _nativeLangSpeaker.getNativeLangMenuString(id);
|
||||||
|
generic_string menuName = localizedMenuName;
|
||||||
|
generic_string shortcutName = _nativeLangSpeaker.getShortcutNameString(id);
|
||||||
|
|
||||||
|
if (menuName.length() == 0)
|
||||||
|
{
|
||||||
|
TCHAR szMenuName[64];
|
||||||
|
if (::GetMenuString(_mainMenuHandle, csc.getID(), szMenuName, _countof(szMenuName), MF_BYCOMMAND))
|
||||||
|
menuName = purgeMenuItemString(szMenuName, true);
|
||||||
|
else
|
||||||
|
menuName = csc.getShortcutName();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (shortcutName.length() == 0)
|
||||||
|
{
|
||||||
|
if (localizedMenuName.length() > 0)
|
||||||
|
shortcutName = localizedMenuName;
|
||||||
|
else if (csc.getShortcutName()[0])
|
||||||
|
shortcutName = csc.getShortcutName();
|
||||||
|
else
|
||||||
|
shortcutName = menuName;
|
||||||
|
}
|
||||||
|
|
||||||
|
csc.setName(menuName.c_str(), shortcutName.c_str());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -635,6 +635,7 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
void monitoringStartOrStopAndUpdateUI(Buffer* pBuf, bool isStarting);
|
void monitoringStartOrStopAndUpdateUI(Buffer* pBuf, bool isStarting);
|
||||||
|
void updateCommandShortcuts();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -81,8 +81,8 @@ static const WinMenuKeyDefinition winKeyDefs[] =
|
|||||||
//
|
//
|
||||||
{ VK_N, IDM_FILE_NEW, true, false, false, nullptr },
|
{ VK_N, IDM_FILE_NEW, true, false, false, nullptr },
|
||||||
{ VK_O, IDM_FILE_OPEN, true, false, false, nullptr },
|
{ VK_O, IDM_FILE_OPEN, true, false, false, nullptr },
|
||||||
{ VK_NULL, IDM_FILE_OPEN_FOLDER, false, false, false, nullptr },
|
{ VK_NULL, IDM_FILE_OPEN_FOLDER, false, false, false, TEXT("Open containing folder in Explorer") },
|
||||||
{ VK_NULL, IDM_FILE_OPEN_CMD, false, false, false, nullptr },
|
{ VK_NULL, IDM_FILE_OPEN_CMD, false, false, false, TEXT("Open containing folder in Command Prompt") },
|
||||||
{ VK_NULL, IDM_FILE_OPEN_DEFAULT_VIEWER, false, false, false, nullptr },
|
{ VK_NULL, IDM_FILE_OPEN_DEFAULT_VIEWER, false, false, false, nullptr },
|
||||||
{ VK_NULL, IDM_FILE_OPENFOLDERASWORSPACE, false, false, false, nullptr },
|
{ VK_NULL, IDM_FILE_OPENFOLDERASWORSPACE, false, false, false, nullptr },
|
||||||
{ VK_R, IDM_FILE_RELOAD, true, false, false, nullptr },
|
{ VK_R, IDM_FILE_RELOAD, true, false, false, nullptr },
|
||||||
@ -154,9 +154,9 @@ static const WinMenuKeyDefinition winKeyDefs[] =
|
|||||||
{ VK_SPACE, IDM_EDIT_AUTOCOMPLETE_PATH, true, true, false, nullptr },
|
{ VK_SPACE, IDM_EDIT_AUTOCOMPLETE_PATH, true, true, false, nullptr },
|
||||||
{ VK_RETURN, IDM_EDIT_AUTOCOMPLETE_CURRENTFILE, true, false, false, nullptr },
|
{ VK_RETURN, IDM_EDIT_AUTOCOMPLETE_CURRENTFILE, true, false, false, nullptr },
|
||||||
{ VK_SPACE, IDM_EDIT_FUNCCALLTIP, true, false, true, nullptr },
|
{ VK_SPACE, IDM_EDIT_FUNCCALLTIP, true, false, true, nullptr },
|
||||||
{ VK_NULL, IDM_FORMAT_TODOS, false, false, false, nullptr },
|
{ VK_NULL, IDM_FORMAT_TODOS, false, false, false, TEXT("EOL Conversion to Windows (CR LF)") },
|
||||||
{ VK_NULL, IDM_FORMAT_TOUNIX, false, false, false, nullptr },
|
{ VK_NULL, IDM_FORMAT_TOUNIX, false, false, false, TEXT("EOL Conversion to Unix (LF)") },
|
||||||
{ VK_NULL, IDM_FORMAT_TOMAC, false, false, false, nullptr },
|
{ VK_NULL, IDM_FORMAT_TOMAC, false, false, false, TEXT("EOL Conversion to Macintosh (CR)") },
|
||||||
{ VK_NULL, IDM_EDIT_TRIMTRAILING, false, false, false, nullptr },
|
{ VK_NULL, IDM_EDIT_TRIMTRAILING, false, false, false, nullptr },
|
||||||
{ VK_NULL, IDM_EDIT_TRIMLINEHEAD, false, false, false, nullptr },
|
{ VK_NULL, IDM_EDIT_TRIMLINEHEAD, false, false, false, nullptr },
|
||||||
{ VK_NULL, IDM_EDIT_TRIM_BOTH, false, false, false, nullptr },
|
{ VK_NULL, IDM_EDIT_TRIM_BOTH, false, false, false, nullptr },
|
||||||
@ -197,29 +197,29 @@ static const WinMenuKeyDefinition winKeyDefs[] =
|
|||||||
{ VK_B, IDM_SEARCH_GOTOMATCHINGBRACE, true, false, false, nullptr },
|
{ VK_B, IDM_SEARCH_GOTOMATCHINGBRACE, true, false, false, nullptr },
|
||||||
{ VK_B, IDM_SEARCH_SELECTMATCHINGBRACES, true, true, false, nullptr },
|
{ VK_B, IDM_SEARCH_SELECTMATCHINGBRACES, true, true, false, nullptr },
|
||||||
{ VK_M, IDM_SEARCH_MARK, true, false, false, nullptr },
|
{ VK_M, IDM_SEARCH_MARK, true, false, false, nullptr },
|
||||||
{ VK_NULL, IDM_SEARCH_MARKALLEXT1, false, false, false, nullptr },
|
{ VK_NULL, IDM_SEARCH_MARKALLEXT1, false, false, false, TEXT("Mark search results using 1st style") },
|
||||||
{ VK_NULL, IDM_SEARCH_MARKALLEXT2, false, false, false, nullptr },
|
{ VK_NULL, IDM_SEARCH_MARKALLEXT2, false, false, false, TEXT("Mark search results using 2nd style") },
|
||||||
{ VK_NULL, IDM_SEARCH_MARKALLEXT3, false, false, false, nullptr },
|
{ VK_NULL, IDM_SEARCH_MARKALLEXT3, false, false, false, TEXT("Mark search results using 3rd style") },
|
||||||
{ VK_NULL, IDM_SEARCH_MARKALLEXT4, false, false, false, nullptr },
|
{ VK_NULL, IDM_SEARCH_MARKALLEXT4, false, false, false, TEXT("Mark search results using 4th style") },
|
||||||
{ VK_NULL, IDM_SEARCH_MARKALLEXT5, false, false, false, nullptr },
|
{ VK_NULL, IDM_SEARCH_MARKALLEXT5, false, false, false, TEXT("Mark search results using 5th style") },
|
||||||
{ VK_NULL, IDM_SEARCH_UNMARKALLEXT1, false, false, false, nullptr },
|
{ VK_NULL, IDM_SEARCH_UNMARKALLEXT1, false, false, false, TEXT("Clear marks using 1st style") },
|
||||||
{ VK_NULL, IDM_SEARCH_UNMARKALLEXT2, false, false, false, nullptr },
|
{ VK_NULL, IDM_SEARCH_UNMARKALLEXT2, false, false, false, TEXT("Clear marks using 2nd style") },
|
||||||
{ VK_NULL, IDM_SEARCH_UNMARKALLEXT3, false, false, false, nullptr },
|
{ VK_NULL, IDM_SEARCH_UNMARKALLEXT3, false, false, false, TEXT("Clear marks using 3rd style") },
|
||||||
{ VK_NULL, IDM_SEARCH_UNMARKALLEXT4, false, false, false, nullptr },
|
{ VK_NULL, IDM_SEARCH_UNMARKALLEXT4, false, false, false, TEXT("Clear marks using 4th style") },
|
||||||
{ VK_NULL, IDM_SEARCH_UNMARKALLEXT5, false, false, false, nullptr },
|
{ VK_NULL, IDM_SEARCH_UNMARKALLEXT5, false, false, false, TEXT("Clear marks using 5th style") },
|
||||||
{ VK_NULL, IDM_SEARCH_CLEARALLMARKS, false, false, false, nullptr },
|
{ VK_NULL, IDM_SEARCH_CLEARALLMARKS, false, false, false, TEXT("Clear marks using any style") },
|
||||||
{ VK_1, IDM_SEARCH_GOPREVMARKER1, true, false, true, nullptr },
|
{ VK_1, IDM_SEARCH_GOPREVMARKER1, true, false, true, TEXT("Previous mark using 1st style") },
|
||||||
{ VK_2, IDM_SEARCH_GOPREVMARKER2, true, false, true, nullptr },
|
{ VK_2, IDM_SEARCH_GOPREVMARKER2, true, false, true, TEXT("Previous mark using 2nd style") },
|
||||||
{ VK_3, IDM_SEARCH_GOPREVMARKER3, true, false, true, nullptr },
|
{ VK_3, IDM_SEARCH_GOPREVMARKER3, true, false, true, TEXT("Previous mark using 3rd style") },
|
||||||
{ VK_4, IDM_SEARCH_GOPREVMARKER4, true, false, true, nullptr },
|
{ VK_4, IDM_SEARCH_GOPREVMARKER4, true, false, true, TEXT("Previous mark using 4th style") },
|
||||||
{ VK_5, IDM_SEARCH_GOPREVMARKER5, true, false, true, nullptr },
|
{ VK_5, IDM_SEARCH_GOPREVMARKER5, true, false, true, TEXT("Previous mark using 5th style") },
|
||||||
{ VK_0, IDM_SEARCH_GOPREVMARKER_DEF, true, false, true, nullptr },
|
{ VK_0, IDM_SEARCH_GOPREVMARKER_DEF, true, false, true, TEXT("Previous mark created with Mark...") },
|
||||||
{ VK_1, IDM_SEARCH_GONEXTMARKER1, true, false, false, nullptr },
|
{ VK_1, IDM_SEARCH_GONEXTMARKER1, true, false, false, TEXT("Next mark using 1st style") },
|
||||||
{ VK_2, IDM_SEARCH_GONEXTMARKER2, true, false, false, nullptr },
|
{ VK_2, IDM_SEARCH_GONEXTMARKER2, true, false, false, TEXT("Next mark using 2nd style") },
|
||||||
{ VK_3, IDM_SEARCH_GONEXTMARKER3, true, false, false, nullptr },
|
{ VK_3, IDM_SEARCH_GONEXTMARKER3, true, false, false, TEXT("Next mark using 3rd style") },
|
||||||
{ VK_4, IDM_SEARCH_GONEXTMARKER4, true, false, false, nullptr },
|
{ VK_4, IDM_SEARCH_GONEXTMARKER4, true, false, false, TEXT("Next mark using 4th style") },
|
||||||
{ VK_5, IDM_SEARCH_GONEXTMARKER5, true, false, false, nullptr },
|
{ VK_5, IDM_SEARCH_GONEXTMARKER5, true, false, false, TEXT("Next mark using 5th style") },
|
||||||
{ VK_0, IDM_SEARCH_GONEXTMARKER_DEF, true, false, false, nullptr },
|
{ VK_0, IDM_SEARCH_GONEXTMARKER_DEF, true, false, false, TEXT("Next mark created with Mark...") },
|
||||||
|
|
||||||
{ VK_F2, IDM_SEARCH_TOGGLE_BOOKMARK, true, false, false, nullptr },
|
{ VK_F2, IDM_SEARCH_TOGGLE_BOOKMARK, true, false, false, nullptr },
|
||||||
{ VK_F2, IDM_SEARCH_NEXT_BOOKMARK, false, false, false, nullptr },
|
{ VK_F2, IDM_SEARCH_NEXT_BOOKMARK, false, false, false, nullptr },
|
||||||
@ -237,10 +237,10 @@ static const WinMenuKeyDefinition winKeyDefs[] =
|
|||||||
{ VK_F11, IDM_VIEW_FULLSCREENTOGGLE, false, false, false, nullptr },
|
{ VK_F11, IDM_VIEW_FULLSCREENTOGGLE, false, false, false, nullptr },
|
||||||
{ VK_F12, IDM_VIEW_POSTIT, false, false, false, nullptr },
|
{ VK_F12, IDM_VIEW_POSTIT, false, false, false, nullptr },
|
||||||
|
|
||||||
{ VK_NULL, IDM_VIEW_IN_FIREFOX, false, false, false, nullptr },
|
{ VK_NULL, IDM_VIEW_IN_FIREFOX, false, false, false, TEXT("View current file in Firefox") },
|
||||||
{ VK_NULL, IDM_VIEW_IN_CHROME, false, false, false, nullptr },
|
{ VK_NULL, IDM_VIEW_IN_CHROME, false, false, false, TEXT("View current file in Chrome") },
|
||||||
{ VK_NULL, IDM_VIEW_IN_IE, false, false, false, nullptr },
|
{ VK_NULL, IDM_VIEW_IN_IE, false, false, false, TEXT("View current file in IE") },
|
||||||
{ VK_NULL, IDM_VIEW_IN_EDGE, false, false, false, nullptr },
|
{ VK_NULL, IDM_VIEW_IN_EDGE, false, false, false, TEXT("View current file in Edge") },
|
||||||
|
|
||||||
{ VK_NULL, IDM_VIEW_TAB_SPACE, false, false, false, nullptr },
|
{ VK_NULL, IDM_VIEW_TAB_SPACE, false, false, false, nullptr },
|
||||||
{ VK_NULL, IDM_VIEW_EOL, false, false, false, nullptr },
|
{ VK_NULL, IDM_VIEW_EOL, false, false, false, nullptr },
|
||||||
@ -278,30 +278,30 @@ static const WinMenuKeyDefinition winKeyDefs[] =
|
|||||||
{ VK_0, IDM_VIEW_TOGGLE_UNFOLDALL, false, true, true, nullptr },
|
{ VK_0, IDM_VIEW_TOGGLE_UNFOLDALL, false, true, true, nullptr },
|
||||||
{ VK_F, IDM_VIEW_FOLD_CURRENT, true, true, false, nullptr },
|
{ VK_F, IDM_VIEW_FOLD_CURRENT, true, true, false, nullptr },
|
||||||
{ VK_F, IDM_VIEW_UNFOLD_CURRENT, true, true, true, nullptr },
|
{ VK_F, IDM_VIEW_UNFOLD_CURRENT, true, true, true, nullptr },
|
||||||
{ VK_1, IDM_VIEW_FOLD_1, false, true, false, nullptr },
|
{ VK_1, IDM_VIEW_FOLD_1, false, true, false, TEXT("Collapse Level 1") },
|
||||||
{ VK_2, IDM_VIEW_FOLD_2, false, true, false, nullptr },
|
{ VK_2, IDM_VIEW_FOLD_2, false, true, false, TEXT("Collapse Level 2") },
|
||||||
{ VK_3, IDM_VIEW_FOLD_3, false, true, false, nullptr },
|
{ VK_3, IDM_VIEW_FOLD_3, false, true, false, TEXT("Collapse Level 3") },
|
||||||
{ VK_4, IDM_VIEW_FOLD_4, false, true, false, nullptr },
|
{ VK_4, IDM_VIEW_FOLD_4, false, true, false, TEXT("Collapse Level 4") },
|
||||||
{ VK_5, IDM_VIEW_FOLD_5, false, true, false, nullptr },
|
{ VK_5, IDM_VIEW_FOLD_5, false, true, false, TEXT("Collapse Level 5") },
|
||||||
{ VK_6, IDM_VIEW_FOLD_6, false, true, false, nullptr },
|
{ VK_6, IDM_VIEW_FOLD_6, false, true, false, TEXT("Collapse Level 6") },
|
||||||
{ VK_7, IDM_VIEW_FOLD_7, false, true, false, nullptr },
|
{ VK_7, IDM_VIEW_FOLD_7, false, true, false, TEXT("Collapse Level 7") },
|
||||||
{ VK_8, IDM_VIEW_FOLD_8, false, true, false, nullptr },
|
{ VK_8, IDM_VIEW_FOLD_8, false, true, false, TEXT("Collapse Level 8") },
|
||||||
|
|
||||||
{ VK_1, IDM_VIEW_UNFOLD_1, false, true, true, nullptr },
|
{ VK_1, IDM_VIEW_UNFOLD_1, false, true, true, TEXT("Uncollapse Level 1") },
|
||||||
{ VK_2, IDM_VIEW_UNFOLD_2, false, true, true, nullptr },
|
{ VK_2, IDM_VIEW_UNFOLD_2, false, true, true, TEXT("Uncollapse Level 2") },
|
||||||
{ VK_3, IDM_VIEW_UNFOLD_3, false, true, true, nullptr },
|
{ VK_3, IDM_VIEW_UNFOLD_3, false, true, true, TEXT("Uncollapse Level 3") },
|
||||||
{ VK_4, IDM_VIEW_UNFOLD_4, false, true, true, nullptr },
|
{ VK_4, IDM_VIEW_UNFOLD_4, false, true, true, TEXT("Uncollapse Level 4") },
|
||||||
{ VK_5, IDM_VIEW_UNFOLD_5, false, true, true, nullptr },
|
{ VK_5, IDM_VIEW_UNFOLD_5, false, true, true, TEXT("Uncollapse Level 5") },
|
||||||
{ VK_6, IDM_VIEW_UNFOLD_6, false, true, true, nullptr },
|
{ VK_6, IDM_VIEW_UNFOLD_6, false, true, true, TEXT("Uncollapse Level 6") },
|
||||||
{ VK_7, IDM_VIEW_UNFOLD_7, false, true, true, nullptr },
|
{ VK_7, IDM_VIEW_UNFOLD_7, false, true, true, TEXT("Uncollapse Level 7") },
|
||||||
{ VK_8, IDM_VIEW_UNFOLD_8, false, true, true, nullptr },
|
{ VK_8, IDM_VIEW_UNFOLD_8, false, true, true, TEXT("Uncollapse Level 8") },
|
||||||
{ VK_NULL, IDM_VIEW_SUMMARY, false, false, false, nullptr },
|
{ VK_NULL, IDM_VIEW_SUMMARY, false, false, false, nullptr },
|
||||||
{ VK_NULL, IDM_VIEW_PROJECT_PANEL_1, false, false, false, nullptr },
|
{ VK_NULL, IDM_VIEW_PROJECT_PANEL_1, false, false, false, TEXT("Toggle Project Panel 1") },
|
||||||
{ VK_NULL, IDM_VIEW_PROJECT_PANEL_2, false, false, false, nullptr },
|
{ VK_NULL, IDM_VIEW_PROJECT_PANEL_2, false, false, false, TEXT("Toggle Project Panel 2") },
|
||||||
{ VK_NULL, IDM_VIEW_PROJECT_PANEL_3, false, false, false, nullptr },
|
{ VK_NULL, IDM_VIEW_PROJECT_PANEL_3, false, false, false, TEXT("Toggle Project Panel 3") },
|
||||||
{ VK_NULL, IDM_VIEW_FILEBROWSER, false, false, false, nullptr },
|
{ VK_NULL, IDM_VIEW_FILEBROWSER, false, false, false, TEXT("Toggle Folder as Workspace") },
|
||||||
{ VK_NULL, IDM_VIEW_DOC_MAP, false, false, false, nullptr },
|
{ VK_NULL, IDM_VIEW_DOC_MAP, false, false, false, TEXT("Toggle Document Map") },
|
||||||
{ VK_NULL, IDM_VIEW_FUNC_LIST, false, false, false, nullptr },
|
{ VK_NULL, IDM_VIEW_FUNC_LIST, false, false, false, TEXT("Toggle Function List") },
|
||||||
{ VK_NULL, IDM_VIEW_SYNSCROLLV, false, false, false, nullptr },
|
{ VK_NULL, IDM_VIEW_SYNSCROLLV, false, false, false, nullptr },
|
||||||
{ VK_NULL, IDM_VIEW_SYNSCROLLH, false, false, false, nullptr },
|
{ VK_NULL, IDM_VIEW_SYNSCROLLH, false, false, false, nullptr },
|
||||||
{ VK_R, IDM_EDIT_RTL, true, true, false, nullptr },
|
{ VK_R, IDM_EDIT_RTL, true, true, false, nullptr },
|
||||||
@ -379,7 +379,7 @@ static const WinMenuKeyDefinition winKeyDefs[] =
|
|||||||
{ VK_NULL, IDM_SETTING_IMPORTSTYLETHEMS, false, false, false, nullptr },
|
{ VK_NULL, IDM_SETTING_IMPORTSTYLETHEMS, false, false, false, nullptr },
|
||||||
{ VK_NULL, IDM_SETTING_EDITCONTEXTMENU, false, false, false, nullptr },
|
{ VK_NULL, IDM_SETTING_EDITCONTEXTMENU, false, false, false, nullptr },
|
||||||
|
|
||||||
{ VK_R, IDC_EDIT_TOGGLEMACRORECORDING, true, false, true, TEXT("Toggle macro record")},
|
{ VK_R, IDC_EDIT_TOGGLEMACRORECORDING, true, false, true, TEXT("Toggle macro recording")},
|
||||||
{ VK_NULL, IDM_MACRO_STARTRECORDINGMACRO, false, false, false, nullptr },
|
{ VK_NULL, IDM_MACRO_STARTRECORDINGMACRO, false, false, false, nullptr },
|
||||||
{ VK_NULL, IDM_MACRO_STOPRECORDINGMACRO, false, false, false, nullptr },
|
{ VK_NULL, IDM_MACRO_STOPRECORDINGMACRO, false, false, false, nullptr },
|
||||||
{ VK_P, IDM_MACRO_PLAYBACKRECORDEDMACRO, true, false, true, nullptr },
|
{ VK_P, IDM_MACRO_PLAYBACKRECORDEDMACRO, true, false, true, nullptr },
|
||||||
@ -395,8 +395,12 @@ static const WinMenuKeyDefinition winKeyDefs[] =
|
|||||||
{ VK_NULL, IDM_FORUM, false, false, false, nullptr },
|
{ VK_NULL, IDM_FORUM, false, false, false, nullptr },
|
||||||
{ VK_NULL, IDM_ONLINESUPPORT, false, false, false, nullptr },
|
{ VK_NULL, IDM_ONLINESUPPORT, false, false, false, nullptr },
|
||||||
// { VK_NULL, IDM_PLUGINSHOME, false, false, false, nullptr },
|
// { VK_NULL, IDM_PLUGINSHOME, false, false, false, nullptr },
|
||||||
{ VK_NULL, IDM_UPDATE_NPP, false, false, false, nullptr },
|
|
||||||
{ VK_NULL, IDM_CONFUPDATERPROXY, false, false, false, nullptr },
|
// The following two commands are not in menu if (nppGUI._doesExistUpdater == 0).
|
||||||
|
// They cannot be derived from menu then, only for this reason the text is specified here.
|
||||||
|
// In localized environments, the text comes preferably from xml Menu/Main/Commands.
|
||||||
|
{ VK_NULL, IDM_UPDATE_NPP, false, false, false, TEXT("Update Notepad++") },
|
||||||
|
{ VK_NULL, IDM_CONFUPDATERPROXY, false, false, false, TEXT("Set Updater Proxy...") },
|
||||||
{ VK_NULL, IDM_DEBUGINFO, false, false, false, nullptr },
|
{ VK_NULL, IDM_DEBUGINFO, false, false, false, nullptr },
|
||||||
{ VK_F1, IDM_ABOUT, false, false, false, nullptr }
|
{ VK_F1, IDM_ABOUT, false, false, false, nullptr }
|
||||||
// { VK_F1, IDM_HELP, false, false, true, nullptr }
|
// { VK_F1, IDM_HELP, false, false, true, nullptr }
|
||||||
|
@ -168,10 +168,10 @@ generic_string Shortcut::toString() const
|
|||||||
return sc;
|
return sc;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Shortcut::setName(const TCHAR * name)
|
void Shortcut::setName(const TCHAR * menuName, const TCHAR * shortcutName)
|
||||||
{
|
{
|
||||||
lstrcpyn(_menuName, name, nameLenMax);
|
lstrcpyn(_menuName, menuName, nameLenMax);
|
||||||
lstrcpyn(_name, name, nameLenMax);
|
TCHAR const * name = shortcutName ? shortcutName : menuName;
|
||||||
int i = 0, j = 0;
|
int i = 0, j = 0;
|
||||||
while (name[j] != 0 && i < nameLenMax)
|
while (name[j] != 0 && i < nameLenMax)
|
||||||
{
|
{
|
||||||
@ -386,7 +386,7 @@ INT_PTR CALLBACK Shortcut::run_dlgProc(UINT Message, WPARAM wParam, LPARAM)
|
|||||||
{
|
{
|
||||||
case WM_INITDIALOG :
|
case WM_INITDIALOG :
|
||||||
{
|
{
|
||||||
::SetDlgItemText(_hSelf, IDC_NAME_EDIT, getMenuName()); //display the menu name, with ampersands
|
::SetDlgItemText(_hSelf, IDC_NAME_EDIT, _canModifyName ? getMenuName() : getName()); //display the menu name, with ampersands, for macros
|
||||||
if (!_canModifyName)
|
if (!_canModifyName)
|
||||||
::SendDlgItemMessage(_hSelf, IDC_NAME_EDIT, EM_SETREADONLY, TRUE, 0);
|
::SendDlgItemMessage(_hSelf, IDC_NAME_EDIT, EM_SETREADONLY, TRUE, 0);
|
||||||
auto textlen = ::SendDlgItemMessage(_hSelf, IDC_NAME_EDIT, WM_GETTEXTLENGTH, 0, 0);
|
auto textlen = ::SendDlgItemMessage(_hSelf, IDC_NAME_EDIT, WM_GETTEXTLENGTH, 0, 0);
|
||||||
@ -1139,6 +1139,7 @@ INT_PTR CALLBACK ScintillaKeyMap::run_dlgProc(UINT Message, WPARAM wParam, LPARA
|
|||||||
|
|
||||||
CommandShortcut::CommandShortcut(const Shortcut& sc, long id) : Shortcut(sc), _id(id)
|
CommandShortcut::CommandShortcut(const Shortcut& sc, long id) : Shortcut(sc), _id(id)
|
||||||
{
|
{
|
||||||
|
_shortcutName = sc.getName();
|
||||||
if ( _id < IDM_EDIT)
|
if ( _id < IDM_EDIT)
|
||||||
_category = TEXT("File");
|
_category = TEXT("File");
|
||||||
else if ( _id < IDM_SEARCH)
|
else if ( _id < IDM_SEARCH)
|
||||||
|
@ -99,7 +99,7 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
Shortcut(const Shortcut & sc) {
|
Shortcut(const Shortcut & sc) {
|
||||||
setName(sc.getMenuName());
|
setName(sc.getMenuName(), sc.getName());
|
||||||
_keyCombo = sc._keyCombo;
|
_keyCombo = sc._keyCombo;
|
||||||
_canModifyName = sc._canModifyName;
|
_canModifyName = sc._canModifyName;
|
||||||
}
|
}
|
||||||
@ -112,7 +112,7 @@ public:
|
|||||||
//Do not allow setting empty names
|
//Do not allow setting empty names
|
||||||
//So either we have an empty name or the other name has to be set
|
//So either we have an empty name or the other name has to be set
|
||||||
if (_name[0] == 0 || sc._name[0] != 0) {
|
if (_name[0] == 0 || sc._name[0] != 0) {
|
||||||
setName(sc.getMenuName());
|
setName(sc.getMenuName(), sc.getName());
|
||||||
}
|
}
|
||||||
_keyCombo = sc._keyCombo;
|
_keyCombo = sc._keyCombo;
|
||||||
this->_canModifyName = sc._canModifyName;
|
this->_canModifyName = sc._canModifyName;
|
||||||
@ -173,7 +173,7 @@ public:
|
|||||||
return _menuName;
|
return _menuName;
|
||||||
}
|
}
|
||||||
|
|
||||||
void setName(const TCHAR * name);
|
void setName(const TCHAR * menuName, const TCHAR * shortcutName = NULL);
|
||||||
|
|
||||||
void clear(){
|
void clear(){
|
||||||
_keyCombo._isCtrl = false;
|
_keyCombo._isCtrl = false;
|
||||||
@ -198,10 +198,12 @@ public:
|
|||||||
unsigned long getID() const {return _id;};
|
unsigned long getID() const {return _id;};
|
||||||
void setID(unsigned long id) { _id = id;};
|
void setID(unsigned long id) { _id = id;};
|
||||||
const TCHAR * getCategory() const { return _category.c_str(); };
|
const TCHAR * getCategory() const { return _category.c_str(); };
|
||||||
|
const TCHAR * getShortcutName() const { return _shortcutName.c_str(); };
|
||||||
|
|
||||||
private :
|
private :
|
||||||
unsigned long _id;
|
unsigned long _id;
|
||||||
generic_string _category;
|
generic_string _category;
|
||||||
|
generic_string _shortcutName;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -211,6 +211,40 @@ generic_string NativeLangSpeaker::getNativeLangMenuString(int itemID) const
|
|||||||
return TEXT("");
|
return TEXT("");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
generic_string NativeLangSpeaker::getShortcutNameString(int itemID) const
|
||||||
|
{
|
||||||
|
if (!_nativeLangA)
|
||||||
|
return TEXT("");
|
||||||
|
|
||||||
|
TiXmlNodeA *node = _nativeLangA->FirstChild("Dialog");
|
||||||
|
if (!node) return TEXT("");
|
||||||
|
|
||||||
|
node = node->FirstChild("ShortcutMapper");
|
||||||
|
if (!node) return TEXT("");
|
||||||
|
|
||||||
|
node = node->FirstChild("MainCommandNames");
|
||||||
|
if (!node) return TEXT("");
|
||||||
|
|
||||||
|
WcharMbcsConvertor& wmc = WcharMbcsConvertor::getInstance();
|
||||||
|
|
||||||
|
for (TiXmlNodeA *childNode = node->FirstChildElement("Item");
|
||||||
|
childNode ;
|
||||||
|
childNode = childNode->NextSibling("Item") )
|
||||||
|
{
|
||||||
|
TiXmlElementA *element = childNode->ToElement();
|
||||||
|
int id;
|
||||||
|
if (element->Attribute("id", &id) && (id == itemID))
|
||||||
|
{
|
||||||
|
const char *name = element->Attribute("name");
|
||||||
|
if (name)
|
||||||
|
{
|
||||||
|
return wmc.char2wchar(name, _nativeLangEncoding);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return TEXT("");
|
||||||
|
}
|
||||||
|
|
||||||
generic_string NativeLangSpeaker::getLocalizedStrFromID(const char *strID, const generic_string& defaultString) const
|
generic_string NativeLangSpeaker::getLocalizedStrFromID(const char *strID, const generic_string& defaultString) const
|
||||||
{
|
{
|
||||||
if (not _nativeLangA)
|
if (not _nativeLangA)
|
||||||
|
@ -58,6 +58,8 @@ public:
|
|||||||
void changeLangTabDrapContextMenu(HMENU hCM);
|
void changeLangTabDrapContextMenu(HMENU hCM);
|
||||||
generic_string getSpecialMenuEntryName(const char *entryName) const;
|
generic_string getSpecialMenuEntryName(const char *entryName) const;
|
||||||
generic_string getNativeLangMenuString(int itemID) const;
|
generic_string getNativeLangMenuString(int itemID) const;
|
||||||
|
generic_string getShortcutNameString(int itemID) const;
|
||||||
|
|
||||||
void changeMenuLang(HMENU menuHandle, generic_string & pluginsTrans, generic_string & windowTrans);
|
void changeMenuLang(HMENU menuHandle, generic_string & pluginsTrans, generic_string & windowTrans);
|
||||||
void changeShortcutLang();
|
void changeShortcutLang();
|
||||||
void changeStyleCtrlsLang(HWND hDlg, int *idArray, const char **translatedText);
|
void changeStyleCtrlsLang(HWND hDlg, int *idArray, const char **translatedText);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user