From e8c5cad7c722dbf49fc8373903bf87e30024ddc1 Mon Sep 17 00:00:00 2001 From: Rainer Kottenhoff Date: Tue, 4 Jun 2019 14:10:59 +0200 Subject: [PATCH] + chg: New top-level menu "Appearance" holding Themes and Schemes stuff (en-US, en-GB and de-DE) + chg: Free "Alt+P" Hotkey (Compress Spaces moved to "Ctrl+Alt+P") + fix: Destroy dynamic menu ... --- language/np3_af_za/menu_af_za.rc | 2 +- language/np3_be_by/menu_be_by.rc | 2 +- language/np3_de_de/menu_de_de.rc | 23 +++-- language/np3_de_de/strings_de_de.rc | 2 +- language/np3_en_gb/menu_en_gb.rc | 23 +++-- language/np3_en_gb/strings_en_gb.rc | 2 +- language/np3_en_us/menu_en_us.rc | 23 +++-- language/np3_en_us/strings_en_us.rc | 2 +- language/np3_es_es/menu_es_es.rc | 2 +- language/np3_fr_fr/menu_fr_fr.rc | 2 +- language/np3_hu_hu/menu_hu_hu.rc | 2 +- language/np3_it_it/menu_it_it.rc | 2 +- language/np3_ja_jp/menu_ja_jp.rc | 2 +- language/np3_ko_kr/menu_ko_kr.rc | 8 +- language/np3_nl_nl/menu_nl_nl.rc | 2 +- language/np3_pl_pl/menu_pl_pl.rc | 10 +-- language/np3_pt_br/menu_pt_br.rc | 2 +- language/np3_ru_ru/menu_ru_ru.rc | 2 +- language/np3_zh_cn/menu_zh_cn.rc | 6 +- src/Helpers.h | 3 + src/Notepad3.c | 125 ++++++++++++++-------------- src/Notepad3.rc | 2 +- src/Styles.c | 36 +++++--- src/TypeDefs.h | 1 + 24 files changed, 148 insertions(+), 138 deletions(-) diff --git a/language/np3_af_za/menu_af_za.rc b/language/np3_af_za/menu_af_za.rc index 2d0293359..5d6346be4 100644 --- a/language/np3_af_za/menu_af_za.rc +++ b/language/np3_af_za/menu_af_za.rc @@ -204,7 +204,7 @@ BEGIN MENUITEM "Strip &Eerste Karakter\tAlt+Z", IDM_EDIT_STRIP1STCHAR MENUITEM "Strip &Laaste Karakter\tAlt+U", IDM_EDIT_STRIPLASTCHAR MENUITEM "Strip &Agterliggende Spasies\tAlt+W", IDM_EDIT_TRIMLINES - MENUITEM "&Kompres Spasies\tAlt+P", IDM_EDIT_COMPRESS_BLANKS + MENUITEM "&Kompres Spasies\tCtrl+Alt+P", IDM_EDIT_COMPRESS_BLANKS MENUITEM SEPARATOR MENUITEM "&Modifiseer Lyne...\tAlt+M", IDM_EDIT_MODIFYLINES MENUITEM "&Bring Lyne in Lyn...\tAlt+J", IDM_EDIT_ALIGN diff --git a/language/np3_be_by/menu_be_by.rc b/language/np3_be_by/menu_be_by.rc index 894f107dc..7aee6358b 100644 --- a/language/np3_be_by/menu_be_by.rc +++ b/language/np3_be_by/menu_be_by.rc @@ -204,7 +204,7 @@ BEGIN MENUITEM " \tAlt+Z", IDM_EDIT_STRIP1STCHAR MENUITEM " \tAlt+U", IDM_EDIT_STRIPLASTCHAR MENUITEM " \tAlt+W", IDM_EDIT_TRIMLINES - MENUITEM "' \tAlt+P", IDM_EDIT_COMPRESS_BLANKS + MENUITEM "' \tCtrl+Alt+P", IDM_EDIT_COMPRESS_BLANKS MENUITEM SEPARATOR MENUITEM "& ...\tAlt+M", IDM_EDIT_MODIFYLINES MENUITEM "& ...\tAlt+J", IDM_EDIT_ALIGN diff --git a/language/np3_de_de/menu_de_de.rc b/language/np3_de_de/menu_de_de.rc index d06ed1e22..6bb5a2480 100644 --- a/language/np3_de_de/menu_de_de.rc +++ b/language/np3_de_de/menu_de_de.rc @@ -204,7 +204,7 @@ BEGIN MENUITEM "&Entferne ersten Buchstaben\tAlt+Z", IDM_EDIT_STRIP1STCHAR MENUITEM "Entferne letzten &Buchstaben\tAlt+U", IDM_EDIT_STRIPLASTCHAR MENUITEM "Entferne &anhngende Leerzeichen\tAlt+W", IDM_EDIT_TRIMLINES - MENUITEM "Vereinige &Leerzeichen\tAlt+P", IDM_EDIT_COMPRESS_BLANKS + MENUITEM "Vereinige &Leerzeichen\tCtrl+Alt+P", IDM_EDIT_COMPRESS_BLANKS MENUITEM SEPARATOR MENUITEM "&Numeriere Zeilen...\tAlt+M", IDM_EDIT_MODIFYLINES MENUITEM "&Zeilen &ausrichten...\tAlt+J", IDM_EDIT_ALIGN @@ -291,17 +291,6 @@ BEGIN END POPUP "&Ansicht" BEGIN - POPUP "&Themen" - BEGIN - MENUITEM "&Syntax Schemata anpassen...\tCtrl+F12", IDM_VIEW_SCHEMECONFIG - MENUITEM SEPARATOR - MENUITEM "Standard Synta&x Schema...\tF12", IDM_VIEW_SCHEME - MENUITEM "&2tes Standard Schema\tShift+F12", IDM_VIEW_USE2NDDEFAULT - MENUITEM SEPARATOR - MENUITEM "Globaler &Standard Font...\tAlt+F12", IDM_VIEW_FONT - MENUITEM "Aktueller Schema Font...\tCtrl+Alt+F12", IDM_VIEW_CURRENTSCHEME - END - MENUITEM SEPARATOR MENUITEM "Langzeilen Umbruch\tCtrl+W", IDM_VIEW_WORDWRAP MENUITEM "&Langzeilen Markierung\tCtrl+Shift+L", IDM_VIEW_LONGLINEMARKER MENUITEM "Leitlinien Einrckung\tCtrl+Shift+G", IDM_VIEW_SHOWINDENTGUIDES @@ -370,6 +359,16 @@ BEGIN MENUITEM "Fenster Position einfrieren", IDM_VIEW_STICKYWINPOS END END + POPUP "&Aussehen" + BEGIN + MENUITEM "&Schemata anpassen...\tCtrl+F12", IDM_VIEW_SCHEMECONFIG + MENUITEM SEPARATOR + MENUITEM "Synta&x Schema whlen...\tF12", IDM_VIEW_SCHEME + MENUITEM "&2tes Standard Schema\tShift+F12", IDM_VIEW_USE2NDDEFAULT + MENUITEM SEPARATOR + MENUITEM "Globaler &Standard Font...\tAlt+F12", IDM_VIEW_FONT + MENUITEM "Aktueller Schema Font...\tCtrl+Alt+F12", IDM_VIEW_CURRENTSCHEME + END POPUP "&Einstellungen" BEGIN MENUITEM "Tabs mittels &Leerzeichen einfgen", IDM_VIEW_TABSASSPACES diff --git a/language/np3_de_de/strings_de_de.rc b/language/np3_de_de/strings_de_de.rc index 318738a19..0e0a1c8c4 100644 --- a/language/np3_de_de/strings_de_de.rc +++ b/language/np3_de_de/strings_de_de.rc @@ -234,7 +234,7 @@ END STRINGTABLE BEGIN IDS_MUI_MENU_LANGUAGE "&Sprache" - IDS_MUI_MENU_THEMES "&Thema Wechseln" + IDS_MUI_MENU_THEMES "&Schema Sammlung" IDM_THEMES_DEFAULT "Fabrik-Vorgaben" IDM_THEMES_FILE_ITEM "Standard Einstellungen" END diff --git a/language/np3_en_gb/menu_en_gb.rc b/language/np3_en_gb/menu_en_gb.rc index b5c6835c6..c9e810b2e 100644 --- a/language/np3_en_gb/menu_en_gb.rc +++ b/language/np3_en_gb/menu_en_gb.rc @@ -204,7 +204,7 @@ BEGIN MENUITEM "Strip &First Character\tAlt+Z", IDM_EDIT_STRIP1STCHAR MENUITEM "Strip &Last Character\tAlt+U", IDM_EDIT_STRIPLASTCHAR MENUITEM "Strip &Trailing Blanks\tAlt+W", IDM_EDIT_TRIMLINES - MENUITEM "Compress &Blanks\tAlt+P", IDM_EDIT_COMPRESS_BLANKS + MENUITEM "Compress &Blanks\tCtrl+Alt+P", IDM_EDIT_COMPRESS_BLANKS MENUITEM SEPARATOR MENUITEM "&Modify Lines...\tAlt+M", IDM_EDIT_MODIFYLINES MENUITEM "&Align Lines...\tAlt+J", IDM_EDIT_ALIGN @@ -291,17 +291,6 @@ BEGIN END POPUP "&View" BEGIN - POPUP "&Themes" - BEGIN - MENUITEM "&Customise Schemes...\tCtrl+F12", IDM_VIEW_SCHEMECONFIG - MENUITEM SEPARATOR - MENUITEM "Synta&x Scheme...\tF12", IDM_VIEW_SCHEME - MENUITEM "&2nd Default Scheme\tShift+F12", IDM_VIEW_USE2NDDEFAULT - MENUITEM SEPARATOR - MENUITEM "Global &Default Font...\tAlt+F12", IDM_VIEW_FONT - MENUITEM "Current Sc&heme's Default Font...\tCtrl+Alt+F12", IDM_VIEW_CURRENTSCHEME - END - MENUITEM SEPARATOR MENUITEM "Word W&rap\tCtrl+W", IDM_VIEW_WORDWRAP MENUITEM "&Long Line Marker\tCtrl+Shift+L", IDM_VIEW_LONGLINEMARKER MENUITEM "Indent&ation Guides\tCtrl+Shift+G", IDM_VIEW_SHOWINDENTGUIDES @@ -370,6 +359,16 @@ BEGIN MENUITEM "Sticky Window &Position", IDM_VIEW_STICKYWINPOS END END + POPUP "A&ppearance" + BEGIN + MENUITEM "&Customise Schemes...\tCtrl+F12", IDM_VIEW_SCHEMECONFIG + MENUITEM SEPARATOR + MENUITEM "Select Synta&x Scheme...\tF12", IDM_VIEW_SCHEME + MENUITEM "&2nd Default Scheme\tShift+F12", IDM_VIEW_USE2NDDEFAULT + MENUITEM SEPARATOR + MENUITEM "Global &Default Font...\tAlt+F12", IDM_VIEW_FONT + MENUITEM "Current Sc&heme's Default Font...\tCtrl+Alt+F12", IDM_VIEW_CURRENTSCHEME + END POPUP "&Settings" BEGIN MENUITEM "Insert Tabs as &Spaces", IDM_VIEW_TABSASSPACES diff --git a/language/np3_en_gb/strings_en_gb.rc b/language/np3_en_gb/strings_en_gb.rc index 9c8df363f..43b038305 100644 --- a/language/np3_en_gb/strings_en_gb.rc +++ b/language/np3_en_gb/strings_en_gb.rc @@ -234,7 +234,7 @@ END STRINGTABLE BEGIN IDS_MUI_MENU_LANGUAGE "&Language" - IDS_MUI_MENU_THEMES "&Switch Theme" + IDS_MUI_MENU_THEMES "&Scheme Collection" IDM_THEMES_DEFAULT "Factory Default" IDM_THEMES_FILE_ITEM "Standard Settings" END diff --git a/language/np3_en_us/menu_en_us.rc b/language/np3_en_us/menu_en_us.rc index a5185ea97..683e8b767 100644 --- a/language/np3_en_us/menu_en_us.rc +++ b/language/np3_en_us/menu_en_us.rc @@ -204,7 +204,7 @@ BEGIN MENUITEM "Strip &First Character\tAlt+Z", IDM_EDIT_STRIP1STCHAR MENUITEM "Strip &Last Character\tAlt+U", IDM_EDIT_STRIPLASTCHAR MENUITEM "Strip &Trailing Blanks\tAlt+W", IDM_EDIT_TRIMLINES - MENUITEM "Compress &Blanks\tAlt+P", IDM_EDIT_COMPRESS_BLANKS + MENUITEM "Compress &Blanks\tCtrl+Alt+P", IDM_EDIT_COMPRESS_BLANKS MENUITEM SEPARATOR MENUITEM "&Modify Lines...\tAlt+M", IDM_EDIT_MODIFYLINES MENUITEM "&Align Lines...\tAlt+J", IDM_EDIT_ALIGN @@ -291,17 +291,6 @@ BEGIN END POPUP "&View" BEGIN - POPUP "&Themes" - BEGIN - MENUITEM "&Customize Schemes...\tCtrl+F12", IDM_VIEW_SCHEMECONFIG - MENUITEM SEPARATOR - MENUITEM "Synta&x Scheme...\tF12", IDM_VIEW_SCHEME - MENUITEM "&2nd Default Scheme\tShift+F12", IDM_VIEW_USE2NDDEFAULT - MENUITEM SEPARATOR - MENUITEM "Global &Default Font...\tAlt+F12", IDM_VIEW_FONT - MENUITEM "Current Sc&heme's Default Font...\tCtrl+Alt+F12", IDM_VIEW_CURRENTSCHEME - END - MENUITEM SEPARATOR MENUITEM "Word W&rap\tCtrl+W", IDM_VIEW_WORDWRAP MENUITEM "&Long Line Marker\tCtrl+Shift+L", IDM_VIEW_LONGLINEMARKER MENUITEM "Indent&ation Guides\tCtrl+Shift+G", IDM_VIEW_SHOWINDENTGUIDES @@ -370,6 +359,16 @@ BEGIN MENUITEM "Sticky Window &Position", IDM_VIEW_STICKYWINPOS END END + POPUP "A&ppearance" + BEGIN + MENUITEM "&Customize Schemes...\tCtrl+F12", IDM_VIEW_SCHEMECONFIG + MENUITEM SEPARATOR + MENUITEM "Select Synta&x Scheme...\tF12", IDM_VIEW_SCHEME + MENUITEM "&2nd Default Scheme\tShift+F12", IDM_VIEW_USE2NDDEFAULT + MENUITEM SEPARATOR + MENUITEM "Global &Default Font...\tAlt+F12", IDM_VIEW_FONT + MENUITEM "Current Sc&heme's Default Font...\tCtrl+Alt+F12", IDM_VIEW_CURRENTSCHEME + END POPUP "&Settings" BEGIN MENUITEM "Insert Tabs as &Spaces", IDM_VIEW_TABSASSPACES diff --git a/language/np3_en_us/strings_en_us.rc b/language/np3_en_us/strings_en_us.rc index 13387eb18..666269fd6 100644 --- a/language/np3_en_us/strings_en_us.rc +++ b/language/np3_en_us/strings_en_us.rc @@ -234,7 +234,7 @@ END STRINGTABLE BEGIN IDS_MUI_MENU_LANGUAGE "&Language" - IDS_MUI_MENU_THEMES "&Switch Theme" + IDS_MUI_MENU_THEMES "&Scheme Collection" IDM_THEMES_DEFAULT "Factory Default" IDM_THEMES_FILE_ITEM "Standard Settings" END diff --git a/language/np3_es_es/menu_es_es.rc b/language/np3_es_es/menu_es_es.rc index fc9b99401..aa2ad6c46 100644 --- a/language/np3_es_es/menu_es_es.rc +++ b/language/np3_es_es/menu_es_es.rc @@ -204,7 +204,7 @@ BEGIN MENUITEM "Eliminar el &primer carcter\tAlt+Z", IDM_EDIT_STRIP1STCHAR MENUITEM "Eliminar el <imo carcter\tAlt+U", IDM_EDIT_STRIPLASTCHAR MENUITEM "Eliminar los blancos al &final de lnea\tAlt+W", IDM_EDIT_TRIMLINES - MENUITEM "Comprimir &blancos\tAlt+P", IDM_EDIT_COMPRESS_BLANKS + MENUITEM "Comprimir &blancos\tCtrl+Alt+P", IDM_EDIT_COMPRESS_BLANKS MENUITEM SEPARATOR MENUITEM "&Modificar lneas...\tAlt+M", IDM_EDIT_MODIFYLINES MENUITEM "&Alinear lneas...\tAlt+J", IDM_EDIT_ALIGN diff --git a/language/np3_fr_fr/menu_fr_fr.rc b/language/np3_fr_fr/menu_fr_fr.rc index a7f078fc4..bbf5f4c0d 100644 --- a/language/np3_fr_fr/menu_fr_fr.rc +++ b/language/np3_fr_fr/menu_fr_fr.rc @@ -204,7 +204,7 @@ BEGIN MENUITEM "Supprimer le &premier charactre\tAlt+Z", IDM_EDIT_STRIP1STCHAR MENUITEM "Supprimer le &dernier charactre\tAlt+U", IDM_EDIT_STRIPLASTCHAR MENUITEM "Supprimer les b&lancs en fin de ligne\tAlt+W", IDM_EDIT_TRIMLINES - MENUITEM "Compresser les blancs\tAlt+P", IDM_EDIT_COMPRESS_BLANKS + MENUITEM "Compresser les blancs\tCtrl+Alt+P", IDM_EDIT_COMPRESS_BLANKS MENUITEM SEPARATOR MENUITEM "&Modifier les lignes...\tAlt+M", IDM_EDIT_MODIFYLINES MENUITEM "&Aligner les lignes...\tAlt+J", IDM_EDIT_ALIGN diff --git a/language/np3_hu_hu/menu_hu_hu.rc b/language/np3_hu_hu/menu_hu_hu.rc index 1a0533b17..df346e12c 100644 --- a/language/np3_hu_hu/menu_hu_hu.rc +++ b/language/np3_hu_hu/menu_hu_hu.rc @@ -204,7 +204,7 @@ BEGIN MENUITEM "&Els kar. trlse\tAlt+Z", IDM_EDIT_STRIP1STCHAR MENUITEM "&Utols kar. trlse\tAlt+U", IDM_EDIT_STRIPLASTCHAR MENUITEM "Sorvgi &res kar. trlse\tAlt+W", IDM_EDIT_TRIMLINES - MENUITEM "res kar. &tmrtse\tAlt+P", IDM_EDIT_COMPRESS_BLANKS + MENUITEM "res kar. &tmrtse\tCtrl+Alt+P", IDM_EDIT_COMPRESS_BLANKS MENUITEM SEPARATOR MENUITEM "Sorok &mdostsa...\tAlt+M", IDM_EDIT_MODIFYLINES MENUITEM "Sorok i&gaztsa...\tAlt+J", IDM_EDIT_ALIGN diff --git a/language/np3_it_it/menu_it_it.rc b/language/np3_it_it/menu_it_it.rc index afee8554d..e1248a5ed 100644 --- a/language/np3_it_it/menu_it_it.rc +++ b/language/np3_it_it/menu_it_it.rc @@ -204,7 +204,7 @@ BEGIN MENUITEM "Rimuovi &primo carattere\tAlt+Z", IDM_EDIT_STRIP1STCHAR MENUITEM "Rimuovi &ultimo carattere\tAlt+U", IDM_EDIT_STRIPLASTCHAR MENUITEM "Rimuovi i blanks a fine riga\tAlt+W", IDM_EDIT_TRIMLINES - MENUITEM "Comprimi i blanks\tAlt+P", IDM_EDIT_COMPRESS_BLANKS + MENUITEM "Comprimi i blanks\tCtrl+Alt+P", IDM_EDIT_COMPRESS_BLANKS MENUITEM SEPARATOR MENUITEM "&Modifica righe...\tAlt+M", IDM_EDIT_MODIFYLINES MENUITEM "&Allinea righe...\tAlt+J", IDM_EDIT_ALIGN diff --git a/language/np3_ja_jp/menu_ja_jp.rc b/language/np3_ja_jp/menu_ja_jp.rc index eeb3c4928..ae8f36faa 100644 --- a/language/np3_ja_jp/menu_ja_jp.rc +++ b/language/np3_ja_jp/menu_ja_jp.rc @@ -204,7 +204,7 @@ BEGIN MENUITEM "s폜\tAlt+Z", IDM_EDIT_STRIP1STCHAR MENUITEM "s폜(&L)\tAlt+U", IDM_EDIT_STRIPLASTCHAR MENUITEM "̋󔒍폜(&T)\tAlt+W", IDM_EDIT_TRIMLINES - MENUITEM "󔒂܂Ƃ߂(&W)\tAlt+P", IDM_EDIT_COMPRESS_BLANKS + MENUITEM "󔒂܂Ƃ߂(&W)\tCtrl+Alt+P", IDM_EDIT_COMPRESS_BLANKS MENUITEM SEPARATOR MENUITEM "s̏C(&M)...\tAlt+M", IDM_EDIT_MODIFYLINES MENUITEM "s̐(&A)...\tAlt+J", IDM_EDIT_ALIGN diff --git a/language/np3_ko_kr/menu_ko_kr.rc b/language/np3_ko_kr/menu_ko_kr.rc index 42c2d9b40..eb4e5d2ee 100644 --- a/language/np3_ko_kr/menu_ko_kr.rc +++ b/language/np3_ko_kr/menu_ko_kr.rc @@ -201,10 +201,10 @@ BEGIN MENUITEM " / (&D)\tCtrl+D", IDM_EDIT_DUPLINEORSELECTION MENUITEM SEPARATOR MENUITEM " ä ߱(&P)\tAlt+B", IDM_EDIT_PADWITHSPACES - MENUITEM "ù (&F)\tAlt+Z", IDM_EDIT_STRIP1STCHAR - MENUITEM " (&L)\tAlt+U", IDM_EDIT_STRIPLASTCHAR - MENUITEM " (&T)\tAlt+W", IDM_EDIT_TRIMLINES - MENUITEM " ̱(&B)\tAlt+P", IDM_EDIT_COMPRESS_BLANKS + MENUITEM "ù (&F)\tAlt+Z", IDM_EDIT_STRIP1STCHAR + MENUITEM " (&L)\tAlt+U", IDM_EDIT_STRIPLASTCHAR + MENUITEM " (&T)\tAlt+W", IDM_EDIT_TRIMLINES + MENUITEM " ̱(&B)\tCtrl+Alt+P", IDM_EDIT_COMPRESS_BLANKS MENUITEM SEPARATOR MENUITEM " ܺ ٹ̱(&M)...\tAlt+M", IDM_EDIT_MODIFYLINES MENUITEM " (&N)...\tAlt+J", IDM_EDIT_ALIGN diff --git a/language/np3_nl_nl/menu_nl_nl.rc b/language/np3_nl_nl/menu_nl_nl.rc index 5ff142717..9abc1e325 100644 --- a/language/np3_nl_nl/menu_nl_nl.rc +++ b/language/np3_nl_nl/menu_nl_nl.rc @@ -204,7 +204,7 @@ BEGIN MENUITEM "Strippen &eerste teken\tAlt+Z", IDM_EDIT_STRIP1STCHAR MENUITEM "Strippen &laatste teken\tAlt+U", IDM_EDIT_STRIPLASTCHAR MENUITEM "Strippen &achteraan blancos\tAlt+W", IDM_EDIT_TRIMLINES - MENUITEM "Comprimeren &blancos\tAlt+P", IDM_EDIT_COMPRESS_BLANKS + MENUITEM "Comprimeren &blancos\tCtrl+Alt+P", IDM_EDIT_COMPRESS_BLANKS MENUITEM SEPARATOR MENUITEM "&Wijzigen lijnen...\tAlt+M", IDM_EDIT_MODIFYLINES MENUITEM "Lijnen &uitlijnen...\tAlt+J", IDM_EDIT_ALIGN diff --git a/language/np3_pl_pl/menu_pl_pl.rc b/language/np3_pl_pl/menu_pl_pl.rc index 0fe81691e..666e945ca 100644 --- a/language/np3_pl_pl/menu_pl_pl.rc +++ b/language/np3_pl_pl/menu_pl_pl.rc @@ -200,11 +200,11 @@ BEGIN END MENUITEM "&Duplikuj zaznaczenie/wiersz\tCtrl+D", IDM_EDIT_DUPLINEORSELECTION MENUITEM SEPARATOR - MENUITEM "&Wyciel pustym miejscem\tAlt+B", IDM_EDIT_PADWITHSPACES - MENUITEM "Usu pierszy znak wiersza\tAlt+Z", IDM_EDIT_STRIP1STCHAR - MENUITEM "Usu ostatni znak wiersza\tAlt+U", IDM_EDIT_STRIPLASTCHAR - MENUITEM "Usu kocowe niewidoczne znaki\tAlt+W", IDM_EDIT_TRIMLINES - MENUITEM "Skompresuj niewidoczne znaki\tAlt+P", IDM_EDIT_COMPRESS_BLANKS + MENUITEM "&Wyciel pustym miejscem\tAlt+B", IDM_EDIT_PADWITHSPACES + MENUITEM "Usu pierszy znak wiersza\tAlt+Z", IDM_EDIT_STRIP1STCHAR + MENUITEM "Usu ostatni znak wiersza\tAlt+U", IDM_EDIT_STRIPLASTCHAR + MENUITEM "Usu kocowe niewidoczne znaki\tAlt+W", IDM_EDIT_TRIMLINES + MENUITEM "Skompresuj niewidoczne znaki\tCtrl+Alt+P", IDM_EDIT_COMPRESS_BLANKS MENUITEM SEPARATOR MENUITEM "&Modyfikuj wiersze...\tAlt+M", IDM_EDIT_MODIFYLINES MENUITEM "&Wyrwnaj wiersze...\tAlt+J", IDM_EDIT_ALIGN diff --git a/language/np3_pt_br/menu_pt_br.rc b/language/np3_pt_br/menu_pt_br.rc index c324ccaae..f9fb9a5f1 100644 --- a/language/np3_pt_br/menu_pt_br.rc +++ b/language/np3_pt_br/menu_pt_br.rc @@ -204,7 +204,7 @@ BEGIN MENUITEM "Strip &First Character\tAlt+Z", IDM_EDIT_STRIP1STCHAR MENUITEM "Strip &Last Character\tAlt+U", IDM_EDIT_STRIPLASTCHAR MENUITEM "Strip &Trailing Blanks\tAlt+W", IDM_EDIT_TRIMLINES - MENUITEM "Compress &Blanks\tAlt+P", IDM_EDIT_COMPRESS_BLANKS + MENUITEM "Compress &Blanks\tCtrl+Alt+P", IDM_EDIT_COMPRESS_BLANKS MENUITEM SEPARATOR MENUITEM "&Modify Lines...\tAlt+M", IDM_EDIT_MODIFYLINES MENUITEM "&Align Lines...\tAlt+J", IDM_EDIT_ALIGN diff --git a/language/np3_ru_ru/menu_ru_ru.rc b/language/np3_ru_ru/menu_ru_ru.rc index 7de467046..5bc9a3a75 100644 --- a/language/np3_ru_ru/menu_ru_ru.rc +++ b/language/np3_ru_ru/menu_ru_ru.rc @@ -204,7 +204,7 @@ BEGIN MENUITEM " \tAlt+Z", IDM_EDIT_STRIP1STCHAR MENUITEM " \tAlt+U", IDM_EDIT_STRIPLASTCHAR MENUITEM " \tAlt+W", IDM_EDIT_TRIMLINES - MENUITEM " \tAlt+P", IDM_EDIT_COMPRESS_BLANKS + MENUITEM " \tCtrl+Alt+P", IDM_EDIT_COMPRESS_BLANKS MENUITEM SEPARATOR MENUITEM "& ...\tAlt+M", IDM_EDIT_MODIFYLINES MENUITEM "& ...\tAlt+J", IDM_EDIT_ALIGN diff --git a/language/np3_zh_cn/menu_zh_cn.rc b/language/np3_zh_cn/menu_zh_cn.rc index 743e4b0e8..7f369dd1e 100644 --- a/language/np3_zh_cn/menu_zh_cn.rc +++ b/language/np3_zh_cn/menu_zh_cn.rc @@ -200,11 +200,11 @@ BEGIN END MENUITEM "дѡ/(&D)\tCtrl+D", IDM_EDIT_DUPLINEORSELECTION MENUITEM SEPARATOR - MENUITEM "ո(&P)\tAlt+B", IDM_EDIT_PADWITHSPACES + MENUITEM "ո(&P)\tAlt+B", IDM_EDIT_PADWITHSPACES MENUITEM "ɾһַ(&F)\tAlt+Z", IDM_EDIT_STRIP1STCHAR MENUITEM "ɾһַ(&L)\tAlt+U", IDM_EDIT_STRIPLASTCHAR - MENUITEM "ɾβո(&T)\tAlt+W", IDM_EDIT_TRIMLINES - MENUITEM "ѹհַ(&W)\tAlt+P", IDM_EDIT_COMPRESS_BLANKS + MENUITEM "ɾβո(&T)\tAlt+W", IDM_EDIT_TRIMLINES + MENUITEM "ѹհַ(&W)\tCtrl+Alt+P", IDM_EDIT_COMPRESS_BLANKS MENUITEM SEPARATOR MENUITEM "޸(&M)...\tAlt+M", IDM_EDIT_MODIFYLINES MENUITEM "(&A)...\tAlt+J", IDM_EDIT_ALIGN diff --git a/src/Helpers.h b/src/Helpers.h index a502f6a10..b4f707ee9 100644 --- a/src/Helpers.h +++ b/src/Helpers.h @@ -311,6 +311,9 @@ inline bool IsButtonUnchecked(HWND hwnd, int iButtonID) { return (IsDlgButtonChe #define EnableCmd(hmenu,id,b) EnableMenuItem((hmenu),(id),(b)?MF_BYCOMMAND|MF_ENABLED:MF_BYCOMMAND|MF_GRAYED) #define CheckCmd(hmenu,id,b) CheckMenuItem((hmenu),(id),(b)?MF_BYCOMMAND|MF_CHECKED:MF_BYCOMMAND|MF_UNCHECKED) +#define EnableTool(htbar,id,b) SendMessage(htbar,TB_ENABLEBUTTON,id, MAKELONG(((b) ? 1 : 0), 0)) +#define CheckTool(htbar,id,b) SendMessage(htbar,TB_CHECKBUTTON,id, MAKELONG((b),0)) + #define EnableCmdPos(hmenu,pos,b) EnableMenuItem((hmenu),(pos),(b)?MF_BYPOSITION|MF_ENABLED:MF_BYPOSITION|MF_GRAYED) #define CheckCmdPos(hmenu,pos,b) CheckMenuItem((hmenu),(pos),(b)?MF_BYPOSITION|MF_CHECKED:MF_BYPOSITION|MF_UNCHECKED) diff --git a/src/Notepad3.c b/src/Notepad3.c index 38450e1ae..4f1159167 100644 --- a/src/Notepad3.c +++ b/src/Notepad3.c @@ -70,7 +70,6 @@ static WCHAR s_wchWndClass[16] = _W(SAPPNAME); static HWND s_hwndEditFrame = NULL; static HWND s_hwndNextCBChain = NULL; -static HWND s_hwndToolbar = NULL; static HWND s_hwndReBar = NULL; static WCHAR s_wchTmpFilePath[MAX_PATH] = { L'\0' }; @@ -532,6 +531,8 @@ typedef struct _lng_menu_t { const WCHAR* MenuItem; } LNG_MENU_T; +static HMENU s_hmenuLanguage = NULL; + #include "../language/language_menus.hpp" static bool _InsertLanguageMenu(HMENU hMenuBar) @@ -541,7 +542,8 @@ static bool _InsertLanguageMenu(HMENU hMenuBar) return false; } - HMENU hmenuLanguage = CreatePopupMenu(); + if (s_hmenuLanguage) { DestroyMenu(s_hmenuLanguage); } + s_hmenuLanguage = CreatePopupMenu(); WCHAR wchMenuItemFmt[128] = L"%s"; WCHAR wchMenuItemStrg[196] = { L'\0' }; @@ -559,7 +561,7 @@ static bool _InsertLanguageMenu(HMENU hMenuBar) } StringCchPrintfW(wchMenuItemStrg, COUNTOF(wchMenuItemStrg), wchMenuItemFmt, MUI_LanguageDLLs[lng].szLocaleName); - AppendMenu(hmenuLanguage, MF_ENABLED | MF_STRING, MUI_LanguageDLLs[lng].rid, wchMenuItemStrg); + AppendMenu(s_hmenuLanguage, MF_ENABLED | MF_STRING, MUI_LanguageDLLs[lng].rid, wchMenuItemStrg); } } @@ -567,8 +569,8 @@ static bool _InsertLanguageMenu(HMENU hMenuBar) int const pos = GetMenuItemCount(hMenuBar) - 1; if (pos >= 0) { GetLngString(IDS_MUI_MENU_LANGUAGE, wchMenuItemStrg, COUNTOF(wchMenuItemStrg)); - //return InsertMenu(hMenuBar, pos, MF_BYPOSITION | MF_POPUP | MF_STRING, (UINT_PTR)hmenuLanguage, wchMenuItemStrg); - bool const res = InsertMenu(hMenuBar, IDM_VIEW_TABSASSPACES, MF_BYCOMMAND | MF_POPUP | MF_STRING, (UINT_PTR)hmenuLanguage, wchMenuItemStrg); + //return InsertMenu(hMenuBar, pos, MF_BYPOSITION | MF_POPUP | MF_STRING, (UINT_PTR)s_hmenuLanguage, wchMenuItemStrg); + bool const res = InsertMenu(hMenuBar, IDM_VIEW_TABSASSPACES, MF_BYCOMMAND | MF_POPUP | MF_STRING, (UINT_PTR)s_hmenuLanguage, wchMenuItemStrg); InsertMenu(hMenuBar, IDM_VIEW_TABSASSPACES, MF_BYCOMMAND | MF_SEPARATOR, (UINT_PTR)NULL, NULL); return res; } @@ -1801,7 +1803,7 @@ LRESULT MsgCreate(HWND hwnd, WPARAM wParam,LPARAM lParam) MRU_Load(Globals.pMRUreplace); if (Globals.hwndEdit == NULL || s_hwndEditFrame == NULL || - Globals.hwndStatus == NULL || s_hwndToolbar == NULL || s_hwndReBar == NULL) + Globals.hwndStatus == NULL || Globals.hwndToolbar == NULL || s_hwndReBar == NULL) return -1LL; Style_SetDefaultLexer(Globals.hwndEdit); @@ -1920,12 +1922,12 @@ void CreateBars(HWND hwnd, HINSTANCE hInstance) { DWORD dwToolbarStyle = NP3_WS_TOOLBAR; - if (s_hwndToolbar) { DestroyWindow(s_hwndToolbar); } + if (Globals.hwndToolbar) { DestroyWindow(Globals.hwndToolbar); } - s_hwndToolbar = CreateWindowEx(0,TOOLBARCLASSNAME,NULL,dwToolbarStyle, + Globals.hwndToolbar = CreateWindowEx(0,TOOLBARCLASSNAME,NULL,dwToolbarStyle, 0,0,0,0,hwnd,(HMENU)IDC_TOOLBAR,hInstance,NULL); - SendMessage(s_hwndToolbar,TB_BUTTONSTRUCTSIZE,(WPARAM)sizeof(TBBUTTON),0); + SendMessage(Globals.hwndToolbar,TB_BUTTONSTRUCTSIZE,(WPARAM)sizeof(TBBUTTON),0); // Add Toolbar Bitmap HBITMAP hbmp = NULL; @@ -1966,7 +1968,7 @@ void CreateBars(HWND hwnd, HINSTANCE hInstance) HIMAGELIST himlOld = NULL; BUTTON_IMAGELIST bi; - if (SendMessage(s_hwndToolbar, TB_GETIMAGELIST, 0, (LPARAM)&bi)) { + if (SendMessage(Globals.hwndToolbar, TB_GETIMAGELIST, 0, (LPARAM)&bi)) { himlOld = bi.himl; } @@ -1979,7 +1981,7 @@ void CreateBars(HWND hwnd, HINSTANCE hInstance) ImageList_AddMasked(himl,hbmp,CLR_DEFAULT); DeleteObject(hbmp); hbmp = NULL; - SendMessage(s_hwndToolbar,TB_SETIMAGELIST,0,(LPARAM)himl); + SendMessage(Globals.hwndToolbar,TB_SETIMAGELIST,0,(LPARAM)himl); if (himlOld) { ImageList_Destroy(himlOld); himlOld = NULL; @@ -2008,7 +2010,7 @@ void CreateBars(HWND hwnd, HINSTANCE hInstance) LPWSTR toolBarIntRes = (s_iToolBarTheme == 0) ? MAKEINTRESOURCE(IDR_MAINWNDTBHOT) : MAKEINTRESOURCE(IDR_MAINWNDTB2HOT); hbmp = LoadImage(hInstance, toolBarIntRes, IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION); } - if (SendMessage(s_hwndToolbar, TB_GETHOTIMAGELIST, 0, (LPARAM)& bi)) { + if (SendMessage(Globals.hwndToolbar, TB_GETHOTIMAGELIST, 0, (LPARAM)& bi)) { himlOld = bi.himl; } if (hbmp) { @@ -2023,10 +2025,10 @@ void CreateBars(HWND hwnd, HINSTANCE hInstance) ImageList_AddMasked(himl, hbmp, CLR_DEFAULT); DeleteObject(hbmp); hbmp = NULL; - SendMessage(s_hwndToolbar, TB_SETHOTIMAGELIST, 0, (LPARAM)himl); + SendMessage(Globals.hwndToolbar, TB_SETHOTIMAGELIST, 0, (LPARAM)himl); } else { // clear the old one - SendMessage(s_hwndToolbar, TB_SETHOTIMAGELIST, 0, 0); + SendMessage(Globals.hwndToolbar, TB_SETHOTIMAGELIST, 0, 0); } if (himlOld) { ImageList_Destroy(himlOld); @@ -2055,7 +2057,7 @@ void CreateBars(HWND hwnd, HINSTANCE hInstance) LPWSTR toolBarIntRes = (s_iToolBarTheme == 0) ? MAKEINTRESOURCE(IDR_MAINWNDTBDIS) : MAKEINTRESOURCE(IDR_MAINWNDTB2DIS); hbmp = LoadImage(hInstance, toolBarIntRes, IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION); } - if (SendMessage(s_hwndToolbar, TB_GETDISABLEDIMAGELIST, 0, (LPARAM)& bi)) { + if (SendMessage(Globals.hwndToolbar, TB_GETDISABLEDIMAGELIST, 0, (LPARAM)& bi)) { himlOld = bi.himl; } if (hbmp) { @@ -2070,7 +2072,7 @@ void CreateBars(HWND hwnd, HINSTANCE hInstance) ImageList_AddMasked(himl, hbmp, CLR_DEFAULT); DeleteObject(hbmp); hbmp = NULL; - SendMessage(s_hwndToolbar, TB_SETDISABLEDIMAGELIST, 0, (LPARAM)himl); + SendMessage(Globals.hwndToolbar, TB_SETDISABLEDIMAGELIST, 0, (LPARAM)himl); } else { // create disabled Toolbar, no external bitmap is supplied @@ -2087,12 +2089,12 @@ void CreateBars(HWND hwnd, HINSTANCE hInstance) BitmapMergeAlpha(hbmpCopy, GetSysColor(COLOR_3DFACE)); } if (fProcessed) { - if (SendMessage(s_hwndToolbar, TB_GETDISABLEDIMAGELIST, 0, (LPARAM)& bi)) { + if (SendMessage(Globals.hwndToolbar, TB_GETDISABLEDIMAGELIST, 0, (LPARAM)& bi)) { himlOld = bi.himl; } himl = ImageList_Create(cx, cy, ILC_COLOR32 | ILC_MASK, 0, 0); ImageList_AddMasked(himl, hbmpCopy, CLR_DEFAULT); - SendMessage(s_hwndToolbar, TB_SETDISABLEDIMAGELIST, 0, (LPARAM)himl); + SendMessage(Globals.hwndToolbar, TB_SETDISABLEDIMAGELIST, 0, (LPARAM)himl); } } } @@ -2121,31 +2123,31 @@ void CreateBars(HWND hwnd, HINSTANCE hInstance) StringCchPrintf(tchIndex, COUNTOF(tchIndex), L"%02i", n); if (IniSectionGetString(pIniSection, tchIndex, L"", tchDesc, COUNTOF(tchDesc)) > 0) { - s_tbbMainWnd[i].iString = SendMessage(s_hwndToolbar, TB_ADDSTRING, 0, (LPARAM)tchDesc); + s_tbbMainWnd[i].iString = SendMessage(Globals.hwndToolbar, TB_ADDSTRING, 0, (LPARAM)tchDesc); s_tbbMainWnd[i].fsStyle |= BTNS_AUTOSIZE | BTNS_SHOWTEXT; } else { GetLngString(s_tbbMainWnd[i].idCommand, tchDesc, COUNTOF(tchDesc)); - s_tbbMainWnd[i].iString = SendMessage(s_hwndToolbar, TB_ADDSTRING, 0, (LPARAM)tchDesc); // tooltip + s_tbbMainWnd[i].iString = SendMessage(Globals.hwndToolbar, TB_ADDSTRING, 0, (LPARAM)tchDesc); // tooltip s_tbbMainWnd[i].fsStyle &= ~(BTNS_AUTOSIZE | BTNS_SHOWTEXT); } } FreeMem(pIniSection); } - //~SendMessage(s_hwndToolbar, TB_SETMAXTEXTROWS, 0, 0); + //~SendMessage(Globals.hwndToolbar, TB_SETMAXTEXTROWS, 0, 0); - SendMessage(s_hwndToolbar,TB_SETEXTENDEDSTYLE,0, - (SendMessage(s_hwndToolbar,TB_GETEXTENDEDSTYLE,0,0) | (TBSTYLE_EX_MIXEDBUTTONS | TBSTYLE_EX_DOUBLEBUFFER))); + SendMessage(Globals.hwndToolbar,TB_SETEXTENDEDSTYLE,0, + (SendMessage(Globals.hwndToolbar,TB_GETEXTENDEDSTYLE,0,0) | (TBSTYLE_EX_MIXEDBUTTONS | TBSTYLE_EX_DOUBLEBUFFER))); - SendMessage(s_hwndToolbar, TB_ADDBUTTONS, COUNTOF(s_tbbMainWnd), (LPARAM)s_tbbMainWnd); + SendMessage(Globals.hwndToolbar, TB_ADDBUTTONS, COUNTOF(s_tbbMainWnd), (LPARAM)s_tbbMainWnd); - if (Toolbar_SetButtons(s_hwndToolbar, IDT_FILE_NEW, Settings.ToolbarButtons, s_tbbMainWnd, COUNTOF(s_tbbMainWnd)) == 0) { - SendMessage(s_hwndToolbar, TB_ADDBUTTONS, COUNTOF(s_tbbMainWnd), (LPARAM)s_tbbMainWnd); + if (Toolbar_SetButtons(Globals.hwndToolbar, IDT_FILE_NEW, Settings.ToolbarButtons, s_tbbMainWnd, COUNTOF(s_tbbMainWnd)) == 0) { + SendMessage(Globals.hwndToolbar, TB_ADDBUTTONS, COUNTOF(s_tbbMainWnd), (LPARAM)s_tbbMainWnd); } RECT rc; - SendMessage(s_hwndToolbar,TB_GETITEMRECT,0,(LPARAM)&rc); - //SendMessage(s_hwndToolbar,TB_SETINDENT,2,0); + SendMessage(Globals.hwndToolbar,TB_GETITEMRECT,0,(LPARAM)&rc); + //SendMessage(Globals.hwndToolbar,TB_SETINDENT,2,0); // Create Statusbar @@ -2180,7 +2182,7 @@ void CreateBars(HWND hwnd, HINSTANCE hInstance) rbBand.fStyle = s_bIsAppThemed ? (RBBS_FIXEDSIZE | RBBS_CHILDEDGE) : RBBS_FIXEDSIZE; rbBand.hbmBack = NULL; rbBand.lpText = L"Toolbar"; - rbBand.hwndChild = s_hwndToolbar; + rbBand.hwndChild = Globals.hwndToolbar; rbBand.cxMinChild = (rc.right - rc.left) * COUNTOF(s_tbbMainWnd); rbBand.cyMinChild = (rc.bottom - rc.top) + 2 * rc.top; rbBand.cx = 0; @@ -2231,7 +2233,7 @@ LRESULT MsgEndSession(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam) DestroyWindow(Globals.hwndDlgCustomizeSchemes); } - // call SaveSettings() when s_hwndToolbar is still valid + // call SaveSettings() when Globals.hwndToolbar is still valid SaveSettings(false); if (StrIsNotEmpty(Globals.IniFile)) @@ -2303,7 +2305,7 @@ LRESULT MsgDPIChanged(HWND hwnd, WPARAM wParam, LPARAM lParam) SciCall_GotoPos(pos); // recreate toolbar and statusbar - Toolbar_GetButtons(s_hwndToolbar, IDT_FILE_NEW, Settings.ToolbarButtons, COUNTOF(Settings.ToolbarButtons)); + Toolbar_GetButtons(Globals.hwndToolbar, IDT_FILE_NEW, Settings.ToolbarButtons, COUNTOF(Settings.ToolbarButtons)); CreateBars(hwnd, Globals.hInstance); @@ -2367,7 +2369,7 @@ LRESULT MsgThemeChanged(HWND hwnd, WPARAM wParam ,LPARAM lParam) } // recreate toolbar and statusbar - Toolbar_GetButtons(s_hwndToolbar,IDT_FILE_NEW,Settings.ToolbarButtons,COUNTOF(Settings.ToolbarButtons)); + Toolbar_GetButtons(Globals.hwndToolbar,IDT_FILE_NEW,Settings.ToolbarButtons,COUNTOF(Settings.ToolbarButtons)); CreateBars(hwnd,hInstance); @@ -2403,13 +2405,13 @@ LRESULT MsgSize(HWND hwnd, WPARAM wParam, LPARAM lParam) if (Settings.ShowToolbar) { -/* SendMessage(s_hwndToolbar,WM_SIZE,0,0); +/* SendMessage(Globals.hwndToolbar,WM_SIZE,0,0); RECT rc; - GetWindowRect(s_hwndToolbar,&rc); + GetWindowRect(Globals.hwndToolbar,&rc); y = (rc.bottom - rc.top); cy -= (rc.bottom - rc.top);*/ - //SendMessage(s_hwndToolbar,TB_GETITEMRECT,0,(LPARAM)&rc); + //SendMessage(Globals.hwndToolbar,TB_GETITEMRECT,0,(LPARAM)&rc); SetWindowPos(s_hwndReBar,NULL,0,0,LOWORD(lParam),s_cyReBar,SWP_NOZORDER); // the ReBar automatically sets the correct height // calling SetWindowPos() with the height of one toolbar button @@ -5155,7 +5157,7 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam) break; case IDM_VIEW_CUSTOMIZETB: - SendMessage(s_hwndToolbar,TB_CUSTOMIZE,0,0); + SendMessage(Globals.hwndToolbar,TB_CUSTOMIZE,0,0); break; case IDM_VIEW_LOADTHEMETB: @@ -6863,11 +6865,11 @@ LRESULT MsgNotify(HWND hwnd, WPARAM wParam, LPARAM lParam) case TBN_RESET: { - int i; int c = (int)SendMessage(s_hwndToolbar, TB_BUTTONCOUNT, 0, 0); + int i; int c = (int)SendMessage(Globals.hwndToolbar, TB_BUTTONCOUNT, 0, 0); for (i = 0; i < c; i++) { - SendMessage(s_hwndToolbar, TB_DELETEBUTTON, 0, 0); + SendMessage(Globals.hwndToolbar, TB_DELETEBUTTON, 0, 0); } - SendMessage(s_hwndToolbar, TB_ADDBUTTONS, COUNTOF(s_tbbMainWnd), (LPARAM)s_tbbMainWnd); + SendMessage(Globals.hwndToolbar, TB_ADDBUTTONS, COUNTOF(s_tbbMainWnd), (LPARAM)s_tbbMainWnd); } return FALSE; @@ -7730,7 +7732,7 @@ void SaveSettings(bool bSaveSettingsNow) ///~IniSectionSetInt(pIniSection, L"IMEInteraction", Settings2.IMEInteraction); - Toolbar_GetButtons(s_hwndToolbar, IDT_FILE_NEW, Settings.ToolbarButtons, COUNTOF(Settings.ToolbarButtons)); + Toolbar_GetButtons(Globals.hwndToolbar, IDT_FILE_NEW, Settings.ToolbarButtons, COUNTOF(Settings.ToolbarButtons)); if (StringCchCompareX(Settings.ToolbarButtons, Defaults.ToolbarButtons) == 0) { IniSectionSetString(pIniSection, L"ToolbarButtons", NULL); } else { @@ -8560,9 +8562,6 @@ void UpdateToolbar() //============================================================================= -#define EnableTool(id,b) SendMessage(s_hwndToolbar,TB_ENABLEBUTTON,id, MAKELONG(((b) ? 1 : 0), 0)) -#define CheckTool(id,b) SendMessage(s_hwndToolbar,TB_CHECKBUTTON,id, MAKELONG((b),0)) - static void _UpdateToolbarDelayed() { SetWindowTitle(Globals.hwndMain, s_uidsAppTitle, s_bIsElevated, IDS_MUI_UNTITLED, Globals.CurrentFile, @@ -8571,38 +8570,38 @@ static void _UpdateToolbarDelayed() if (!Settings.ShowToolbar) { return; } - EnableTool(IDT_FILE_ADDTOFAV, StringCchLenW(Globals.CurrentFile, COUNTOF(Globals.CurrentFile))); - EnableTool(IDT_FILE_SAVE, IsSaveNeeded(ISN_GET) /*&& !bReadOnly*/); - EnableTool(IDT_FILE_RECENT, (MRU_Count(Globals.pFileMRU) > 0)); + EnableTool(Globals.hwndToolbar, IDT_FILE_ADDTOFAV, StringCchLenW(Globals.CurrentFile, COUNTOF(Globals.CurrentFile))); + EnableTool(Globals.hwndToolbar, IDT_FILE_SAVE, IsSaveNeeded(ISN_GET) /*&& !bReadOnly*/); + EnableTool(Globals.hwndToolbar, IDT_FILE_RECENT, (MRU_Count(Globals.pFileMRU) > 0)); - CheckTool(IDT_VIEW_WORDWRAP, Globals.fvCurFile.bWordWrap); - CheckTool(IDT_VIEW_CHASING_DOCTAIL, FileWatching.MonitoringLog); - CheckTool(IDT_VIEW_PIN_ON_TOP, Settings.AlwaysOnTop); + CheckTool(Globals.hwndToolbar, IDT_VIEW_WORDWRAP, Globals.fvCurFile.bWordWrap); + CheckTool(Globals.hwndToolbar, IDT_VIEW_CHASING_DOCTAIL, FileWatching.MonitoringLog); + CheckTool(Globals.hwndToolbar, IDT_VIEW_PIN_ON_TOP, Settings.AlwaysOnTop); bool b1 = SciCall_IsSelectionEmpty(); bool b2 = (bool)(SciCall_GetTextLength() > 0); bool ro = SciCall_GetReadOnly(); bool tv = FocusedView.HideNonMatchedLines; - EnableTool(IDT_EDIT_UNDO, SciCall_CanUndo() && !ro); - EnableTool(IDT_EDIT_REDO, SciCall_CanRedo() && !ro); - EnableTool(IDT_EDIT_PASTE, SciCall_CanPaste() && !ro); + EnableTool(Globals.hwndToolbar, IDT_EDIT_UNDO, SciCall_CanUndo() && !ro); + EnableTool(Globals.hwndToolbar, IDT_EDIT_REDO, SciCall_CanRedo() && !ro); + EnableTool(Globals.hwndToolbar, IDT_EDIT_PASTE, SciCall_CanPaste() && !ro); - EnableTool(IDT_FILE_LAUNCH, b2); + EnableTool(Globals.hwndToolbar, IDT_FILE_LAUNCH, b2); - EnableTool(IDT_EDIT_FIND, b2); - //EnableTool(IDT_EDIT_FINDNEXT,b2); - //EnableTool(IDT_EDIT_FINDPREV,b2 && StringCchLenA(Settings.EFR_Data.szFind,0)); - EnableTool(IDT_EDIT_REPLACE, b2 && !ro); + EnableTool(Globals.hwndToolbar, IDT_EDIT_FIND, b2); + //EnableTool(Globals.hwndToolbar, ,b2); + //EnableTool(Globals.hwndToolbar, IDT_EDIT_FINDPREV,b2 && StringCchLenA(Settings.EFR_Data.szFind,0)); + EnableTool(Globals.hwndToolbar, IDT_EDIT_REPLACE, b2 && !ro); - EnableTool(IDT_EDIT_CUT, !b1 && !ro); - EnableTool(IDT_EDIT_COPY, !b1 && !ro); - EnableTool(IDT_EDIT_CLEAR, !b1 && !ro); + EnableTool(Globals.hwndToolbar, IDT_EDIT_CUT, !b1 && !ro); + EnableTool(Globals.hwndToolbar, IDT_EDIT_COPY, !b1 && !ro); + EnableTool(Globals.hwndToolbar, IDT_EDIT_CLEAR, !b1 && !ro); - EnableTool(IDT_VIEW_TOGGLEFOLDS, b2 && (FocusedView.CodeFoldingAvailable && FocusedView.ShowCodeFolding)); + EnableTool(Globals.hwndToolbar, IDT_VIEW_TOGGLEFOLDS, b2 && (FocusedView.CodeFoldingAvailable && FocusedView.ShowCodeFolding)); - EnableTool(IDT_VIEW_TOGGLE_VIEW, b2 && IsFocusedViewAllowed()); - CheckTool(IDT_VIEW_TOGGLE_VIEW, tv); + EnableTool(Globals.hwndToolbar, IDT_VIEW_TOGGLE_VIEW, b2 && IsFocusedViewAllowed()); + CheckTool(Globals.hwndToolbar, IDT_VIEW_TOGGLE_VIEW, tv); } diff --git a/src/Notepad3.rc b/src/Notepad3.rc index 59b55b2a0..7b99e6fb3 100644 --- a/src/Notepad3.rc +++ b/src/Notepad3.rc @@ -152,7 +152,7 @@ BEGIN "O", IDM_EDIT_SENTENCECASE, VIRTKEY, CONTROL, ALT, NOINVERT "O", CMD_RECODEOEM, VIRTKEY, SHIFT, CONTROL, NOINVERT "P", IDM_FILE_PRINT, VIRTKEY, CONTROL, NOINVERT - "P", IDM_EDIT_COMPRESS_BLANKS, VIRTKEY, ALT, NOINVERT + "P", IDM_EDIT_COMPRESS_BLANKS, VIRTKEY, CONTROL, ALT, NOINVERT "P", CMD_DEFAULTWINPOS, VIRTKEY, SHIFT, CONTROL, NOINVERT "Q", IDM_EDIT_LINECOMMENT, VIRTKEY, CONTROL, NOINVERT "Q", IDM_EDIT_ENCLOSESELECTION, VIRTKEY, ALT, NOINVERT diff --git a/src/Styles.c b/src/Styles.c index b6c0dc450..2f77d3e21 100644 --- a/src/Styles.c +++ b/src/Styles.c @@ -256,10 +256,13 @@ void Style_SetIniFile(LPCWSTR szIniFile) // // Style_InsertThemesMenu() // +static HMENU s_hmenuThemes = NULL; + bool Style_InsertThemesMenu(HMENU hMenuBar) { - HMENU hmenuThemes = CreatePopupMenu(); - //int const pos = GetMenuItemCount(hMenuBar) - 1; + if (s_hmenuThemes) { DestroyMenu(s_hmenuThemes); } + s_hmenuThemes = CreatePopupMenu(); + //int const pos = GetMenuItemCount(hMenuBar) - 2; GetLngString(Theme_Files[0].rid, Theme_Files[0].szName, COUNTOF(Theme_Files[0].szName)); GetLngString(Theme_Files[1].rid, Theme_Files[1].szName, COUNTOF(Theme_Files[1].szName)); @@ -267,10 +270,10 @@ bool Style_InsertThemesMenu(HMENU hMenuBar) for (unsigned i = 0; i < ThemeItems_CountOf(); ++i) { if (i == 2) { - AppendMenu(hmenuThemes, MF_SEPARATOR, 0, 0); + AppendMenu(s_hmenuThemes, MF_SEPARATOR, 0, 0); } if (Theme_Files[i].rid > 0) { - AppendMenu(hmenuThemes, MF_ENABLED | MF_STRING, Theme_Files[i].rid, Theme_Files[i].szName); + AppendMenu(s_hmenuThemes, MF_ENABLED | MF_STRING, Theme_Files[i].rid, Theme_Files[i].szName); } else { break; // done @@ -281,8 +284,8 @@ bool Style_InsertThemesMenu(HMENU hMenuBar) WCHAR wchMenuItemStrg[80] = { L'\0' }; GetLngString(IDS_MUI_MENU_THEMES, wchMenuItemStrg, COUNTOF(wchMenuItemStrg)); - //bool const res = InsertMenu(hMenuBar, pos, MF_BYPOSITION | MF_POPUP | MF_STRING, (UINT_PTR)hmenuThemes, wchMenuItemStrg); - bool const res = InsertMenu(hMenuBar, IDM_VIEW_SCHEMECONFIG, MF_BYCOMMAND | MF_POPUP | MF_STRING, (UINT_PTR)hmenuThemes, wchMenuItemStrg); + //bool const res = InsertMenu(hMenuBar, pos, MF_BYPOSITION | MF_POPUP | MF_STRING, (UINT_PTR)s_hmenuThemes, wchMenuItemStrg); + bool const res = InsertMenu(hMenuBar, IDM_VIEW_SCHEMECONFIG, MF_BYCOMMAND | MF_POPUP | MF_STRING, (UINT_PTR)s_hmenuThemes, wchMenuItemStrg); CheckCmd(hMenuBar, Theme_Files[s_idxSelectedTheme].rid, true); @@ -300,6 +303,12 @@ bool Style_InsertThemesMenu(HMENU hMenuBar) // Style_DynamicThemesMenuCmd() - Handles IDS_MUI_MENU_THEMES messages // // +static void _EnableSchemeConfig(const bool bEnable) +{ + EnableCmd(GetMenu(Globals.hwndMain), IDM_VIEW_SCHEMECONFIG, bEnable); + EnableTool(Globals.hwndToolbar, IDT_VIEW_SCHEMECONFIG, bEnable); +} + void Style_DynamicThemesMenuCmd(int cmd, bool bEnableSaveSettings) { unsigned const iThemeIdx = (unsigned)(cmd - IDM_THEMES_DEFAULT); // consecutive IDs @@ -313,7 +322,7 @@ void Style_DynamicThemesMenuCmd(int cmd, bool bEnableSaveSettings) if (Settings.SaveSettings) { if (s_idxSelectedTheme == 0) { - // nothing to do: internal defaults + // internal defaults } else if (s_idxSelectedTheme == 1) { if (bEnableSaveSettings) { @@ -348,6 +357,7 @@ void Style_DynamicThemesMenuCmd(int cmd, bool bEnableSaveSettings) Style_ResetCurrentLexer(Globals.hwndEdit); SendWMSize(Globals.hwndMain, NULL); UpdateUI(); + _EnableSchemeConfig(s_idxSelectedTheme != 0); UpdateAllBars(true); } @@ -671,9 +681,10 @@ bool Style_Export(HWND hwnd) // DWORD Style_ExportToFile(const WCHAR* szFile, bool bForceAll) { - if (StrIsEmpty(szFile)) { - InfoBoxLng(MB_ICONWARNING, NULL, IDS_MUI_SETTINGSNOTSAVED); + if (s_idxSelectedTheme != 0) { + InfoBoxLng(MB_ICONWARNING, NULL, IDS_MUI_SETTINGSNOTSAVED); + } return false; } @@ -971,14 +982,13 @@ void Style_SetLexer(HWND hwnd, PEDITLEXER pLexNew) if (IsLexerStandard(pLexNew)) { - // styles ar already set - EnableCmd(GetMenu(Globals.hwndMain), IDM_VIEW_CURRENTSCHEME, false); + // styles are already set + EnableCmd(GetMenu(Globals.hwndMain), IDM_VIEW_CURRENTSCHEME, true); } else { // merge lexer default styles Style_SetStyles(hwnd, STYLE_DEFAULT, wchNewLexerStyleStrg, false); - - EnableCmd(GetMenu(Globals.hwndMain), IDM_VIEW_CURRENTSCHEME, true && !IsWindow(Globals.hwndDlgCustomizeSchemes)); + EnableCmd(GetMenu(Globals.hwndMain), IDM_VIEW_CURRENTSCHEME, !IsWindow(Globals.hwndDlgCustomizeSchemes)); } // Broadcast STYLE_DEFAULT as base style to all other styles diff --git a/src/TypeDefs.h b/src/TypeDefs.h index 3f0237d94..0554dcb5d 100644 --- a/src/TypeDefs.h +++ b/src/TypeDefs.h @@ -284,6 +284,7 @@ typedef struct _globals_t HANDLE hndlProcessHeap; HWND hwndEdit; HANDLE hndlScintilla; + HANDLE hwndToolbar; HWND hwndStatus; DWORD dwLastError; HMENU hMainMenu;