mirror of
https://github.com/rizonesoft/Notepad3.git
synced 2026-06-14 21:09:05 +08:00
Merge pull request #687 from RaiKoHoff/Dev_0918
IME and Auto-Completion cooperation
This commit is contained in:
commit
c2dabe462b
@ -1541,27 +1541,6 @@
|
||||
#define SCE_TXT2TAGS_OPTION 23
|
||||
#define SCE_TXT2TAGS_PREPROC 24
|
||||
#define SCE_TXT2TAGS_POSTPROC 25
|
||||
#define SCE_AHK_DEFAULT 0
|
||||
#define SCE_AHK_COMMENTLINE 1
|
||||
#define SCE_AHK_COMMENTBLOCK 2
|
||||
#define SCE_AHK_ESCAPE 3
|
||||
#define SCE_AHK_SYNOPERATOR 4
|
||||
#define SCE_AHK_EXPOPERATOR 5
|
||||
#define SCE_AHK_STRING 6
|
||||
#define SCE_AHK_NUMBER 7
|
||||
#define SCE_AHK_IDENTIFIER 8
|
||||
#define SCE_AHK_VARREF 9
|
||||
#define SCE_AHK_LABEL 10
|
||||
#define SCE_AHK_WORD_CF 11
|
||||
#define SCE_AHK_WORD_CMD 12
|
||||
#define SCE_AHK_WORD_FN 13
|
||||
#define SCE_AHK_WORD_DIR 14
|
||||
#define SCE_AHK_WORD_KB 15
|
||||
#define SCE_AHK_WORD_VAR 16
|
||||
#define SCE_AHK_WORD_SP 17
|
||||
#define SCE_AHK_WORD_UD 18
|
||||
#define SCE_AHK_VARREFKW 19
|
||||
#define SCE_AHK_ERROR 20
|
||||
#define SCE_A68K_DEFAULT 0
|
||||
#define SCE_A68K_COMMENT 1
|
||||
#define SCE_A68K_NUMBER_DEC 2
|
||||
|
||||
@ -103,6 +103,8 @@ typedef sptr_t (*SciFnDirect)(sptr_t ptr, unsigned int iMessage, uptr_t wParam,
|
||||
#define SC_IME_INLINE 1
|
||||
#define SCI_GETIMEINTERACTION 2678
|
||||
#define SCI_SETIMEINTERACTION 2679
|
||||
#define SCI_ISIMEOPEN 2717
|
||||
#define SCI_ISIMEMODECJK 2718
|
||||
#define MARKER_MAX 31
|
||||
#define SC_MARK_CIRCLE 0
|
||||
#define SC_MARK_ROUNDRECT 1
|
||||
@ -399,9 +401,7 @@ typedef sptr_t (*SciFnDirect)(sptr_t ptr, unsigned int iMessage, uptr_t wParam,
|
||||
#define SCI_GETPRINTCOLOURMODE 2149
|
||||
#define SCFIND_WHOLEWORD 0x2
|
||||
#define SCFIND_MATCHCASE 0x4
|
||||
// >>>>>>>>>>>>>>> BEG NON STD SCI PATCH >>>>>>>>>>>>>>>
|
||||
#define SCFIND_DOT_MATCH_ALL 0x1000
|
||||
// <<<<<<<<<<<<<<< END NON STD SCI PATCH <<<<<<<<<<<<<<<
|
||||
#define SCFIND_WORDSTART 0x00100000
|
||||
#define SCFIND_REGEXP 0x00200000
|
||||
#define SCFIND_POSIX 0x00400000
|
||||
@ -691,10 +691,8 @@ typedef sptr_t (*SciFnDirect)(sptr_t ptr, unsigned int iMessage, uptr_t wParam,
|
||||
#define SC_POPUP_TEXT 2
|
||||
#define SCI_USEPOPUP 2371
|
||||
#define SCI_SELECTIONISRECTANGLE 2372
|
||||
// >>>>>>>>>>>>>>> BEG NON STD SCI PATCH >>>>>>>>>>>>>>>
|
||||
#define SC_MIN_ZOOM_LEVEL 10
|
||||
#define SC_MAX_ZOOM_LEVEL 500
|
||||
// <<<<<<<<<<<<<<< END NON STD SCI PATCH <<<<<<<<<<<<<<<
|
||||
#define SCI_SETZOOM 2373
|
||||
#define SCI_GETZOOM 2374
|
||||
#define SC_DOCUMENTOPTION_DEFAULT 0
|
||||
@ -1046,14 +1044,6 @@ typedef sptr_t (*SciFnDirect)(sptr_t ptr, unsigned int iMessage, uptr_t wParam,
|
||||
#define SC_MOD_INSERTCHECK 0x100000
|
||||
#define SC_MOD_CHANGETABSTOPS 0x200000
|
||||
#define SC_MODEVENTMASKALL 0x3FFFFF
|
||||
// >>>>>>>>>>>>>>> BEG NON STD SCI PATCH >>>>>>>>>>>>>>>
|
||||
#define SC_IME_CLOSE 0
|
||||
#define SC_IME_OPEN 1
|
||||
#define SCI_GETIMEOPEN 3860 // to Neil: I do not know how to allocate number. Change it.
|
||||
#define SC_IME_MODE_NATIVE 0 // = IME_CMODE_ALPHANUMERIC
|
||||
#define SC_IME_MODE_CJK 1 // Other than IME_CMODE_ALPHANUMERIC
|
||||
#define SCI_GETIMEMODEACTIVE 3861 // to Neil: I do not know how to allocate number. Change it.
|
||||
// <<<<<<<<<<<<<<< END NON STD SCI PATCH <<<<<<<<<<<<<<<
|
||||
#define SC_UPDATE_CONTENT 0x1
|
||||
#define SC_UPDATE_SELECTION 0x2
|
||||
#define SC_UPDATE_V_SCROLL 0x4
|
||||
|
||||
@ -266,6 +266,11 @@ get int GetIMEInteraction=2678(,)
|
||||
# Choose to display the the IME in a winow or inline.
|
||||
set void SetIMEInteraction=2679(int imeInteraction,)
|
||||
|
||||
# >>>>>>>>>>>>>>> BEG NON STD SCI PATCH >>>>>>>>>>>>>>>
|
||||
get bool IsIMEOpen=2717(,)
|
||||
get bool IsIMEModeCJK=2718(,)
|
||||
# <<<<<<<<<<<<<<< END NON STD SCI PATCH <<<<<<<<<<<<<<<
|
||||
|
||||
enu MarkerSymbol=SC_MARK_
|
||||
val MARKER_MAX=31
|
||||
val SC_MARK_CIRCLE=0
|
||||
@ -949,6 +954,9 @@ get int GetPrintColourMode=2149(,)
|
||||
enu FindOption=SCFIND_
|
||||
val SCFIND_WHOLEWORD=0x2
|
||||
val SCFIND_MATCHCASE=0x4
|
||||
# >>>>>>>>>>>>>>> BEG NON STD SCI PATCH >>>>>>>>>>>>>>>
|
||||
val SCFIND_DOT_MATCH_ALL=0x1000
|
||||
# <<<<<<<<<<<<<<< END NON STD SCI PATCH <<<<<<<<<<<<<<<
|
||||
val SCFIND_WORDSTART=0x00100000
|
||||
val SCFIND_REGEXP=0x00200000
|
||||
val SCFIND_POSIX=0x00400000
|
||||
@ -2766,14 +2774,6 @@ val SC_MOD_INSERTCHECK=0x100000
|
||||
val SC_MOD_CHANGETABSTOPS=0x200000
|
||||
val SC_MODEVENTMASKALL=0x3FFFFF
|
||||
|
||||
// >>>>>>>>>>>>>>> BEG NON STD SCI PATCH >>>>>>>>>>>>>>>
|
||||
# modifiers for SCN_CHARADDED: normal input, inline IME tentative, IME full composited
|
||||
val SC_IME_CLOSE=0
|
||||
val SC_IME_OPEN=1
|
||||
val SC_IME_MODE_NATIVE=0
|
||||
val SC_IME_MODE_CJK=1
|
||||
// <<<<<<<<<<<<<<< END NON STD SCI PATCH <<<<<<<<<<<<<<<
|
||||
|
||||
enu Update=SC_UPDATE_
|
||||
val SC_UPDATE_CONTENT=0x1
|
||||
val SC_UPDATE_SELECTION=0x2
|
||||
@ -4910,29 +4910,6 @@ val SCE_SAS_MACRO_KEYWORD=12
|
||||
val SCE_SAS_BLOCK_KEYWORD=13
|
||||
val SCE_SAS_MACRO_FUNCTION=14
|
||||
val SCE_SAS_STATEMENT=15
|
||||
# Lexical states for SCLEX_AHK
|
||||
lex AHK=SCLEX_AHK SCE_AHK_
|
||||
val SCE_AHK_DEFAULT=0
|
||||
val SCE_AHK_COMMENTLINE=1
|
||||
val SCE_AHK_COMMENTBLOCK=2
|
||||
val SCE_AHK_ESCAPE=3
|
||||
val SCE_AHK_SYNOPERATOR=4
|
||||
val SCE_AHK_EXPOPERATOR=5
|
||||
val SCE_AHK_STRING=6
|
||||
val SCE_AHK_NUMBER=7
|
||||
val SCE_AHK_IDENTIFIER=8
|
||||
val SCE_AHK_VARREF=9
|
||||
val SCE_AHK_LABEL=10
|
||||
val SCE_AHK_WORD_CF=11
|
||||
val SCE_AHK_WORD_CMD=12
|
||||
val SCE_AHK_WORD_FN=13
|
||||
val SCE_AHK_WORD_DIR=14
|
||||
val SCE_AHK_WORD_KB=15
|
||||
val SCE_AHK_WORD_VAR=16
|
||||
val SCE_AHK_WORD_SP=17
|
||||
val SCE_AHK_WORD_UD=18
|
||||
val SCE_AHK_VARREFKW=19
|
||||
val SCE_AHK_ERROR=20
|
||||
|
||||
# Events
|
||||
|
||||
|
||||
@ -63,8 +63,8 @@ EditModel::EditModel() : braces{} {
|
||||
primarySelection = true;
|
||||
imeInteraction = imeWindowed;
|
||||
// >>>>>>>>>>>>>>> BEG NON STD SCI PATCH >>>>>>>>>>>>>>>
|
||||
isIMEOpen = SC_IME_CLOSE;
|
||||
isIMEModeCJK = 0;
|
||||
imeIsOpen = false;
|
||||
imeIsInModeCJK = false;
|
||||
// <<<<<<<<<<<<<<< END NON STD SCI PATCH <<<<<<<<<<<<<<<
|
||||
bidirectional = Bidirectional::bidiDisabled;
|
||||
foldFlags = 0;
|
||||
|
||||
@ -38,8 +38,8 @@ public:
|
||||
|
||||
enum IMEInteraction { imeWindowed, imeInline } imeInteraction;
|
||||
// >>>>>>>>>>>>>>> BEG NON STD SCI PATCH >>>>>>>>>>>>>>>
|
||||
bool isIMEOpen;
|
||||
bool isIMEModeCJK;
|
||||
bool imeIsOpen;
|
||||
bool imeIsInModeCJK;
|
||||
// <<<<<<<<<<<<<<< END NON STD SCI PATCH <<<<<<<<<<<<<<<
|
||||
|
||||
enum class Bidirectional { bidiDisabled, bidiL2R, bidiR2L } bidirectional;
|
||||
|
||||
@ -6789,11 +6789,11 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) {
|
||||
return imeInteraction;
|
||||
|
||||
// >>>>>>>>>>>>>>> BEG NON STD SCI PATCH >>>>>>>>>>>>>>>
|
||||
case SCI_GETIMEOPEN:
|
||||
return isIMEOpen;
|
||||
case SCI_ISIMEOPEN:
|
||||
return imeIsOpen;
|
||||
|
||||
case SCI_GETIMEMODEACTIVE:
|
||||
return isIMEModeCJK;
|
||||
case SCI_ISIMEMODECJK:
|
||||
return imeIsInModeCJK;
|
||||
// <<<<<<<<<<<<<<< END NON STD SCI PATCH <<<<<<<<<<<<<<<
|
||||
|
||||
case SCI_SETBIDIRECTIONAL:
|
||||
|
||||
@ -1029,26 +1029,30 @@ bool ScintillaWin::KoreanIME() noexcept {
|
||||
const int codePage = InputCodePage();
|
||||
return codePage == 949 || codePage == 1361;
|
||||
}
|
||||
|
||||
// >>>>>>>>>>>>>>> BEG NON STD SCI PATCH >>>>>>>>>>>>>>>
|
||||
bool ScintillaWin::IsIMEOpen() {
|
||||
IMContext imc(MainHWND());
|
||||
if (imc.hIMC) {
|
||||
if (ImmGetOpenStatus(imc.hIMC))
|
||||
return true;
|
||||
if (ImmGetOpenStatus(imc.hIMC)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
DWORD ScintillaWin::GetIMEInputMode() {
|
||||
DWORD dwConversion, dwSentence;
|
||||
IMContext imc(MainHWND());
|
||||
if (imc.hIMC && ImmGetOpenStatus(imc.hIMC)) {
|
||||
if (ImmGetConversionStatus(imc.hIMC, &dwConversion, &dwSentence))
|
||||
DWORD dwConversion = IME_CMODE_ALPHANUMERIC, dwSentence = IME_SMODE_NONE;
|
||||
if (ImmGetConversionStatus(imc.hIMC, &dwConversion, &dwSentence)) {
|
||||
return dwConversion;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
// <<<<<<<<<<<<<<< END NON STD SCI PATCH <<<<<<<<<<<<<<<
|
||||
|
||||
void ScintillaWin::MoveImeCarets(Sci::Position offset) {
|
||||
// Move carets relatively by bytes.
|
||||
for (size_t r = 0; r < sel.Count(); r++) {
|
||||
@ -1749,17 +1753,14 @@ sptr_t ScintillaWin::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam
|
||||
return ::DefWindowProc(MainHWND(), iMessage, wParam, lParam);
|
||||
|
||||
// >>>>>>>>>>>>>>> BEG NON STD SCI PATCH >>>>>>>>>>>>>>>
|
||||
case WM_IME_NOTIFY: {
|
||||
case WM_IME_NOTIFY:
|
||||
if (wParam == IMN_SETOPENSTATUS) {
|
||||
isIMEOpen = (IsIMEOpen() ? SC_IME_OPEN : SC_IME_CLOSE);
|
||||
imeIsOpen = IsIMEOpen();
|
||||
}
|
||||
if (wParam == IMN_SETOPENSTATUS || wParam == IMN_SETCONVERSIONMODE) {
|
||||
DWORD dwIMEInputMode = GetIMEInputMode();
|
||||
isIMEModeCJK = (dwIMEInputMode != IME_CMODE_ALPHANUMERIC ?
|
||||
SC_IME_MODE_CJK : SC_IME_MODE_NATIVE);
|
||||
imeIsInModeCJK = (GetIMEInputMode() != IME_CMODE_ALPHANUMERIC);
|
||||
}
|
||||
return ::DefWindowProc(MainHWND(), iMessage, wParam, lParam);
|
||||
}
|
||||
// <<<<<<<<<<<<<<< END NON STD SCI PATCH <<<<<<<<<<<<<<<
|
||||
|
||||
// These are not handled in Scintilla and its faster to dispatch them here.
|
||||
|
||||
138
src/Edit.c
138
src/Edit.c
@ -8353,142 +8353,4 @@ void EditShowZeroLengthCallTip(HWND hwnd, DocPos iPosition)
|
||||
g_CallTipType = CT_ZEROLEN_MATCH;
|
||||
}
|
||||
|
||||
|
||||
//=============================================================================
|
||||
//
|
||||
// SciInitThemes()
|
||||
//
|
||||
//WNDPROC pfnSciWndProc = NULL;
|
||||
//
|
||||
//FARPROC pfnOpenThemeData = NULL;
|
||||
//FARPROC pfnCloseThemeData = NULL;
|
||||
//FARPROC pfnDrawThemeBackground = NULL;
|
||||
//FARPROC pfnGetThemeBackgroundContentRect = NULL;
|
||||
//FARPROC pfnIsThemeActive = NULL;
|
||||
//FARPROC pfnDrawThemeParentBackground = NULL;
|
||||
//FARPROC pfnIsThemeBackgroundPartiallyTransparent = NULL;
|
||||
//
|
||||
//bool bThemesPresent = false;
|
||||
//extern bool bIsAppThemed;
|
||||
//extern HMODULE hModUxTheme;
|
||||
//
|
||||
//void SciInitThemes(HWND hwnd)
|
||||
//{
|
||||
// if (hModUxTheme) {
|
||||
//
|
||||
// pfnOpenThemeData = GetProcAddress(hModUxTheme,"OpenThemeData");
|
||||
// pfnCloseThemeData = GetProcAddress(hModUxTheme,"CloseThemeData");
|
||||
// pfnDrawThemeBackground = GetProcAddress(hModUxTheme,"DrawThemeBackground");
|
||||
// pfnGetThemeBackgroundContentRect = GetProcAddress(hModUxTheme,"GetThemeBackgroundContentRect");
|
||||
// pfnIsThemeActive = GetProcAddress(hModUxTheme,"IsThemeActive");
|
||||
// pfnDrawThemeParentBackground = GetProcAddress(hModUxTheme,"DrawThemeParentBackground");
|
||||
// pfnIsThemeBackgroundPartiallyTransparent = GetProcAddress(hModUxTheme,"IsThemeBackgroundPartiallyTransparent");
|
||||
//
|
||||
// pfnSciWndProc = (WNDPROC)SetWindowLongPtrW(hwnd,GWLP_WNDPROC,(LONG_PTR)&SciThemedWndProc);
|
||||
// bThemesPresent = true;
|
||||
// }
|
||||
//}
|
||||
//
|
||||
//
|
||||
////=============================================================================
|
||||
////
|
||||
//// SciThemedWndProc()
|
||||
////
|
||||
//LRESULT CALLBACK SciThemedWndProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam)
|
||||
//{
|
||||
// static RECT rcContent;
|
||||
//
|
||||
// if (umsg == WM_NCCALCSIZE) {
|
||||
// if (wParam) {
|
||||
// LRESULT lresult = CallWindowProcW(pfnSciWndProc,hwnd,WM_NCCALCSIZE,wParam,lParam);
|
||||
// NCCALCSIZE_PARAMS *csp = (NCCALCSIZE_PARAMS*)lParam;
|
||||
//
|
||||
// if (bThemesPresent && bIsAppThemed) {
|
||||
// HANDLE hTheme = (HANDLE)pfnOpenThemeData(hwnd,L"edit");
|
||||
// if(hTheme) {
|
||||
// bool bSuccess = false;
|
||||
// RECT rcClient;
|
||||
//
|
||||
// if(pfnGetThemeBackgroundContentRect(
|
||||
// hTheme,NULL,/*EP_EDITTEXT*/1,/*ETS_NORMAL*/1,&csp->rgrc[0],&rcClient) == S_OK) {
|
||||
// InflateRect(&rcClient,-1,-1);
|
||||
//
|
||||
// rcContent.left = rcClient.left-csp->rgrc[0].left;
|
||||
// rcContent.top = rcClient.top-csp->rgrc[0].top;
|
||||
// rcContent.right = csp->rgrc[0].right-rcClient.right;
|
||||
// rcContent.bottom = csp->rgrc[0].bottom-rcClient.bottom;
|
||||
//
|
||||
// CopyRect(&csp->rgrc[0],&rcClient);
|
||||
// bSuccess = true;
|
||||
// }
|
||||
// pfnCloseThemeData(hTheme);
|
||||
//
|
||||
// if (bSuccess)
|
||||
// return WVR_REDRAW;
|
||||
// }
|
||||
// }
|
||||
// return lresult;
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// else if (umsg == WM_NCPAINT) {
|
||||
// LRESULT lresult = CallWindowProcW(pfnSciWndProc,hwnd,WM_NCPAINT,wParam,lParam);
|
||||
// if(bThemesPresent && bIsAppThemed) {
|
||||
//
|
||||
// HANDLE hTheme = (HANDLE)pfnOpenThemeData(hwnd,L"edit");
|
||||
// if(hTheme) {
|
||||
// RECT rcBorder;
|
||||
// RECT rcClient;
|
||||
// int nState;
|
||||
//
|
||||
// HDC hdc = GetWindowDC(hwnd);
|
||||
//
|
||||
// GetWindowRect(hwnd,&rcBorder);
|
||||
// OffsetRect(&rcBorder,-rcBorder.left,-rcBorder.top);
|
||||
//
|
||||
// CopyRect(&rcClient,&rcBorder);
|
||||
// rcClient.left += rcContent.left;
|
||||
// rcClient.top += rcContent.top;
|
||||
// rcClient.right -= rcContent.right;
|
||||
// rcClient.bottom -= rcContent.bottom;
|
||||
//
|
||||
// ExcludeClipRect(hdc,rcClient.left,rcClient.top,rcClient.right,rcClient.bottom);
|
||||
//
|
||||
// if(pfnIsThemeBackgroundPartiallyTransparent(hTheme,/*EP_EDITTEXT*/1,/*ETS_NORMAL*/1))
|
||||
// pfnDrawThemeParentBackground(hwnd,hdc,&rcBorder);
|
||||
//
|
||||
// /*
|
||||
// ETS_NORMAL = 1
|
||||
// ETS_HOT = 2
|
||||
// ETS_SELECTED = 3
|
||||
// ETS_DISABLED = 4
|
||||
// ETS_FOCUSED = 5
|
||||
// ETS_READONLY = 6
|
||||
// ETS_ASSIST = 7
|
||||
// */
|
||||
//
|
||||
// if(!IsWindowEnabled(hwnd))
|
||||
// nState = /*ETS_DISABLED*/4;
|
||||
// else if (GetFocus() == hwnd)
|
||||
// nState = /*ETS_FOCUSED*/5;
|
||||
// else if(SendMessage(hwnd,SCI_GETREADONLY,0,0))
|
||||
// nState = /*ETS_READONLY*/6;
|
||||
// else
|
||||
// nState = /*ETS_NORMAL*/1;
|
||||
//
|
||||
// pfnDrawThemeBackground(hTheme,hdc,/*EP_EDITTEXT*/1,nState,&rcBorder,NULL);
|
||||
// pfnCloseThemeData(hTheme);
|
||||
//
|
||||
// ReleaseDC(hwnd,hdc);
|
||||
// return 0;
|
||||
// }
|
||||
// }
|
||||
// return lresult;
|
||||
// }
|
||||
//
|
||||
// return CallWindowProcW(pfnSciWndProc,hwnd,umsg,wParam,lParam);
|
||||
//}
|
||||
|
||||
|
||||
|
||||
/// End of Edit.c \\\
|
||||
|
||||
@ -426,29 +426,6 @@ HBITMAP ResizeImageForCurrentDPI(HBITMAP hbmp)
|
||||
}
|
||||
|
||||
|
||||
|
||||
//=============================================================================
|
||||
//
|
||||
// PrivateIsAppThemed()
|
||||
//
|
||||
extern HMODULE hModUxTheme;
|
||||
|
||||
bool PrivateIsAppThemed()
|
||||
{
|
||||
bool bIsAppThemed = IsWin8() ? true : false;
|
||||
|
||||
if (hModUxTheme && !bIsAppThemed)
|
||||
{
|
||||
FARPROC pfnIsAppThemed = GetProcAddress(hModUxTheme,"IsAppThemed");
|
||||
|
||||
if (pfnIsAppThemed) {
|
||||
bIsAppThemed = (bool)pfnIsAppThemed();
|
||||
}
|
||||
}
|
||||
return bIsAppThemed;
|
||||
}
|
||||
|
||||
|
||||
//=============================================================================
|
||||
//
|
||||
// PrivateSetCurrentProcessExplicitAppUserModelID()
|
||||
|
||||
@ -211,7 +211,6 @@ inline int ScaleToCurrentDPI(float fVal) { return float2int((fVal * g_uCurrentDP
|
||||
inline int ScaleFontSize(float fSize) { return float2int((fSize * g_uCurrentDPI) / (float)g_uCurrentPPI); }
|
||||
inline int ScaleFractionalFontSize(float fSize) { return float2int((fSize * 10.0f * g_uCurrentDPI) / (float)g_uCurrentPPI) * 10; }
|
||||
|
||||
bool PrivateIsAppThemed();
|
||||
HRESULT PrivateSetCurrentProcessExplicitAppUserModelID(PCWSTR);
|
||||
bool IsElevated();
|
||||
bool IsUserAdmin();
|
||||
|
||||
@ -27,6 +27,7 @@
|
||||
#define NOMINMAX 1
|
||||
#include <windows.h>
|
||||
#include <commctrl.h>
|
||||
#include <uxtheme.h>
|
||||
#include <shlobj.h>
|
||||
#include <shlwapi.h>
|
||||
#include <shellapi.h>
|
||||
@ -343,7 +344,6 @@ WIN32_FIND_DATA fdCurFile;
|
||||
|
||||
UINT msgTaskbarCreated = 0;
|
||||
|
||||
HMODULE hModUxTheme = NULL;
|
||||
HMODULE hRichEdit = NULL;
|
||||
|
||||
static bool g_bRunningWatch = false;
|
||||
@ -718,8 +718,6 @@ int WINAPI wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInst, _In_
|
||||
|
||||
msgTaskbarCreated = RegisterWindowMessage(L"TaskbarCreated");
|
||||
|
||||
if (!IsWin8()) { hModUxTheme = LoadLibrary(L"uxtheme.dll"); }
|
||||
|
||||
hRichEdit = LoadLibrary(L"RICHED20.DLL"); // Use "RichEdit20W" for control in .rc
|
||||
//hRichEdit = LoadLibrary(L"MSFTEDIT.DLL"); // Use "RichEdit50W" for control in .rc
|
||||
|
||||
@ -790,8 +788,6 @@ int WINAPI wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInst, _In_
|
||||
Scintilla_ReleaseResources();
|
||||
UnregisterClass(wchWndClass, g_hInstance);
|
||||
|
||||
if (hModUxTheme) { FreeLibrary(hModUxTheme); }
|
||||
|
||||
OleUninitialize();
|
||||
|
||||
if (g_hLngResContainer != g_hInstance) { FreeMUILibrary(g_hLngResContainer); }
|
||||
@ -1799,7 +1795,7 @@ LRESULT MsgCreate(HWND hwnd, WPARAM wParam,LPARAM lParam)
|
||||
hInstance,
|
||||
NULL);
|
||||
|
||||
if (PrivateIsAppThemed()) {
|
||||
if (IsAppThemed()) {
|
||||
|
||||
RECT rc, rc2;
|
||||
|
||||
@ -2051,13 +2047,12 @@ void CreateBars(HWND hwnd, HINSTANCE hInstance)
|
||||
|
||||
|
||||
REBARBANDINFO rbBand;
|
||||
bool const bIsPrivAppThemed = PrivateIsAppThemed();
|
||||
|
||||
rbBand.cbSize = sizeof(REBARBANDINFO);
|
||||
rbBand.fMask = /*RBBIM_COLORS | RBBIM_TEXT | RBBIM_BACKGROUND | */
|
||||
RBBIM_STYLE | RBBIM_CHILD | RBBIM_CHILDSIZE /*| RBBIM_SIZE*/;
|
||||
//rbBand.fStyle = /*RBBS_CHILDEDGE |*//* RBBS_BREAK |*/ RBBS_FIXEDSIZE /*| RBBS_GRIPPERALWAYS*/;
|
||||
rbBand.fStyle = bIsPrivAppThemed ? (RBBS_FIXEDSIZE | RBBS_CHILDEDGE) : RBBS_FIXEDSIZE;
|
||||
rbBand.fStyle = bIsAppThemed ? (RBBS_FIXEDSIZE | RBBS_CHILDEDGE) : RBBS_FIXEDSIZE;
|
||||
rbBand.hbmBack = NULL;
|
||||
rbBand.lpText = L"Toolbar";
|
||||
rbBand.hwndChild = g_hwndToolbar;
|
||||
@ -2070,7 +2065,7 @@ void CreateBars(HWND hwnd, HINSTANCE hInstance)
|
||||
GetWindowRect(g_hwndReBar,&rc);
|
||||
cyReBar = rc.bottom - rc.top;
|
||||
|
||||
cyReBarFrame = bIsPrivAppThemed ? 0 : 2;
|
||||
cyReBarFrame = bIsAppThemed ? 0 : 2;
|
||||
}
|
||||
|
||||
|
||||
@ -2215,7 +2210,7 @@ LRESULT MsgThemeChanged(HWND hwnd, WPARAM wParam ,LPARAM lParam)
|
||||
|
||||
// reinitialize edit frame
|
||||
|
||||
if (PrivateIsAppThemed()) {
|
||||
if (IsAppThemed()) {
|
||||
bIsAppThemed = true;
|
||||
|
||||
SetWindowLongPtr(g_hwndEdit,GWL_EXSTYLE,GetWindowLongPtr(g_hwndEdit,GWL_EXSTYLE) & ~WS_EX_CLIENTEDGE);
|
||||
@ -6366,13 +6361,10 @@ LRESULT MsgNotify(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
|
||||
if ((g_bAutoCompleteWords || g_bAutoCLexerKeyWords)) {
|
||||
//if (g_bAutoCinASCIIModeOnly && (ich > 0x7F) ) {
|
||||
bool isIMEModeActive,
|
||||
bIMEOpen = (bool)SendMessage(g_hwndEdit, SCI_GETIMEOPEN, 0, 0);
|
||||
if (bIMEOpen) { // || (scn->modifiers != SC_CHARADDED_NORMAL)
|
||||
isIMEModeActive = (bool)SendMessage(g_hwndEdit, SCI_GETIMEMODEACTIVE, 0, 0);
|
||||
if (isIMEModeActive ) {
|
||||
if (SciCall_IsIMEOpen()) {
|
||||
if (SciCall_IsIMEModeCJK()) {
|
||||
SciCall_AutoCCancel();
|
||||
return 0LL;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
//} //g_bAutoCinASCIIModeOnly section
|
||||
|
||||
@ -439,7 +439,16 @@ DeclareSciCallV1(SetUndoCollection, SETUNDOCOLLECTION, bool, bCollectUndo)
|
||||
DeclareSciCallV1(SetBufferedDraw, SETBUFFEREDDRAW, bool, value)
|
||||
DeclareSciCallV1(SetTechnology, SETTECHNOLOGY, int, technology)
|
||||
DeclareSciCallV1(SetBidirectional, SETBIDIRECTIONAL, int, direction)
|
||||
|
||||
|
||||
//=============================================================================
|
||||
//
|
||||
// IME
|
||||
//
|
||||
DeclareSciCallV1(SetIMEInteraction, SETIMEINTERACTION, int, interact)
|
||||
DeclareSciCallR0(IsIMEOpen, ISIMEOPEN, bool)
|
||||
DeclareSciCallR0(IsIMEModeCJK, ISIMEMODECJK, bool)
|
||||
|
||||
|
||||
//=============================================================================
|
||||
//
|
||||
|
||||
Loading…
Reference in New Issue
Block a user