diff --git a/language/common_res.h b/language/common_res.h index 3dae9c6ad..fce50948a 100644 --- a/language/common_res.h +++ b/language/common_res.h @@ -660,13 +660,17 @@ #define IDM_VIEW_EVALTINYEXPRONSEL 40478 #define IDM_VIEW_UNICODE_POINTS 40479 -#define IDM_SET_RENDER_TECH_DEFAULT 40500 -#define IDM_SET_RENDER_TECH_D2D 40501 -#define IDM_SET_RENDER_TECH_D2DRETAIN 40502 -#define IDM_SET_RENDER_TECH_D2DDC 40503 -#define IDM_SET_BIDIRECTIONAL_NONE 40504 -#define IDM_SET_BIDIRECTIONAL_L2R 40505 -#define IDM_SET_BIDIRECTIONAL_R2L 40506 +// keep Scintilla(SC) order +#define IDM_SET_RENDER_TECH_GDI 40500 // SC_TECHNOLOGY_DEFAULT(0) +#define IDM_SET_RENDER_TECH_D2D 40501 // SC_TECHNOLOGY_DIRECTWRITE(1) +#define IDM_SET_RENDER_TECH_D2DRETAIN 40502 // SC_TECHNOLOGY_DIRECTWRITERETAIN(2) +#define IDM_SET_RENDER_TECH_D2DDC 40503 // SC_TECHNOLOGY_DIRECTWRITEDC(3) +#define IDM_SET_RTL_LAYOUT_EDIT 40504 +#define IDM_SET_RTL_LAYOUT_DLG 40505 +// keep Scintilla(SC) order +#define IDM_SET_BIDIRECTIONAL_NONE 40506 // SC_BIDIRECTIONAL_DISABLED(0) +#define IDM_SET_BIDIRECTIONAL_L2R 40507 // SC_BIDIRECTIONAL_L2R(1) +#define IDM_SET_BIDIRECTIONAL_R2L 40508 // SC_BIDIRECTIONAL_R2L(2) #define IDM_HELP_ABOUT 40600 #define IDM_HELP_CMD 40601 diff --git a/language/np3_af_za/menu_af_za.rc b/language/np3_af_za/menu_af_za.rc index 3911f81b3..78630afe1 100644 --- a/language/np3_af_za/menu_af_za.rc +++ b/language/np3_af_za/menu_af_za.rc @@ -465,7 +465,7 @@ BEGIN MENUITEM "DirectWrite (&Direct2D)", IDM_SET_RENDER_TECH_D2D MENUITEM "DirectWrite &Behou", IDM_SET_RENDER_TECH_D2DRETAIN MENUITEM "Direct&Write GDI DC", IDM_SET_RENDER_TECH_D2DDC - MENUITEM "&GDI (Geen ligature nie)", IDM_SET_RENDER_TECH_DEFAULT + MENUITEM "&GDI (Geen ligature nie)", IDM_SET_RENDER_TECH_GDI END POPUP "Bidirectionele" BEGIN diff --git a/language/np3_be_by/menu_be_by.rc b/language/np3_be_by/menu_be_by.rc index 6066c6c6d..307a85a7b 100644 --- a/language/np3_be_by/menu_be_by.rc +++ b/language/np3_be_by/menu_be_by.rc @@ -465,7 +465,7 @@ BEGIN MENUITEM "DirectWrite (&Direct2D)", IDM_SET_RENDER_TECH_D2D MENUITEM "DirectWrite &Retain", IDM_SET_RENDER_TECH_D2DRETAIN MENUITEM "Direct&Write GDI DC", IDM_SET_RENDER_TECH_D2DDC - MENUITEM "&GDI (без лігатураў)", IDM_SET_RENDER_TECH_DEFAULT + MENUITEM "&GDI (без лігатураў)", IDM_SET_RENDER_TECH_GDI END POPUP "&Накіраванне пісьма" BEGIN diff --git a/language/np3_de_de/menu_de_de.rc b/language/np3_de_de/menu_de_de.rc index e181ac8a0..e2de03191 100644 --- a/language/np3_de_de/menu_de_de.rc +++ b/language/np3_de_de/menu_de_de.rc @@ -465,7 +465,12 @@ BEGIN MENUITEM "&DirectWrite (Direct2D)", IDM_SET_RENDER_TECH_D2D MENUITEM "DirectWrite &Retain", IDM_SET_RENDER_TECH_D2DRETAIN MENUITEM "Direct&Write GDI DC", IDM_SET_RENDER_TECH_D2DDC - MENUITEM "&GDI (keine Ligaturen)", IDM_SET_RENDER_TECH_DEFAULT + MENUITEM "&GDI (keine Ligaturen)", IDM_SET_RENDER_TECH_GDI + END + POPUP "&RTL Layout (GDI)" + BEGIN + MENUITEM "&Editor Bereich", IDM_SET_RTL_LAYOUT_EDIT + MENUITEM "&Andere Dialoge", IDM_SET_RTL_LAYOUT_DLG END POPUP "&Bidirektional" BEGIN diff --git a/language/np3_en_gb/menu_en_gb.rc b/language/np3_en_gb/menu_en_gb.rc index 2d5b65b10..f66a8076b 100644 --- a/language/np3_en_gb/menu_en_gb.rc +++ b/language/np3_en_gb/menu_en_gb.rc @@ -465,7 +465,7 @@ BEGIN MENUITEM "DirectWrite (&Direct2D)", IDM_SET_RENDER_TECH_D2D MENUITEM "DirectWrite &Retain", IDM_SET_RENDER_TECH_D2DRETAIN MENUITEM "Direct&Write GDI DC", IDM_SET_RENDER_TECH_D2DDC - MENUITEM "&GDI (no ligatures)", IDM_SET_RENDER_TECH_DEFAULT + MENUITEM "&GDI (no ligatures)", IDM_SET_RENDER_TECH_GDI END POPUP "Bidirectional" BEGIN diff --git a/language/np3_en_us/menu_en_us.rc b/language/np3_en_us/menu_en_us.rc index 00075d898..439416509 100644 --- a/language/np3_en_us/menu_en_us.rc +++ b/language/np3_en_us/menu_en_us.rc @@ -465,13 +465,18 @@ BEGIN MENUITEM "DirectWrite (&Direct2D)", IDM_SET_RENDER_TECH_D2D MENUITEM "DirectWrite &Retain", IDM_SET_RENDER_TECH_D2DRETAIN MENUITEM "Direct&Write GDI DC", IDM_SET_RENDER_TECH_D2DDC - MENUITEM "&GDI (no ligatures)", IDM_SET_RENDER_TECH_DEFAULT + MENUITEM "&GDI (no ligatures)", IDM_SET_RENDER_TECH_GDI + END + POPUP "&RTL Layout (GDI)" + BEGIN + MENUITEM "&Edit Area", IDM_SET_RTL_LAYOUT_EDIT + MENUITEM "&Other Dialogs", IDM_SET_RTL_LAYOUT_DLG END POPUP "Bidirectional" BEGIN - MENUITEM "None", IDM_SET_BIDIRECTIONAL_NONE - MENUITEM "Left to Right", IDM_SET_BIDIRECTIONAL_L2R - MENUITEM "Right to Left", IDM_SET_BIDIRECTIONAL_R2L + MENUITEM "&None", IDM_SET_BIDIRECTIONAL_NONE + MENUITEM "&Left to Right", IDM_SET_BIDIRECTIONAL_L2R + MENUITEM "&Right to Left", IDM_SET_BIDIRECTIONAL_R2L END END POPUP "&Advanced Configuration" diff --git a/language/np3_es_es/menu_es_es.rc b/language/np3_es_es/menu_es_es.rc index d81e39750..f61c7fc5b 100644 --- a/language/np3_es_es/menu_es_es.rc +++ b/language/np3_es_es/menu_es_es.rc @@ -465,7 +465,7 @@ BEGIN MENUITEM "DirectWrite (&Direct2D)", IDM_SET_RENDER_TECH_D2D MENUITEM "DirectWrite &Retain", IDM_SET_RENDER_TECH_D2DRETAIN MENUITEM "Direct&Write GDI DC", IDM_SET_RENDER_TECH_D2DDC - MENUITEM "&GDI (sin ligaduras)", IDM_SET_RENDER_TECH_DEFAULT + MENUITEM "&GDI (sin ligaduras)", IDM_SET_RENDER_TECH_GDI END POPUP "&Bidireccional" BEGIN diff --git a/language/np3_es_mx/menu_es_mx.rc b/language/np3_es_mx/menu_es_mx.rc index 400095b7f..c71bb920f 100644 --- a/language/np3_es_mx/menu_es_mx.rc +++ b/language/np3_es_mx/menu_es_mx.rc @@ -465,7 +465,7 @@ BEGIN MENUITEM "DirectWrite (&Direct2D)", IDM_SET_RENDER_TECH_D2D MENUITEM "DirectWrite &Retain", IDM_SET_RENDER_TECH_D2DRETAIN MENUITEM "Direct&Write GDI DC", IDM_SET_RENDER_TECH_D2DDC - MENUITEM "&GDI (sin ligaduras)", IDM_SET_RENDER_TECH_DEFAULT + MENUITEM "&GDI (sin ligaduras)", IDM_SET_RENDER_TECH_GDI END POPUP "&Bidireccional" BEGIN diff --git a/language/np3_fr_fr/menu_fr_fr.rc b/language/np3_fr_fr/menu_fr_fr.rc index 406c91773..1224e95bf 100644 --- a/language/np3_fr_fr/menu_fr_fr.rc +++ b/language/np3_fr_fr/menu_fr_fr.rc @@ -465,7 +465,7 @@ BEGIN MENUITEM "DirectWrite (&Direct2D)", IDM_SET_RENDER_TECH_D2D MENUITEM "DirectWrite &Retain", IDM_SET_RENDER_TECH_D2DRETAIN MENUITEM "Direct&Write GDI DC", IDM_SET_RENDER_TECH_D2DDC - MENUITEM "&GDI (pas de ligatures)", IDM_SET_RENDER_TECH_DEFAULT + MENUITEM "&GDI (pas de ligatures)", IDM_SET_RENDER_TECH_GDI END POPUP "Bidirectionnelle" BEGIN diff --git a/language/np3_hi_in/menu_hi_in.rc b/language/np3_hi_in/menu_hi_in.rc index b431fc7e6..f951e9d83 100644 --- a/language/np3_hi_in/menu_hi_in.rc +++ b/language/np3_hi_in/menu_hi_in.rc @@ -465,7 +465,7 @@ BEGIN MENUITEM "DirectWrite (&Direct2D)", IDM_SET_RENDER_TECH_D2D MENUITEM "DirectWrite &Retain", IDM_SET_RENDER_TECH_D2DRETAIN MENUITEM "Direct&Write GDI DC", IDM_SET_RENDER_TECH_D2DDC - MENUITEM "&GDI (no ligatures)", IDM_SET_RENDER_TECH_DEFAULT + MENUITEM "&GDI (no ligatures)", IDM_SET_RENDER_TECH_GDI END POPUP "Bidirectional" BEGIN diff --git a/language/np3_hu_hu/menu_hu_hu.rc b/language/np3_hu_hu/menu_hu_hu.rc index 3650b71c2..b68b53895 100644 --- a/language/np3_hu_hu/menu_hu_hu.rc +++ b/language/np3_hu_hu/menu_hu_hu.rc @@ -465,7 +465,7 @@ BEGIN MENUITEM "DirectWrite (&Direct2D)", IDM_SET_RENDER_TECH_D2D MENUITEM "DirectWrite &Retain", IDM_SET_RENDER_TECH_D2DRETAIN MENUITEM "Direct&Write GDI DC", IDM_SET_RENDER_TECH_D2DDC - MENUITEM "&GDI (ligatúrák nélkül)", IDM_SET_RENDER_TECH_DEFAULT + MENUITEM "&GDI (ligatúrák nélkül)", IDM_SET_RENDER_TECH_GDI END POPUP "K&étirányú" BEGIN diff --git a/language/np3_id_id/menu_id_id.rc b/language/np3_id_id/menu_id_id.rc index 6c170b5f2..41d895830 100644 --- a/language/np3_id_id/menu_id_id.rc +++ b/language/np3_id_id/menu_id_id.rc @@ -465,7 +465,7 @@ BEGIN MENUITEM "DirectWrite (&Direct2D)", IDM_SET_RENDER_TECH_D2D MENUITEM "DirectWrite &Retain", IDM_SET_RENDER_TECH_D2DRETAIN MENUITEM "Direct&Write GDI DC", IDM_SET_RENDER_TECH_D2DDC - MENUITEM "&GDI (no ligatures)", IDM_SET_RENDER_TECH_DEFAULT + MENUITEM "&GDI (no ligatures)", IDM_SET_RENDER_TECH_GDI END POPUP "Bidirectional" BEGIN diff --git a/language/np3_it_it/menu_it_it.rc b/language/np3_it_it/menu_it_it.rc index 6d53f6fd9..c9245dad4 100644 --- a/language/np3_it_it/menu_it_it.rc +++ b/language/np3_it_it/menu_it_it.rc @@ -465,7 +465,7 @@ BEGIN MENUITEM "DirectWrite (&Direct2D)", IDM_SET_RENDER_TECH_D2D MENUITEM "DirectWrite &Retain", IDM_SET_RENDER_TECH_D2DRETAIN MENUITEM "Direct&Write GDI DC", IDM_SET_RENDER_TECH_D2DDC - MENUITEM "&GDI (senza legature)", IDM_SET_RENDER_TECH_DEFAULT + MENUITEM "&GDI (senza legature)", IDM_SET_RENDER_TECH_GDI END POPUP "Bidirezionale" BEGIN diff --git a/language/np3_ja_jp/menu_ja_jp.rc b/language/np3_ja_jp/menu_ja_jp.rc index 4d78a6cd4..870ff46ac 100644 --- a/language/np3_ja_jp/menu_ja_jp.rc +++ b/language/np3_ja_jp/menu_ja_jp.rc @@ -465,7 +465,7 @@ BEGIN MENUITEM "DirectWrite (Direct2D)(&D)", IDM_SET_RENDER_TECH_D2D MENUITEM "DirectWrite Retain(&R)", IDM_SET_RENDER_TECH_D2DRETAIN MENUITEM "DirectWrite GDI DC(&W)", IDM_SET_RENDER_TECH_D2DDC - MENUITEM "GDI (合字未対応)(&G)", IDM_SET_RENDER_TECH_DEFAULT + MENUITEM "GDI (合字未対応)(&G)", IDM_SET_RENDER_TECH_GDI END POPUP "書字方向" BEGIN diff --git a/language/np3_ko_kr/menu_ko_kr.rc b/language/np3_ko_kr/menu_ko_kr.rc index c81eee3c9..4f0953b72 100644 --- a/language/np3_ko_kr/menu_ko_kr.rc +++ b/language/np3_ko_kr/menu_ko_kr.rc @@ -465,7 +465,7 @@ BEGIN MENUITEM "DirectWrite (&Direct2D)", IDM_SET_RENDER_TECH_D2D MENUITEM "DirectWrite 유지(&R)", IDM_SET_RENDER_TECH_D2DRETAIN MENUITEM "GDI DC 직접 쓰기(&W)", IDM_SET_RENDER_TECH_D2DDC - MENUITEM "GDI (합자 없음) (&G)", IDM_SET_RENDER_TECH_DEFAULT + MENUITEM "GDI (합자 없음) (&G)", IDM_SET_RENDER_TECH_GDI END POPUP "양방향" BEGIN diff --git a/language/np3_nl_nl/menu_nl_nl.rc b/language/np3_nl_nl/menu_nl_nl.rc index 0afbbb9f7..6a4bdb888 100644 --- a/language/np3_nl_nl/menu_nl_nl.rc +++ b/language/np3_nl_nl/menu_nl_nl.rc @@ -465,7 +465,7 @@ BEGIN MENUITEM "DirectWrite (&Direct2D)", IDM_SET_RENDER_TECH_D2D MENUITEM "DirectWrite &Retain", IDM_SET_RENDER_TECH_D2DRETAIN MENUITEM "Direct&Write GDI DC", IDM_SET_RENDER_TECH_D2DDC - MENUITEM "&GDI (geen ligaturen)", IDM_SET_RENDER_TECH_DEFAULT + MENUITEM "&GDI (geen ligaturen)", IDM_SET_RENDER_TECH_GDI END POPUP "Bidirectionele" BEGIN diff --git a/language/np3_pl_pl/menu_pl_pl.rc b/language/np3_pl_pl/menu_pl_pl.rc index f28ad4d5b..51758a1a0 100644 --- a/language/np3_pl_pl/menu_pl_pl.rc +++ b/language/np3_pl_pl/menu_pl_pl.rc @@ -465,7 +465,7 @@ BEGIN MENUITEM "DirectWrite (&Direct2D)", IDM_SET_RENDER_TECH_D2D MENUITEM "DirectWrite &Retain", IDM_SET_RENDER_TECH_D2DRETAIN MENUITEM "Direct&Write GDI DC", IDM_SET_RENDER_TECH_D2DDC - MENUITEM "&GDI (bez ligatury)", IDM_SET_RENDER_TECH_DEFAULT + MENUITEM "&GDI (bez ligatury)", IDM_SET_RENDER_TECH_GDI END POPUP "Dwukierunkowa" BEGIN diff --git a/language/np3_pt_br/menu_pt_br.rc b/language/np3_pt_br/menu_pt_br.rc index 85f78c2c8..e81d838f5 100644 --- a/language/np3_pt_br/menu_pt_br.rc +++ b/language/np3_pt_br/menu_pt_br.rc @@ -465,7 +465,7 @@ BEGIN MENUITEM "DirectWrite (&Direct2D)", IDM_SET_RENDER_TECH_D2D MENUITEM "&Reter DirectWrite", IDM_SET_RENDER_TECH_D2DRETAIN MENUITEM "Direct&Write GDI DC", IDM_SET_RENDER_TECH_D2DDC - MENUITEM "&GDI (no ligatures)", IDM_SET_RENDER_TECH_DEFAULT + MENUITEM "&GDI (no ligatures)", IDM_SET_RENDER_TECH_GDI END POPUP "Bidirecional" BEGIN diff --git a/language/np3_pt_pt/menu_pt_pt.rc b/language/np3_pt_pt/menu_pt_pt.rc index 5d5931564..d04f27552 100644 --- a/language/np3_pt_pt/menu_pt_pt.rc +++ b/language/np3_pt_pt/menu_pt_pt.rc @@ -465,7 +465,7 @@ BEGIN MENUITEM "DirectWrite (&Direct2D)", IDM_SET_RENDER_TECH_D2D MENUITEM "DirectWrite &Retain", IDM_SET_RENDER_TECH_D2DRETAIN MENUITEM "Direct&Write GDI DC", IDM_SET_RENDER_TECH_D2DDC - MENUITEM "&GDI (sem ligaturas)", IDM_SET_RENDER_TECH_DEFAULT + MENUITEM "&GDI (sem ligaturas)", IDM_SET_RENDER_TECH_GDI END POPUP "Bidireccional" BEGIN diff --git a/language/np3_ru_ru/menu_ru_ru.rc b/language/np3_ru_ru/menu_ru_ru.rc index 012926a26..c7a8c8696 100644 --- a/language/np3_ru_ru/menu_ru_ru.rc +++ b/language/np3_ru_ru/menu_ru_ru.rc @@ -465,7 +465,7 @@ BEGIN MENUITEM "DirectWrite (&Direct2D)", IDM_SET_RENDER_TECH_D2D MENUITEM "DirectWrite &Retain", IDM_SET_RENDER_TECH_D2DRETAIN MENUITEM "Direct&Write GDI DC", IDM_SET_RENDER_TECH_D2DDC - MENUITEM "&GDI (без лигатур)", IDM_SET_RENDER_TECH_DEFAULT + MENUITEM "&GDI (без лигатур)", IDM_SET_RENDER_TECH_GDI END POPUP "Направление письма" BEGIN diff --git a/language/np3_sk_sk/menu_sk_sk.rc b/language/np3_sk_sk/menu_sk_sk.rc index ebb968662..1f5e29f93 100644 --- a/language/np3_sk_sk/menu_sk_sk.rc +++ b/language/np3_sk_sk/menu_sk_sk.rc @@ -465,7 +465,7 @@ BEGIN MENUITEM "DirectWrite (&Direct2D)", IDM_SET_RENDER_TECH_D2D MENUITEM "DirectWrite &Retain", IDM_SET_RENDER_TECH_D2DRETAIN MENUITEM "Direct&Write GDI DC", IDM_SET_RENDER_TECH_D2DDC - MENUITEM "&GDI (bez ligatúr)", IDM_SET_RENDER_TECH_DEFAULT + MENUITEM "&GDI (bez ligatúr)", IDM_SET_RENDER_TECH_GDI END POPUP "Obojsmerne" BEGIN diff --git a/language/np3_sv_se/menu_sv_se.rc b/language/np3_sv_se/menu_sv_se.rc index 641cc680c..73a3230b7 100644 --- a/language/np3_sv_se/menu_sv_se.rc +++ b/language/np3_sv_se/menu_sv_se.rc @@ -465,7 +465,7 @@ BEGIN MENUITEM "DirectWrite (&Direct2D)", IDM_SET_RENDER_TECH_D2D MENUITEM "DirectWrite &Retain", IDM_SET_RENDER_TECH_D2DRETAIN MENUITEM "Direct&Write GDI DC", IDM_SET_RENDER_TECH_D2DDC - MENUITEM "&GDI (inga ligaturer)", IDM_SET_RENDER_TECH_DEFAULT + MENUITEM "&GDI (inga ligaturer)", IDM_SET_RENDER_TECH_GDI END POPUP "Dubbelriktad" BEGIN diff --git a/language/np3_tr_tr/menu_tr_tr.rc b/language/np3_tr_tr/menu_tr_tr.rc index b5c33f45b..e78300db4 100644 --- a/language/np3_tr_tr/menu_tr_tr.rc +++ b/language/np3_tr_tr/menu_tr_tr.rc @@ -465,7 +465,7 @@ BEGIN MENUITEM "DirectWrite (&Direct2D)", IDM_SET_RENDER_TECH_D2D MENUITEM "DirectWrite &Retain", IDM_SET_RENDER_TECH_D2DRETAIN MENUITEM "Direct&Write GDI DC", IDM_SET_RENDER_TECH_D2DDC - MENUITEM "&GDI (no ligatures)", IDM_SET_RENDER_TECH_DEFAULT + MENUITEM "&GDI (no ligatures)", IDM_SET_RENDER_TECH_GDI END POPUP "Bidirectional" BEGIN diff --git a/language/np3_vi_vn/menu_vi_vn.rc b/language/np3_vi_vn/menu_vi_vn.rc index 7775082ff..9b390b85e 100644 --- a/language/np3_vi_vn/menu_vi_vn.rc +++ b/language/np3_vi_vn/menu_vi_vn.rc @@ -465,7 +465,7 @@ BEGIN MENUITEM "DirectWrite (&Direct2D)", IDM_SET_RENDER_TECH_D2D MENUITEM "DirectWrite &Retain", IDM_SET_RENDER_TECH_D2DRETAIN MENUITEM "Direct&Write GDI DC", IDM_SET_RENDER_TECH_D2DDC - MENUITEM "&GDI (no ligatures)", IDM_SET_RENDER_TECH_DEFAULT + MENUITEM "&GDI (no ligatures)", IDM_SET_RENDER_TECH_GDI END POPUP "Bidirectional" BEGIN diff --git a/language/np3_zh_cn/menu_zh_cn.rc b/language/np3_zh_cn/menu_zh_cn.rc index a95cde526..e0826ef95 100644 --- a/language/np3_zh_cn/menu_zh_cn.rc +++ b/language/np3_zh_cn/menu_zh_cn.rc @@ -465,7 +465,7 @@ BEGIN MENUITEM "DirectWrite (Direct2D) (&D)", IDM_SET_RENDER_TECH_D2D MENUITEM "DirectWrite Retain(&R)", IDM_SET_RENDER_TECH_D2DRETAIN MENUITEM "DirectWrite GDI DC(&W)", IDM_SET_RENDER_TECH_D2DDC - MENUITEM "GDI(无连字)(&G)", IDM_SET_RENDER_TECH_DEFAULT + MENUITEM "GDI(无连字)(&G)", IDM_SET_RENDER_TECH_GDI END POPUP "双向(&B)" BEGIN diff --git a/language/np3_zh_tw/menu_zh_tw.rc b/language/np3_zh_tw/menu_zh_tw.rc index 631ea9c67..99da4db02 100644 --- a/language/np3_zh_tw/menu_zh_tw.rc +++ b/language/np3_zh_tw/menu_zh_tw.rc @@ -465,7 +465,7 @@ BEGIN MENUITEM "DirectWrite (Direct2D) (&D)", IDM_SET_RENDER_TECH_D2D MENUITEM "DirectWrite Retain(&R)", IDM_SET_RENDER_TECH_D2DRETAIN MENUITEM "DirectWrite GDI DC(&W)", IDM_SET_RENDER_TECH_D2DDC - MENUITEM "GDI(無連字)(&G)", IDM_SET_RENDER_TECH_DEFAULT + MENUITEM "GDI(無連字)(&G)", IDM_SET_RENDER_TECH_GDI END POPUP "雙向(&B)" BEGIN diff --git a/src/Config/Config.cpp b/src/Config/Config.cpp index 54dea8277..b7832c773 100644 --- a/src/Config/Config.cpp +++ b/src/Config/Config.cpp @@ -1150,10 +1150,10 @@ void LoadSettings() IniSectionDelete(IniSecSettings2, L"SciDirectWriteTech", false); // old deprecated bDirtyFlag = true; } - Defaults.RenderingTechnology = clampi(Defaults.RenderingTechnology, 0, 3); + Defaults.RenderingTechnology = clampi(Defaults.RenderingTechnology, SC_TECHNOLOGY_DEFAULT, SC_TECHNOLOGY_DIRECTWRITEDC); } else { - Defaults.RenderingTechnology = 1; // new default DirectWrite (D2D) + Defaults.RenderingTechnology = SC_TECHNOLOGY_DIRECTWRITE; // new default DirectWrite (D2D) } // Settings2 deprecated @@ -1463,12 +1463,14 @@ void LoadSettings() GET_BOOL_VALUE_FROM_INISECTION(MinimizeToTray, false); GET_BOOL_VALUE_FROM_INISECTION(TransparentMode, false); GET_BOOL_VALUE_FROM_INISECTION(FindReplaceTransparentMode, true); - GET_INT_VALUE_FROM_INISECTION(RenderingTechnology, Defaults.RenderingTechnology, 0, 3); // default set before - Defaults.RenderingTechnology = 1; // DirectWrite (D2D) - reset, if set by deprecated SciDirectWriteTech - GET_INT_VALUE_FROM_INISECTION(Bidirectional, Defaults.Bidirectional, 0, 2); // set before + GET_INT_VALUE_FROM_INISECTION(RenderingTechnology, Defaults.RenderingTechnology, SC_TECHNOLOGY_DEFAULT, SC_TECHNOLOGY_DIRECTWRITEDC); // default set before + Defaults.RenderingTechnology = SC_TECHNOLOGY_DIRECTWRITE; // DirectWrite (D2D) - reset, if set by deprecated SciDirectWriteTech + GET_INT_VALUE_FROM_INISECTION(Bidirectional, Defaults.Bidirectional, SC_BIDIRECTIONAL_DISABLED, SC_BIDIRECTIONAL_R2L); // set before Defaults.Bidirectional = SC_BIDIRECTIONAL_DISABLED; // reset GET_BOOL_VALUE_FROM_INISECTION(MuteMessageBeep, false); GET_BOOL_VALUE_FROM_INISECTION(SplitUndoTypingSeqOnLnBreak, true); + GET_BOOL_VALUE_FROM_INISECTION(EditLayoutRTL, false); + GET_BOOL_VALUE_FROM_INISECTION(DialogsLayoutRTL, false); ///~Settings2.IMEInteraction = clampi(IniSectionGetInt(IniSecSettings, L"IMEInteraction", Settings2.IMEInteraction), SC_IME_WINDOWED, SC_IME_INLINE); @@ -1901,6 +1903,8 @@ static bool _SaveSettings(bool bForceSaveSettings) SAVE_VALUE_IF_NOT_EQ_DEFAULT(Int, Bidirectional); SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, MuteMessageBeep); SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, SplitUndoTypingSeqOnLnBreak); + SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, EditLayoutRTL); + SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, DialogsLayoutRTL); ///~IniSectionSetInt(IniSecSettings, L"IMEInteraction", Settings2.IMEInteraction); diff --git a/src/Dialogs.c b/src/Dialogs.c index b980c44e0..5ae880641 100644 --- a/src/Dialogs.c +++ b/src/Dialogs.c @@ -3870,14 +3870,31 @@ void AppendAdditionalTitleInfo(LPCWSTR lpszAddTitleInfo) // void SetWindowTransparentMode(HWND hwnd, bool bTransparentMode, int iOpacityLevel) { + const DWORD exStyle = GetWindowExStyle(hwnd); if (bTransparentMode) { - SetWindowLongPtr(hwnd, GWL_EXSTYLE, GetWindowLongPtr(hwnd, GWL_EXSTYLE) | WS_EX_LAYERED); - // get opacity level from registry + SetWindowExStyle(hwnd, exStyle | WS_EX_LAYERED); BYTE const bAlpha = (BYTE)MulDiv(iOpacityLevel, 255, 100); SetLayeredWindowAttributes(hwnd, 0, bAlpha, LWA_ALPHA); - return; } - SetWindowLongPtr(hwnd, GWL_EXSTYLE, GetWindowLongPtr(hwnd, GWL_EXSTYLE) & ~WS_EX_LAYERED); + else { + SetWindowExStyle(hwnd, exStyle & ~WS_EX_LAYERED); + } +} + + +//============================================================================= +// +// SetWindowLayoutRTL() +// +void SetWindowLayoutRTL(HWND hwnd, bool bRTL) +{ + const DWORD exStyle = GetWindowExStyle(hwnd); + if (bRTL) { + SetWindowExStyle(hwnd, exStyle | WS_EX_LAYOUTRTL); + } + else { + SetWindowExStyle(hwnd, exStyle & ~WS_EX_LAYOUTRTL); + } } diff --git a/src/Dialogs.h b/src/Dialogs.h index c9e1c9604..fb6889942 100644 --- a/src/Dialogs.h +++ b/src/Dialogs.h @@ -69,6 +69,7 @@ bool SetWindowTitle(HWND hwnd, UINT uIDAppName, bool bIsElevated, UINT uIDUntitl void SetAdditionalTitleInfo(LPCWSTR lpszAddTitleInfo); void AppendAdditionalTitleInfo(LPCWSTR lpszAddTitleInfo); void SetWindowTransparentMode(HWND hwnd, bool bTransparentMode, int iOpacityLevel); +void SetWindowLayoutRTL(HWND hwnd, bool bRTL); POINT GetCenterOfDlgInParent(const RECT* rcDlg, const RECT* rcParent); HWND GetParentOrDesktop(HWND hDlg); void CenterDlgInParent(HWND hDlg, HWND hDlgParent); diff --git a/src/Helpers.h b/src/Helpers.h index bea182cfc..d341e4898 100644 --- a/src/Helpers.h +++ b/src/Helpers.h @@ -162,6 +162,7 @@ inline bool IsAsyncKeyDown(int key) { return (((GetAsyncKeyState(key) >> 8) & 0x #define PostWMCommand(hwnd, id) PostMessage((hwnd), WM_COMMAND, MAKEWPARAM((id), 1), 0) #define SetWindowStyle(hwnd, style) SetWindowLong((hwnd), GWL_STYLE, (style)) +#define SetWindowExStyle(hwnd, style) SetWindowLong((hwnd), GWL_EXSTYLE, (style)) //==== StrIs(Not)Empty() ============================================= @@ -309,7 +310,6 @@ void PathFixBackslashes(LPWSTR lpsz); size_t FormatNumberStr(LPWSTR lpNumberStr, size_t cch, int fixedWidth); bool SetDlgItemIntEx(HWND hwnd,int nIdItem,UINT uValue); - UINT GetDlgItemTextW2MB(HWND hDlg,int nIDDlgItem,LPSTR lpString,int nMaxCount); UINT SetDlgItemTextMB2W(HWND hDlg,int nIDDlgItem,LPSTR lpString); LRESULT ComboBox_AddStringMB2W(HWND hwnd,LPCSTR lpString); diff --git a/src/Notepad3.c b/src/Notepad3.c index 92b20f2ce..18a6095c4 100644 --- a/src/Notepad3.c +++ b/src/Notepad3.c @@ -212,24 +212,6 @@ const WCHAR* const TBBUTTON_DEFAULT_IDS_V1 = L"1 2 4 3 28 0 5 6 0 7 8 9 0 10 11 const WCHAR* const TBBUTTON_DEFAULT_IDS_V2 = L"1 2 4 3 28 0 5 6 0 7 8 9 0 10 11 0 30 0 12 0 24 26 0 22 23 0 13 14 0 15 0 25 0 29 0 17"; //============================================================================= - -// some Mappings internal idx -> Scintilla values - -static int const s_DirectWriteTechnology[4] = { - SC_TECHNOLOGY_DEFAULT - , SC_TECHNOLOGY_DIRECTWRITE - , SC_TECHNOLOGY_DIRECTWRITERETAIN - , SC_TECHNOLOGY_DIRECTWRITEDC -}; - -static int const s_SciBidirectional[3] = { - SC_BIDIRECTIONAL_DISABLED - , SC_BIDIRECTIONAL_L2R - , SC_BIDIRECTIONAL_R2L -}; - -//============================================================================= - // static method declarations // undo / redo selections @@ -522,6 +504,16 @@ static void CALLBACK MQ_ExecuteNext(HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWOR } +//============================================================================= +// +// InvalidateStyleRedraw +// +static inline void InvalidateStyleRedraw() +{ + SciCall_SetViewEOL(Settings.ViewEOLs); +} + + //============================================================================= // // CommandLine Parsing Flags @@ -1836,15 +1828,13 @@ static void _SetWrapVisualFlags(HWND hwndEditCtrl) // static void _InitializeSciEditCtrl(HWND hwndEditCtrl) { + SendMessage(hwndEditCtrl, SCI_SETTECHNOLOGY, (WPARAM)Settings.RenderingTechnology, 0); + SendMessage(hwndEditCtrl, SCI_SETBIDIRECTIONAL, (WPARAM)Settings.Bidirectional, 0); // experimental + Settings.Bidirectional = SciCall_GetBidirectional(); + // Current platforms perform window buffering so it is almost always better for this option to be turned off. - // There are some older platforms and unusual modes where buffering may still be useful - so keep it ON - //~SCI_SETBUFFEREDDRAW(true); // default is true - if (Settings.RenderingTechnology > 0) - { - SendMessage(hwndEditCtrl, SCI_SETTECHNOLOGY, (WPARAM)s_DirectWriteTechnology[Settings.RenderingTechnology], 0); - SendMessage(hwndEditCtrl, SCI_SETBUFFEREDDRAW, 0, 0); // false - SendMessage(hwndEditCtrl, SCI_SETBIDIRECTIONAL, (WPARAM)s_SciBidirectional[Settings.Bidirectional], 0); // experimental - } + // There are some older platforms and unusual modes where buffering may still be useful + SendMessage(hwndEditCtrl, SCI_SETBUFFEREDDRAW, (WPARAM)(Settings.RenderingTechnology == SC_TECHNOLOGY_DEFAULT), 0); //~SendMessage(hwndEditCtrl, SCI_SETPHASESDRAW, SC_PHASES_TWO, 0); // (= default) SendMessage(hwndEditCtrl, SCI_SETPHASESDRAW, SC_PHASES_MULTIPLE, 0); //~SendMessage(hwndEditCtrl, SCI_SETLAYOUTCACHE, SC_CACHE_PAGE, 0); @@ -1852,6 +1842,8 @@ static void _InitializeSciEditCtrl(HWND hwndEditCtrl) //~SendMessage(hwndEditCtrl, SCI_SETPOSITIONCACHE, 1024, 0); // default = 1024 SendMessage(hwndEditCtrl, SCI_SETPOSITIONCACHE, 4096, 0); + SetWindowLayoutRTL(hwndEditCtrl, Settings.EditLayoutRTL); + // The possible notification types are the same as the modificationType bit flags used by SCN_MODIFIED: // SC_MOD_INSERTTEXT, SC_MOD_DELETETEXT, SC_MOD_CHANGESTYLE, SC_MOD_CHANGEFOLD, SC_PERFORMED_USER, // SC_PERFORMED_UNDO, SC_PERFORMED_REDO, SC_MULTISTEPUNDOREDO, SC_LASTSTEPINUNDOREDO, SC_MOD_CHANGEMARKER, @@ -3523,10 +3515,18 @@ LRESULT MsgInitMenu(HWND hwnd, WPARAM wParam, LPARAM lParam) CheckCmd(hmenu, IDM_VIEW_MINTOTRAY, Settings.MinimizeToTray); CheckCmd(hmenu, IDM_VIEW_TRANSPARENT, Settings.TransparentMode); - i = IDM_SET_RENDER_TECH_DEFAULT + Settings.RenderingTechnology; - CheckMenuRadioItem(hmenu, IDM_SET_RENDER_TECH_DEFAULT, IDM_SET_RENDER_TECH_D2DDC, i, MF_BYCOMMAND); - - if (Settings.RenderingTechnology > 0) { + bool const dwr = (Settings.RenderingTechnology > SC_TECHNOLOGY_DEFAULT); + //bool const gdi = ((Settings.RenderingTechnology % SC_TECHNOLOGY_DIRECTWRITEDC) == 0); + + i = IDM_SET_RENDER_TECH_GDI + Settings.RenderingTechnology; + CheckMenuRadioItem(hmenu, IDM_SET_RENDER_TECH_GDI, IDM_SET_RENDER_TECH_D2DDC, i, MF_BYCOMMAND); + + CheckCmd(hmenu, IDM_SET_RTL_LAYOUT_EDIT, Settings.EditLayoutRTL); + //EnableCmd(hmenu, IDM_SET_RTL_LAYOUT_EDIT, gdi); + + //CheckCmd(hmenu, IDM_SET_RTL_LAYOUT_DLG, Settings.DialogsLayoutRTL); + EnableCmd(hmenu, IDM_SET_RTL_LAYOUT_DLG, false); + if (dwr) { i = IDM_SET_BIDIRECTIONAL_NONE + Settings.Bidirectional; CheckMenuRadioItem(hmenu, IDM_SET_BIDIRECTIONAL_NONE, IDM_SET_BIDIRECTIONAL_R2L, i, MF_BYCOMMAND); } @@ -3534,9 +3534,10 @@ LRESULT MsgInitMenu(HWND hwnd, WPARAM wParam, LPARAM lParam) i = IDM_SET_BIDIRECTIONAL_NONE; CheckMenuRadioItem(hmenu, IDM_SET_BIDIRECTIONAL_NONE, IDM_SET_BIDIRECTIONAL_R2L, i, MF_BYCOMMAND); } - EnableCmd(hmenu, IDM_SET_BIDIRECTIONAL_NONE, (Settings.RenderingTechnology > 0)); - EnableCmd(hmenu, IDM_SET_BIDIRECTIONAL_L2R, (Settings.RenderingTechnology > 0)); - EnableCmd(hmenu, IDM_SET_BIDIRECTIONAL_R2L, (Settings.RenderingTechnology > 0)); + EnableCmd(hmenu, IDM_SET_BIDIRECTIONAL_NONE, dwr); + EnableCmd(hmenu, IDM_SET_BIDIRECTIONAL_L2R, dwr); + EnableCmd(hmenu, IDM_SET_BIDIRECTIONAL_R2L, dwr); + CheckCmd(hmenu, IDM_VIEW_MUTE_MESSAGEBEEP, Settings.MuteMessageBeep); CheckCmd(hmenu, IDM_VIEW_SAVEBEFORERUNNINGTOOLS, Settings.SaveBeforeRunningTools); @@ -5266,12 +5267,12 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam) case IDM_VIEW_SHOWBLANKS: Settings.ViewWhiteSpace = !Settings.ViewWhiteSpace; - SendMessage(Globals.hwndEdit,SCI_SETVIEWWS,(Settings.ViewWhiteSpace)?SCWS_VISIBLEALWAYS:SCWS_INVISIBLE,0); + SciCall_SetViewWS(Settings.ViewWhiteSpace ? SCWS_VISIBLEALWAYS : SCWS_INVISIBLE); break; case IDM_VIEW_SHOWEOLS: Settings.ViewEOLs = !Settings.ViewEOLs; - SendMessage(Globals.hwndEdit,SCI_SETVIEWEOL,Settings.ViewEOLs,0); + SciCall_SetViewEOL(Settings.ViewEOLs); break; case IDM_VIEW_MATCHBRACES: @@ -5507,26 +5508,46 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam) break; - case IDM_SET_RENDER_TECH_DEFAULT: + case IDM_SET_RENDER_TECH_GDI: case IDM_SET_RENDER_TECH_D2D: case IDM_SET_RENDER_TECH_D2DRETAIN: case IDM_SET_RENDER_TECH_D2DDC: - Settings.RenderingTechnology = iLoWParam - IDM_SET_RENDER_TECH_DEFAULT; - if (Settings.RenderingTechnology == 0) { - SciCall_SetBidirectional(s_SciBidirectional[0]); + { + int const prevRT = Settings.RenderingTechnology; + Settings.RenderingTechnology = (iLoWParam - IDM_SET_RENDER_TECH_GDI); + SciCall_SetTechnology(Settings.RenderingTechnology); + Settings.RenderingTechnology = SciCall_GetTechnology(); + SciCall_SetBufferedDraw(Settings.RenderingTechnology == SC_TECHNOLOGY_DEFAULT); + + int const prevBD = Settings.Bidirectional; + SciCall_SetBidirectional(Settings.Bidirectional); + Settings.Bidirectional = SciCall_GetBidirectional(); + + if ((prevRT != Settings.RenderingTechnology) || (prevBD != Settings.Bidirectional)) { + UpdateMarginWidth(); + } } - SciCall_SetBufferedDraw((Settings.RenderingTechnology == 0)); - SciCall_SetTechnology(s_DirectWriteTechnology[Settings.RenderingTechnology]); + break; + + case IDM_SET_RTL_LAYOUT_EDIT: + Settings.EditLayoutRTL = !Settings.EditLayoutRTL; + SetWindowLayoutRTL(Globals.hwndEdit, Settings.EditLayoutRTL); + InvalidateStyleRedraw(); + break; + + case IDM_SET_RTL_LAYOUT_DLG: + Settings.DialogsLayoutRTL = !Settings.DialogsLayoutRTL; break; case IDM_SET_BIDIRECTIONAL_NONE: case IDM_SET_BIDIRECTIONAL_L2R: case IDM_SET_BIDIRECTIONAL_R2L: - Settings.Bidirectional = iLoWParam - IDM_SET_BIDIRECTIONAL_NONE; - SciCall_SetBidirectional(s_SciBidirectional[Settings.Bidirectional]); + { + SciCall_SetBidirectional(iLoWParam - IDM_SET_BIDIRECTIONAL_NONE); + Settings.Bidirectional = SciCall_GetBidirectional(); + } break; - case IDM_VIEW_MUTE_MESSAGEBEEP: Settings.MuteMessageBeep = !Settings.MuteMessageBeep; break; diff --git a/src/SciCall.h b/src/SciCall.h index 49a485d52..cdc4d0c71 100644 --- a/src/SciCall.h +++ b/src/SciCall.h @@ -399,7 +399,10 @@ DeclareSciCallV2(SetHotspotActiveBack, SETHOTSPOTACTIVEBACK, bool, useSetting, i DeclareSciCallV1(SetHotspotActiveUnderline, SETHOTSPOTACTIVEUNDERLINE, bool, underline) DeclareSciCallV1(SetHotspotSigleLine, SETHOTSPOTSINGLELINE, bool, singleline) -//============================================================================= +DeclareSciCallV1(SetViewWS, SETVIEWWS, int, wspc) +DeclareSciCallV1(SetViewEOL, SETVIEWEOL, bool, eols) + + //============================================================================= // // Indentation Guides and Wraping // @@ -556,8 +559,11 @@ DeclareSciCallV1(SetUndoCollection, SETUNDOCOLLECTION, bool, bCollectUndo) // SetTechnology // DeclareSciCallV1(SetBufferedDraw, SETBUFFEREDDRAW, bool, value) +DeclareSciCallR0(GetTechnology, GETTECHNOLOGY, int) DeclareSciCallV1(SetTechnology, SETTECHNOLOGY, int, technology) +DeclareSciCallR0(GetBidirectional, GETBIDIRECTIONAL, int) DeclareSciCallV1(SetBidirectional, SETBIDIRECTIONAL, int, direction) + DeclareSciCallV1(SetCharacterCategoryOptimization, SETCHARACTERCATEGORYOPTIMIZATION, int, count) //============================================================================= diff --git a/src/TypeDefs.h b/src/TypeDefs.h index f1988baa6..65dca554f 100644 --- a/src/TypeDefs.h +++ b/src/TypeDefs.h @@ -460,7 +460,9 @@ typedef struct _settings_t int CustomSchemesDlgPosY; bool MuteMessageBeep; bool SplitUndoTypingSeqOnLnBreak; - + bool EditLayoutRTL; + bool DialogsLayoutRTL; + RECT PrintMargin; EDITFINDREPLACE EFR_Data; WCHAR OpenWithDir[MAX_PATH];