mirror of
https://github.com/rizonesoft/Notepad3.git
synced 2026-06-11 21:03:05 +08:00
+ add: Encoding Korean (Jojab) (CP 1361)
+ add: settings for IME Interaction switching
This commit is contained in:
parent
34376405b1
commit
f67282b60d
Binary file not shown.
Binary file not shown.
@ -1183,7 +1183,7 @@ sptr_t ScintillaWin::HandleCompositionInline(uptr_t, sptr_t lParam) {
|
||||
|
||||
MoveImeCarets(-CurrentPosition() + imeCaretPosDoc);
|
||||
|
||||
if (KoreanIME()) {
|
||||
if (KoreanIME() || imeInteraction == imeInline) {
|
||||
view.imeCaretBlockOverride = true;
|
||||
}
|
||||
} else if (lParam & GCS_RESULTSTR) {
|
||||
|
||||
@ -117,7 +117,7 @@ extern "C" {
|
||||
#define ENC_PARSE_NAM_ISO_2022_JP "ISO-2022-jp,iso2022jp,"
|
||||
#define ENC_PARSE_NAM_ISO_2022_KR "ISO-2022-kr,iso2022kr,csiso2022kr,"
|
||||
#define ENC_PARSE_NAM_X_CHINESE_CNS "x-Chinese-CNS,xchinesecns,"
|
||||
//#define ENC_PARSE_NAM_JOHAB "johab,johab,"
|
||||
#define ENC_PARSE_NAM_JOHAB "johab,johab,"
|
||||
//#define ENC_PARSE_NAM_ISO_8859_10 "ISO-8859-10,iso885910,Windows-28600,Windows28600,"
|
||||
//#define ENC_PARSE_NAM_BIG5_HKSCS "big5hkscs,cnbig5hkscs,xxbig5hkscs,"
|
||||
//=============================================================================
|
||||
@ -204,8 +204,8 @@ extern "C" NP2ENCODING g_Encodings[] = {
|
||||
/* 076 */{ NCP_EXTERNAL_8BIT | NCP_RECODE, 52936, ENC_PARSE_NAM_HZ_GB2312, IDS_ENC_HZ_GB2312, HZ_GB_2312, L"" }, // Chinese Simplified (HZ-GB2312)
|
||||
/* 077 */{ NCP_EXTERNAL_8BIT | NCP_RECODE, 50220, ENC_PARSE_NAM_ISO_2022_JP, IDS_ENC_ISO_2022_JP, KDDI_ISO_2022_JP, L"" }, // Japanese (JIS)
|
||||
/* 078 */{ NCP_EXTERNAL_8BIT | NCP_RECODE, 50225, ENC_PARSE_NAM_ISO_2022_KR, IDS_ENC_ISO_2022_KR, ISO_2022_KR, L"" }, // Korean (ISO-2022-KR)
|
||||
/* 079 */{ NCP_EXTERNAL_8BIT | NCP_RECODE, 20000, ENC_PARSE_NAM_X_CHINESE_CNS, IDS_ENC_X_CHINESE_CNS, CHINESE_CNS, L"" } // Chinese Traditional (CNS)
|
||||
///* 080 */{ NCP_EXTERNAL_8BIT | NCP_RECODE, 1361, ENC_PARSE_NAM_JOHAB, IDS_ENC_JOHAB, CED_NO_MAPPING, L"" }, // Korean (Johab)
|
||||
/* 079 */{ NCP_EXTERNAL_8BIT | NCP_RECODE, 20000, ENC_PARSE_NAM_X_CHINESE_CNS, IDS_ENC_X_CHINESE_CNS, CHINESE_CNS, L"" }, // Chinese Traditional (CNS)
|
||||
/* 080 */{ NCP_EXTERNAL_8BIT | NCP_RECODE, 1361, ENC_PARSE_NAM_JOHAB, IDS_ENC_JOHAB, CED_NO_MAPPING, L"" } // Korean (Johab)
|
||||
///* 081 */{ NCP_EXTERNAL_8BIT | NCP_RECODE, 28600, ENC_PARSE_NAM_ISO_8859_10, IDS_ENC_ISO_8859_10, ISO_8859_10, L"" }, // Nordic (ISO 8859-10)
|
||||
///* 082 */{ NCP_EXTERNAL_8BIT | NCP_RECODE, 951, ENC_PARSE_NAM_BIG5_HKSCS, IDS_ENC_BIG5_HKSCS, BIG5_HKSCS, L"" } // Chinese (Hong Kong Supplementary Character Set)
|
||||
|
||||
|
||||
@ -74,6 +74,9 @@ inline unsigned clampu(unsigned x, unsigned lower, unsigned upper) {
|
||||
return (x < lower) ? lower : ((x > upper) ? upper : x);
|
||||
}
|
||||
|
||||
inline unsigned clampul(unsigned long x, unsigned long lower, unsigned long upper) {
|
||||
return (x < lower) ? lower : ((x > upper) ? upper : x);
|
||||
}
|
||||
|
||||
// Is the character an octal digit?
|
||||
inline bool IsDigitA(CHAR ch) { return ((ch >= '0') && (ch <= '9')); }
|
||||
|
||||
@ -318,6 +318,7 @@ DWORD dwLastIOError;
|
||||
|
||||
int g_iDefaultNewFileEncoding;
|
||||
int g_iDefaultCharSet;
|
||||
int g_IMEInteraction;
|
||||
|
||||
int g_iEOLMode;
|
||||
int g_iDefaultEOLMode;
|
||||
@ -1645,6 +1646,7 @@ static void __fastcall _InitializeSciEditCtrl(HWND hwndEditCtrl)
|
||||
SendMessage(hwndEditCtrl, SCI_SETMODEVENTMASK, (WPARAM)(evtMask1 | evtMask2), 0);
|
||||
|
||||
SendMessage(hwndEditCtrl, SCI_SETCODEPAGE, (WPARAM)SC_CP_UTF8, 0); // fixed internal UTF-8
|
||||
|
||||
SendMessage(hwndEditCtrl, SCI_SETEOLMODE, SC_EOL_CRLF, 0);
|
||||
SendMessage(hwndEditCtrl, SCI_SETPASTECONVERTENDINGS, true, 0);
|
||||
SendMessage(hwndEditCtrl, SCI_USEPOPUP, false, 0);
|
||||
@ -1658,7 +1660,7 @@ static void __fastcall _InitializeSciEditCtrl(HWND hwndEditCtrl)
|
||||
SendMessage(hwndEditCtrl, SCI_SETADDITIONALCARETSVISIBLE, true, 0);
|
||||
SendMessage(hwndEditCtrl, SCI_SETVIRTUALSPACEOPTIONS, SCVS_NONE, 0);
|
||||
SendMessage(hwndEditCtrl, SCI_SETLAYOUTCACHE, SC_CACHE_PAGE, 0);
|
||||
|
||||
|
||||
// assign command keys
|
||||
SendMessage(hwndEditCtrl, SCI_ASSIGNCMDKEY, (SCK_NEXT + (SCMOD_CTRL << 16)), SCI_PARADOWN);
|
||||
SendMessage(hwndEditCtrl, SCI_ASSIGNCMDKEY, (SCK_PRIOR + (SCMOD_CTRL << 16)), SCI_PARAUP);
|
||||
@ -1692,10 +1694,10 @@ static void __fastcall _InitializeSciEditCtrl(HWND hwndEditCtrl)
|
||||
SendMessage(hwndEditCtrl, SCI_SETAUTOMATICFOLD, (WPARAM)(SC_AUTOMATICFOLD_SHOW | SC_AUTOMATICFOLD_CHANGE), 0);
|
||||
|
||||
// Properties
|
||||
SendMessage(hwndEditCtrl, SCI_SETCARETSTICKY, SC_CARETSTICKY_OFF, 0);
|
||||
SendMessage(hwndEditCtrl, SCI_SETCARETSTICKY, (WPARAM)SC_CARETSTICKY_OFF, 0);
|
||||
//SendMessage(hwndEditCtrl,SCI_SETCARETSTICKY,SC_CARETSTICKY_WHITESPACE,0);
|
||||
|
||||
SendMessage(hwndEditCtrl, SCI_SETMOUSEDWELLTIME, SC_TIME_FOREVER, 0); // default
|
||||
SendMessage(hwndEditCtrl, SCI_SETMOUSEDWELLTIME, (WPARAM)SC_TIME_FOREVER, 0); // default
|
||||
//SendMessage(hwndEditCtrl, SCI_SETMOUSEDWELLTIME, (WPARAM)500, 0);
|
||||
|
||||
|
||||
@ -1715,11 +1717,11 @@ static void __fastcall _InitializeSciEditCtrl(HWND hwndEditCtrl)
|
||||
SendMessage(hwndEditCtrl, SCI_SETENDATLASTLINE, (WPARAM)((bScrollPastEOF) ? 0 : 1), 0);
|
||||
|
||||
// Tabs
|
||||
SendMessage(hwndEditCtrl, SCI_SETUSETABS, !g_bTabsAsSpaces, 0);
|
||||
SendMessage(hwndEditCtrl, SCI_SETTABINDENTS, g_bTabIndents, 0);
|
||||
SendMessage(hwndEditCtrl, SCI_SETBACKSPACEUNINDENTS, bBackspaceUnindents, 0);
|
||||
SendMessage(hwndEditCtrl, SCI_SETTABWIDTH, g_iTabWidth, 0);
|
||||
SendMessage(hwndEditCtrl, SCI_SETINDENT, g_iIndentWidth, 0);
|
||||
SendMessage(hwndEditCtrl, SCI_SETUSETABS, (WPARAM)!g_bTabsAsSpaces, 0);
|
||||
SendMessage(hwndEditCtrl, SCI_SETTABINDENTS, (WPARAM)g_bTabIndents, 0);
|
||||
SendMessage(hwndEditCtrl, SCI_SETBACKSPACEUNINDENTS, (WPARAM)bBackspaceUnindents, 0);
|
||||
SendMessage(hwndEditCtrl, SCI_SETTABWIDTH, (WPARAM)g_iTabWidth, 0);
|
||||
SendMessage(hwndEditCtrl, SCI_SETINDENT, (WPARAM)g_iIndentWidth, 0);
|
||||
|
||||
// Indent Guides
|
||||
Style_SetIndentGuides(hwndEditCtrl, bShowIndentGuides);
|
||||
@ -1730,18 +1732,21 @@ static void __fastcall _InitializeSciEditCtrl(HWND hwndEditCtrl)
|
||||
|
||||
// Long Lines
|
||||
if (g_bMarkLongLines)
|
||||
SendMessage(hwndEditCtrl, SCI_SETEDGEMODE, (iLongLineMode == EDGE_LINE) ? EDGE_LINE : EDGE_BACKGROUND, 0);
|
||||
SendMessage(hwndEditCtrl, SCI_SETEDGEMODE, (WPARAM)((iLongLineMode == EDGE_LINE) ? EDGE_LINE : EDGE_BACKGROUND), 0);
|
||||
else
|
||||
SendMessage(hwndEditCtrl, SCI_SETEDGEMODE, EDGE_NONE, 0);
|
||||
SendMessage(hwndEditCtrl, SCI_SETEDGEMODE, (WPARAM)EDGE_NONE, 0);
|
||||
|
||||
SendMessage(hwndEditCtrl, SCI_SETEDGECOLUMN, g_iLongLinesLimit, 0);
|
||||
SendMessage(hwndEditCtrl, SCI_SETEDGECOLUMN, (WPARAM)g_iLongLinesLimit, 0);
|
||||
|
||||
// general margin
|
||||
SendMessage(hwndEditCtrl, SCI_SETMARGINOPTIONS, SC_MARGINOPTION_SUBLINESELECT, 0);
|
||||
SendMessage(hwndEditCtrl, SCI_SETMARGINOPTIONS, (WPARAM)SC_MARGINOPTION_SUBLINESELECT, 0);
|
||||
|
||||
// Nonprinting characters
|
||||
SendMessage(hwndEditCtrl, SCI_SETVIEWWS, (bViewWhiteSpace) ? SCWS_VISIBLEALWAYS : SCWS_INVISIBLE, 0);
|
||||
SendMessage(hwndEditCtrl, SCI_SETVIEWEOL, bViewEOLs, 0);
|
||||
SendMessage(hwndEditCtrl, SCI_SETVIEWWS, (WPARAM)(bViewWhiteSpace ? SCWS_VISIBLEALWAYS : SCWS_INVISIBLE), 0);
|
||||
SendMessage(hwndEditCtrl, SCI_SETVIEWEOL, (WPARAM)bViewEOLs, 0);
|
||||
|
||||
// IME Interaction
|
||||
SendMessage(hwndEditCtrl, SCI_SETIMEINTERACTION, (WPARAM)(g_IMEInteraction ? SC_IME_INLINE : SC_IME_WINDOWED), 0);
|
||||
|
||||
// word delimiter handling
|
||||
EditInitWordDelimiter(hwndEditCtrl);
|
||||
@ -6622,6 +6627,9 @@ void LoadSettings()
|
||||
IniSectionGetString(pIniSection, L"PreferredLanguageLocaleName", L"",
|
||||
g_tchPrefLngLocName, COUNTOF(g_tchPrefLngLocName));
|
||||
|
||||
g_IMEInteraction = IniSectionGetInt(pIniSection, L"IMEInteraction", 0);
|
||||
g_IMEInteraction = clampi(g_IMEInteraction, 0, 1);
|
||||
|
||||
g_bStickyWinPos = IniSectionGetBool(pIniSection, L"StickyWindowPosition", false);
|
||||
|
||||
IniSectionGetString(pIniSection, L"DefaultExtension", L"txt", g_tchDefaultExtension, COUNTOF(g_tchDefaultExtension));
|
||||
@ -6633,8 +6641,11 @@ void LoadSettings()
|
||||
IniSectionGetString(pIniSection, L"FileDlgFilters", L"", g_tchFileDlgFilters, COUNTOF(g_tchFileDlgFilters) - 2);
|
||||
|
||||
dwFileCheckInverval = IniSectionGetInt(pIniSection, L"FileCheckInverval", 2000);
|
||||
dwFileCheckInverval = clampul(dwFileCheckInverval, 250, 300000);
|
||||
|
||||
dwAutoReloadTimeout = IniSectionGetInt(pIniSection, L"AutoReloadTimeout", 2000);
|
||||
|
||||
dwAutoReloadTimeout = clampul(dwAutoReloadTimeout, 250, 300000);
|
||||
|
||||
// deprecated
|
||||
g_iRenderingTechnology = IniSectionGetInt(pIniSection, L"SciDirectWriteTech", -111);
|
||||
if ((g_iRenderingTechnology != -111) && g_bSaveSettings) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user