mirror of
https://github.com/rizonesoft/Notepad3.git
synced 2026-06-11 21:03:05 +08:00
+ add: edit right-to-left (RTL) mode (works only in GDI device context (DC))
This commit is contained in:
parent
7e395a2274
commit
dbde58ff74
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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"
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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);
|
||||
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
109
src/Notepad3.c
109
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;
|
||||
|
||||
@ -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)
|
||||
|
||||
//=============================================================================
|
||||
|
||||
@ -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];
|
||||
|
||||
Loading…
Reference in New Issue
Block a user