+ enh: Non Modal Customize Schemes... dialog

This commit is contained in:
Rainer Kottenhoff 2018-03-11 19:35:22 +01:00
parent 3de9663aee
commit 415bf9979c
10 changed files with 488 additions and 279 deletions

View File

@ -1241,11 +1241,13 @@ INT_PTR CALLBACK FileMRUDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam)
ResizeDlg_Init(hwnd,cxFileMRUDlg,cyFileMRUDlg,IDC_RESIZEGRIP);
ListView_SetImageList(GetDlgItem(hwnd,IDC_FILEMRU),
(HIMAGELIST)SHGetFileInfo(L"C:\\",0,&shfi,sizeof(SHFILEINFO),SHGFI_SMALLICON | SHGFI_SYSICONINDEX),
(HIMAGELIST)SHGetFileInfo(L"C:\\",FILE_ATTRIBUTE_DIRECTORY,
&shfi,sizeof(SHFILEINFO),SHGFI_SMALLICON | SHGFI_SYSICONINDEX | SHGFI_USEFILEATTRIBUTES),
LVSIL_SMALL);
ListView_SetImageList(GetDlgItem(hwnd,IDC_FILEMRU),
(HIMAGELIST)SHGetFileInfo(L"C:\\",0,&shfi,sizeof(SHFILEINFO),SHGFI_LARGEICON | SHGFI_SYSICONINDEX),
(HIMAGELIST)SHGetFileInfo(L"C:\\",FILE_ATTRIBUTE_DIRECTORY,
&shfi,sizeof(SHFILEINFO),SHGFI_LARGEICON | SHGFI_SYSICONINDEX | SHGFI_USEFILEATTRIBUTES),
LVSIL_NORMAL);
//SetExplorerTheme(GetDlgItem(hwnd,IDC_FILEMRU));
@ -1445,7 +1447,7 @@ INT_PTR CALLBACK FileMRUDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam)
lvi.mask = LVIF_TEXT | LVIF_IMAGE;
SHGetFileInfo(L"Icon",FILE_ATTRIBUTE_NORMAL,&shfi,sizeof(SHFILEINFO),
SHGFI_USEFILEATTRIBUTES | SHGFI_SMALLICON | SHGFI_SYSICONINDEX);
SHGFI_SMALLICON | SHGFI_SYSICONINDEX | SHGFI_USEFILEATTRIBUTES);
lvi.iImage = shfi.iIcon;

View File

@ -83,13 +83,13 @@ BOOL DirList_Init(HWND hwnd,LPCWSTR pszHeader)
StringCchCopy(lpdl->szPath,COUNTOF(lpdl->szPath),L"");
// Add Imagelists
hil = (HIMAGELIST)SHGetFileInfo(L"C:\\",0,&shfi,sizeof(SHFILEINFO),
SHGFI_SMALLICON | SHGFI_SYSICONINDEX);
hil = (HIMAGELIST)SHGetFileInfo(L"C:\\",FILE_ATTRIBUTE_DIRECTORY,&shfi,sizeof(SHFILEINFO),
SHGFI_SMALLICON | SHGFI_SYSICONINDEX | SHGFI_USEFILEATTRIBUTES);
ListView_SetImageList(hwnd,hil,LVSIL_SMALL);
hil = (HIMAGELIST)SHGetFileInfo(L"C:\\",0,&shfi,sizeof(SHFILEINFO),
SHGFI_LARGEICON | SHGFI_SYSICONINDEX);
hil = (HIMAGELIST)SHGetFileInfo(L"C:\\",FILE_ATTRIBUTE_DIRECTORY,&shfi,sizeof(SHFILEINFO),
SHGFI_LARGEICON | SHGFI_SYSICONINDEX | SHGFI_USEFILEATTRIBUTES);
ListView_SetImageList(hwnd,hil,LVSIL_NORMAL);
@ -450,8 +450,19 @@ DWORD WINAPI DirList_IconThread(LPVOID lpParam)
if (!lpshi || NOERROR != lpshi->lpVtbl->GetIconOf(lpshi,lplvid->pidl,GIL_FORSHELL,&lvi.iImage))
{
pidl = IL_Create(lpdl->pidl,lpdl->cbidl,lplvid->pidl,0);
SHGetFileInfo((LPCWSTR)pidl,0,&shfi,sizeof(SHFILEINFO),SHGFI_PIDL | SHGFI_SYSICONINDEX | SHGFI_SMALLICON);
// get attributes of the shell object using its pidl.
lplvid->lpsf->lpVtbl->GetAttributesOf(lplvid->lpsf, 1, &lplvid->pidl, &dwAttributes);
DWORD attr = 0;
if ((dwAttributes & SFGAO_FOLDER) == SFGAO_FOLDER)
attr = FILE_ATTRIBUTE_DIRECTORY;
else
attr = FILE_ATTRIBUTE_NORMAL;
pidl = IL_Create(lpdl->pidl, lpdl->cbidl, lplvid->pidl, 0);
SHGetFileInfo((LPCWSTR)pidl,attr,&shfi,sizeof(SHFILEINFO),
SHGFI_PIDL | SHGFI_SYSICONINDEX | SHGFI_SMALLICON | SHGFI_USEFILEATTRIBUTES);
CoTaskMemFree(pidl);
lvi.iImage = shfi.iIcon;
}
@ -461,10 +472,7 @@ DWORD WINAPI DirList_IconThread(LPVOID lpParam)
lvi.state = 0;
// Link and Share Overlay
lplvid->lpsf->lpVtbl->GetAttributesOf(
lplvid->lpsf,
1,&lplvid->pidl,
&dwAttributes);
lplvid->lpsf->lpVtbl->GetAttributesOf(lplvid->lpsf,1,&lplvid->pidl,&dwAttributes);
if (dwAttributes & SFGAO_LINK)
{
@ -1019,17 +1027,14 @@ typedef struct tagDC_ITEMDATA
//
BOOL DriveBox_Init(HWND hwnd)
{
HIMAGELIST hil;
SHFILEINFO shfi;
hil = (HIMAGELIST)SHGetFileInfo(L"C:\\",0,&shfi,sizeof(SHFILEINFO),
SHGFI_SMALLICON | SHGFI_SYSICONINDEX);
HIMAGELIST hil = (HIMAGELIST)SHGetFileInfo(L"C:\\",FILE_ATTRIBUTE_DIRECTORY,&shfi,sizeof(SHFILEINFO),
SHGFI_SMALLICON | SHGFI_SYSICONINDEX | SHGFI_USEFILEATTRIBUTES);
SendMessage(hwnd,CBEM_SETIMAGELIST,0,(LPARAM)hil);
SendMessage(hwnd,CBEM_SETEXTENDEDSTYLE,CBES_EX_NOSIZELIMIT,CBES_EX_NOSIZELIMIT);
return TRUE;
}
@ -1376,7 +1381,7 @@ LRESULT DriveBox_GetDispInfo(HWND hwnd,LPARAM lParam)
NMCOMBOBOXEX *lpnmcbe;
LPDC_ITEMDATA lpdcid;
SHFILEINFO shfi;
WCHAR szTemp[256] = { L'\0' };
WCHAR szTemp[MAX_PATH] = { L'\0' };
lpnmcbe = (LPVOID)lParam;
lpdcid = (LPDC_ITEMDATA)lpnmcbe->ceItem.lParam;
@ -1391,8 +1396,19 @@ LRESULT DriveBox_GetDispInfo(HWND hwnd,LPARAM lParam)
// Get Icon Index
if (lpnmcbe->ceItem.mask & (CBEIF_IMAGE | CBEIF_SELECTEDIMAGE))
{
IL_GetDisplayName(lpdcid->lpsf,lpdcid->pidl,SHGDN_FORPARSING,szTemp,256);
SHGetFileInfo(szTemp,0,&shfi,sizeof(SHFILEINFO),SHGFI_SYSICONINDEX | SHGFI_SMALLICON);
DWORD dwAttributes = 0;
// get attributes of the shell object using its pidl.
lpdcid->lpsf->lpVtbl->GetAttributesOf(lpdcid->lpsf, 1, &lpdcid->pidl, &dwAttributes);
DWORD attr = 0;
if ((dwAttributes & SFGAO_FOLDER) == SFGAO_FOLDER)
attr = FILE_ATTRIBUTE_DIRECTORY;
else
attr = FILE_ATTRIBUTE_NORMAL;
IL_GetDisplayName(lpdcid->lpsf,lpdcid->pidl,SHGDN_FORPARSING,szTemp,MAX_PATH);
SHGetFileInfo(szTemp,attr,&shfi,sizeof(SHFILEINFO),
SHGFI_SYSICONINDEX | SHGFI_SMALLICON | SHGFI_USEFILEATTRIBUTES);
lpnmcbe->ceItem.iImage = shfi.iIcon;
lpnmcbe->ceItem.iSelectedImage = shfi.iIcon;
}

View File

@ -76,10 +76,10 @@ extern BOOL bFindReplCopySelOrClip;
static EDITFINDREPLACE efrSave;
static BOOL bSwitchedFindReplace = FALSE;
static int xFindReplaceDlgSave;
static int yFindReplaceDlgSave;
extern int xFindReplaceDlg;
extern int yFindReplaceDlg;
static int xFindReplaceDlgSave;
static int yFindReplaceDlgSave;
extern int g_iDefaultEOLMode;
extern int iLineEndings[3];
@ -800,7 +800,7 @@ BOOL EditPasteClipboard(HWND hwnd, BOOL bSwapClipBoard)
if (SciCall_IsSelectionEmpty() || (lineCount <= 1))
{
if (SciCall_IsSelectionEmpty())
if (SciCall_IsSelectionEmpty()) // SC_SEL_THIN
{
SciCall_Paste();
if (bSwapClipBoard) {
@ -834,7 +834,7 @@ BOOL EditPasteClipboard(HWND hwnd, BOOL bSwapClipBoard)
EditPaste2RectSel(hwnd, pClip);
// TODO: restore selection in case of swap clipboard
}
else // Selection: SC_SEL_STREAM, SC_SEL_LINES, SC_SEL_THIN
else // Selection: SC_SEL_STREAM, SC_SEL_LINES
{
if (bSwapClipBoard) {
SciCall_Copy();
@ -4811,7 +4811,6 @@ INT_PTR CALLBACK EditFindReplaceDlgProcW(HWND hwnd,UINT umsg,WPARAM wParam,LPARA
CopyMemory(lpefr, &efrSave, sizeof(EDITFINDREPLACE));
}
HMENU hmenu = GetSystemMenu(hwnd, FALSE);
GetString(IDS_SAVEPOS, tchBuf, COUNTOF(tchBuf));
InsertMenu(hmenu, 0, MF_BYPOSITION | MF_STRING | MF_ENABLED, IDS_SAVEPOS, tchBuf);
@ -4829,11 +4828,13 @@ INT_PTR CALLBACK EditFindReplaceDlgProcW(HWND hwnd,UINT umsg,WPARAM wParam,LPARA
}
return TRUE;
case WM_DESTROY:
{
DeleteObject(hBrushRed);
DeleteObject(hBrushGreen);
DeleteObject(hBrushBlue);
KillTimer(hwnd, IDT_TIMER_MRKALL);
if (iSaveMarkOcc >= 0) {
EnableCmd(GetMenu(g_hwndMain), IDM_VIEW_MARKOCCUR_ONOFF, TRUE);
@ -4845,8 +4846,6 @@ INT_PTR CALLBACK EditFindReplaceDlgProcW(HWND hwnd,UINT umsg,WPARAM wParam,LPARA
EnableCmd(GetMenu(g_hwndMain), IDM_VIEW_MARKOCCUR_VISIBLE, bMarkOccurrencesMatchVisible);
iReplacedOccurrences = 0;
KillTimer(hwnd, IDT_TIMER_MRKALL);
}
return FALSE;
@ -5328,6 +5327,10 @@ INT_PTR CALLBACK EditFindReplaceDlgProcW(HWND hwnd,UINT umsg,WPARAM wParam,LPARA
PostMessage(hwnd, WM_NEXTDLGCTL, (WPARAM)(GetDlgItem(hwnd, IDC_FINDTEXT)), 1);
break;
case IDACC_VIEWSCHEMECONFIG:
PostMessage(GetParent(hwnd), WM_COMMAND, MAKELONG(IDM_VIEW_SCHEMECONFIG, 1), 0);
break;
default:
//return FALSE; ???
break;
@ -6033,10 +6036,9 @@ void EditCompleteWord(HWND hwnd, BOOL autoInsert)
{
const char* NON_WORD = bAccelWordNavigation ? DelimCharsAccel : DelimChars;
DocPos iCurrentPos = (int)SendMessage(hwnd, SCI_GETCURRENTPOS, 0, 0);
DocLn iLine = (int)SendMessage(hwnd, SCI_LINEFROMPOSITION, iCurrentPos, 0);
DocPos iCurrentLinePos = iCurrentPos - (int)SendMessage(hwnd, SCI_POSITIONFROMLINE, (WPARAM)iLine, 0);
DocPos iStartWordPos = iCurrentLinePos;
const DocPos iCurrentPos = SciCall_GetCurrentPos();
const DocLn iLine = SciCall_LineFromPosition(iCurrentPos);
const DocPos iCurrentLinePos = iCurrentPos - SciCall_PositionFromLine(iLine);
struct Sci_TextRange tr = { { 0, -1 }, NULL };
BOOL bWordAllNumbers = TRUE;
struct WLIST* lListHead = NULL;
@ -6045,8 +6047,9 @@ void EditCompleteWord(HWND hwnd, BOOL autoInsert)
char* pLine = LocalAlloc(LPTR, (int)SendMessage(hwnd, SCI_GETLINE, (WPARAM)iLine, 0) + 1);
SendMessage(hwnd, SCI_GETLINE, (WPARAM)iLine, (LPARAM)pLine);
DocPos iStartWordPos = iCurrentLinePos;
while (iStartWordPos > 0 && !StrChrIA(NON_WORD, pLine[iStartWordPos - 1])) {
iStartWordPos--;
--iStartWordPos;
if (pLine[iStartWordPos] < '0' || pLine[iStartWordPos] > '9') {
bWordAllNumbers = FALSE;
}

View File

@ -520,7 +520,7 @@ BOOL SetWindowTitle(HWND hwnd,UINT uIDAppName,BOOL bIsElevated,UINT uIDUntitled,
if (StringCchCompareN(szCachedFile,COUNTOF(szCachedFile),lpszFile,MAX_PATH) != 0) {
SHFILEINFO shfi;
StringCchCopy(szCachedFile,COUNTOF(szCachedFile),lpszFile);
if (SHGetFileInfo2(lpszFile,0,&shfi,sizeof(SHFILEINFO),SHGFI_DISPLAYNAME))
if (SHGetFileInfo2(lpszFile,FILE_ATTRIBUTE_NORMAL,&shfi,sizeof(SHFILEINFO),SHGFI_DISPLAYNAME | SHGFI_USEFILEATTRIBUTES))
StringCchCopy(szCachedDisplayName,COUNTOF(szCachedDisplayName),shfi.szDisplayName);
else
StringCchCopy(szCachedDisplayName,COUNTOF(szCachedDisplayName),PathFindFileName(lpszFile));

View File

@ -42,6 +42,9 @@ extern WCHAR g_wchIniFile[MAX_PATH];
__forceinline void swapi(int* a, int* b) { int t = *a; *a = *b; *b = t; }
__forceinline void swapos(DocPos* a, DocPos* b) { DocPos t = *a; *a = *b; *b = t; }
__forceinline bool HasFractionCent(float f) { return ((((int)(f * 100.0)) % 100) != 0); }
#define IniGetString(lpSection,lpName,lpDefault,lpReturnedStr,nSize) \
GetPrivateProfileString(lpSection,lpName,(lpDefault),(lpReturnedStr),(nSize),g_wchIniFile)
#define IniGetInt(lpSection,lpName,nDefault) \

View File

@ -62,6 +62,7 @@ HWND g_hwndEdit = NULL;
HWND g_hwndStatus = NULL;
HWND g_hwndToolbar = NULL;
HWND g_hwndDlgFindReplace = NULL;
HWND g_hwndDlgCustomizeSchemes = NULL;
HWND hwndReBar = NULL;
HWND hwndEditFrame = NULL;
HWND hwndNextCBChain = NULL;
@ -245,6 +246,9 @@ int cxFavoritesDlg;
int cyFavoritesDlg;
int xFindReplaceDlg;
int yFindReplaceDlg;
int xCustomSchemesDlg;
int yCustomSchemesDlg;
LPWSTR lpFileList[32] = { NULL };
int cFileList = 0;
@ -427,6 +431,7 @@ int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInst,LPSTR lpCmdLine,int n
HWND hwnd;
HACCEL hAccMain;
HACCEL hAccFindReplace;
HACCEL hAccCoustomizeSchemes;
INITCOMMONCONTROLSEX icex;
//HMODULE hSciLexer;
WCHAR wchAppDir[2*MAX_PATH+4] = { L'\0' };
@ -547,7 +552,8 @@ int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInst,LPSTR lpCmdLine,int n
hAccMain = LoadAccelerators(hInstance,MAKEINTRESOURCE(IDR_MAINWND));
hAccFindReplace = LoadAccelerators(hInstance,MAKEINTRESOURCE(IDR_ACCFINDREPLACE));
hAccCoustomizeSchemes = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDR_ACCCUSTOMSCHEMES));
UpdateLineNumberWidth();
ObserveNotifyChangeEvent();
@ -555,10 +561,15 @@ int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInst,LPSTR lpCmdLine,int n
{
if (IsWindow(g_hwndDlgFindReplace) && ((msg.hwnd == g_hwndDlgFindReplace) || IsChild(g_hwndDlgFindReplace, msg.hwnd)))
{
int iTr = TranslateAccelerator(g_hwndDlgFindReplace, hAccFindReplace, &msg);
const int iTr = TranslateAccelerator(g_hwndDlgFindReplace, hAccFindReplace, &msg);
if (iTr || IsDialogMessage(g_hwndDlgFindReplace, &msg))
continue;
}
if (IsWindow(g_hwndDlgCustomizeSchemes) && ((msg.hwnd == g_hwndDlgCustomizeSchemes) || IsChild(g_hwndDlgCustomizeSchemes, msg.hwnd))) {
const int iTr = TranslateAccelerator(g_hwndDlgCustomizeSchemes, hAccCoustomizeSchemes, &msg);
if (iTr || IsDialogMessage(g_hwndDlgCustomizeSchemes, &msg))
continue;
}
if (!TranslateAccelerator(hwnd,hAccMain,&msg)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
@ -927,7 +938,7 @@ HWND InitInstance(HINSTANCE hInstance,LPSTR pszCmdLine,int nCmdShow)
WCHAR tchPageFmt[32] = { L'\0' };
if (StringCchLenW(g_wchCurFile,COUNTOF(g_wchCurFile))) {
SHGetFileInfo2(g_wchCurFile, 0, &shfi, sizeof(SHFILEINFO), SHGFI_DISPLAYNAME);
SHGetFileInfo2(g_wchCurFile, FILE_ATTRIBUTE_NORMAL, &shfi, sizeof(SHFILEINFO), SHGFI_DISPLAYNAME | SHGFI_USEFILEATTRIBUTES);
pszTitle = shfi.szDisplayName;
}
else {
@ -1543,6 +1554,10 @@ void MsgEndSession(HWND hwnd, UINT umsg)
if (IsWindow(g_hwndDlgFindReplace))
DestroyWindow(g_hwndDlgFindReplace);
// Destroy customize schemes
if (IsWindow(g_hwndDlgCustomizeSchemes))
DestroyWindow(g_hwndDlgCustomizeSchemes);
// call SaveSettings() when g_hwndToolbar is still valid
SaveSettings(FALSE);
@ -2254,6 +2269,9 @@ void MsgInitMenu(HWND hwnd,WPARAM wParam,LPARAM lParam)
EnableCmd(hmenu, CMD_CTRLDEL, i);
EnableCmd(hmenu, CMD_TIMESTAMPS, i);
EnableCmd(hmenu, IDM_VIEW_FONT, !IsWindow(g_hwndDlgCustomizeSchemes));
EnableCmd(hmenu, IDM_VIEW_CURRENTSCHEME, !IsWindow(g_hwndDlgCustomizeSchemes));
EnableCmd(hmenu,IDM_VIEW_TOGGLEFOLDS,i && (g_bCodeFoldingAvailable && g_bShowCodeFolding));
CheckCmd(hmenu,IDM_VIEW_FOLDING, (g_bCodeFoldingAvailable && g_bShowCodeFolding));
EnableCmd(hmenu, IDM_VIEW_FOLDING, g_bCodeFoldingAvailable);
@ -2557,7 +2575,7 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
WCHAR tchPageFmt[32] = { L'\0' };
if (StringCchLenW(g_wchCurFile,COUNTOF(g_wchCurFile))) {
SHGetFileInfo2(g_wchCurFile,0,&shfi,sizeof(SHFILEINFO),SHGFI_DISPLAYNAME);
SHGetFileInfo2(g_wchCurFile,FILE_ATTRIBUTE_NORMAL,&shfi,sizeof(SHFILEINFO),SHGFI_DISPLAYNAME | SHGFI_USEFILEATTRIBUTES);
pszTitle = shfi.szDisplayName;
}
else {
@ -2628,7 +2646,8 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
case IDM_FILE_ADDTOFAV:
if (StringCchLenW(g_wchCurFile,COUNTOF(g_wchCurFile))) {
SHFILEINFO shfi;
SHGetFileInfo2(g_wchCurFile,0,&shfi,sizeof(SHFILEINFO),SHGFI_DISPLAYNAME);
SHGetFileInfo2(g_wchCurFile,FILE_ATTRIBUTE_NORMAL,
&shfi,sizeof(SHFILEINFO),SHGFI_DISPLAYNAME | SHGFI_USEFILEATTRIBUTES);
AddToFavDlg(hwnd,shfi.szDisplayName,g_wchCurFile);
}
break;
@ -3409,13 +3428,13 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
if (StringCchLenW(g_wchCurFile,COUNTOF(g_wchCurFile))) {
if (LOWORD(wParam) == IDM_EDIT_INSERT_FILENAME) {
SHGetFileInfo2(g_wchCurFile,0,&shfi,sizeof(SHFILEINFO),SHGFI_DISPLAYNAME);
SHGetFileInfo2(g_wchCurFile,FILE_ATTRIBUTE_NORMAL,&shfi,sizeof(SHFILEINFO),
SHGFI_DISPLAYNAME | SHGFI_USEFILEATTRIBUTES);
pszInsert = shfi.szDisplayName;
}
else
pszInsert = g_wchCurFile;
}
else {
GetString(IDS_UNTITLED,tchUntitled,COUNTOF(tchUntitled));
pszInsert = tchUntitled;
@ -3852,27 +3871,31 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
case IDM_VIEW_SCHEMECONFIG:
Style_ConfigDlg(g_hwndEdit);
UpdateToolbar();
UpdateStatusbar();
UpdateLineNumberWidth();
if (!IsWindow(g_hwndDlgCustomizeSchemes)) {
g_hwndDlgCustomizeSchemes = Style_CustomizeSchemesDlg(g_hwndEdit);
}
else {
SetForegroundWindow(g_hwndDlgCustomizeSchemes);
}
PostMessage(g_hwndDlgCustomizeSchemes, WM_COMMAND, MAKELONG(IDC_SETCURLEXERTV, 1), 0);
break;
case IDM_VIEW_FONT:
Style_SetDefaultFont(g_hwndEdit, TRUE);
if (!IsWindow(g_hwndDlgCustomizeSchemes))
Style_SetDefaultFont(g_hwndEdit, TRUE);
UpdateToolbar();
UpdateStatusbar();
UpdateLineNumberWidth();
break;
case IDM_VIEW_CURRENTSCHEME:
Style_SetDefaultFont(g_hwndEdit, FALSE);
if (!IsWindow(g_hwndDlgCustomizeSchemes))
Style_SetDefaultFont(g_hwndEdit, FALSE);
UpdateToolbar();
UpdateStatusbar();
UpdateLineNumberWidth();
break;
case IDM_VIEW_WORDWRAP:
bWordWrap = (bWordWrap) ? FALSE : TRUE;
if (!bWordWrap)
@ -5484,6 +5507,17 @@ LRESULT MsgNotify(HWND hwnd,WPARAM wParam,LPARAM lParam)
else if (bAutoCompleteWords && !SendMessage(g_hwndEdit, SCI_AUTOCACTIVE, 0, 0)) {
EditCompleteWord(g_hwndEdit, FALSE);
}
//else if (SciCall_IsSelectionRectangle() || IsThinRectangleSelected()) {
// WCHAR wch[8] = { L'\0' };
// StringCchPrintfW(wch, COUNTOF(wch), L"%lc", (WCHAR)(scn->ch));
// char chr[8] = { '\0' };
// WideCharToMultiByteStrg(Encoding_SciGetCodePage(g_hwndEdit), wch, chr);
// if (SciCall_IsSelectionRectangle())
// EditPaste2RectSel(g_hwndEdit, chr);
// else
// SciCall_ReplaceSel(chr);
//}
}
break;
@ -5905,6 +5939,8 @@ void LoadSettings()
xFindReplaceDlg = IniSectionGetInt(pIniSection,L"FindReplaceDlgPosX",0);
yFindReplaceDlg = IniSectionGetInt(pIniSection,L"FindReplaceDlgPosY",0);
xCustomSchemesDlg = IniSectionGetInt(pIniSection, L"CustomSchemesDlgPosX", 0);
yCustomSchemesDlg = IniSectionGetInt(pIniSection, L"CustomSchemesDlgPosY", 0);
LoadIniSection(L"Settings2",pIniSection,cchIniSection);
@ -6144,8 +6180,10 @@ void SaveSettings(BOOL bSaveSettingsNow) {
IniSectionSetInt(pIniSection, L"FavoritesDlgSizeY", cyFavoritesDlg);
IniSectionSetInt(pIniSection, L"FindReplaceDlgPosX", xFindReplaceDlg);
IniSectionSetInt(pIniSection, L"FindReplaceDlgPosY", yFindReplaceDlg);
IniSectionSetInt(pIniSection, L"CustomSchemesDlgPosX", xCustomSchemesDlg);
IniSectionSetInt(pIniSection, L"CustomSchemesDlgPosY", yCustomSchemesDlg);
Toolbar_GetButtons(g_hwndToolbar, IDT_FILE_NEW, tchToolbarButtons, COUNTOF(tchToolbarButtons));
Toolbar_GetButtons(g_hwndToolbar, IDT_FILE_NEW, tchToolbarButtons, COUNTOF(tchToolbarButtons));
if (StringCchCompareX(tchToolbarButtons, TBBUTTON_DEFAULT_IDS) == 0) { tchToolbarButtons[0] = L'\0'; }
IniSectionSetString(pIniSection, L"ToolbarButtons", tchToolbarButtons);
@ -8482,7 +8520,8 @@ void SetNotifyIconTitle(HWND hwnd)
}
else if (StringCchLenW(g_wchCurFile,COUNTOF(g_wchCurFile))) {
SHGetFileInfo2(g_wchCurFile,0,&shfi,sizeof(SHFILEINFO),SHGFI_DISPLAYNAME);
SHGetFileInfo2(g_wchCurFile,FILE_ATTRIBUTE_NORMAL,
&shfi,sizeof(SHFILEINFO),SHGFI_DISPLAYNAME | SHGFI_USEFILEATTRIBUTES);
PathCompactPathEx(tchTitle,shfi.szDisplayName,COUNTOF(tchTitle)-4,0);
}
else

View File

@ -621,8 +621,8 @@ IDR_ACCFINDREPLACE ACCELERATORS
BEGIN
"F", IDACC_FIND, VIRTKEY, CONTROL, NOINVERT
"H", IDACC_REPLACE, VIRTKEY, CONTROL, NOINVERT
"O", IDACC_SAVEPOS, VIRTKEY, CONTROL, NOINVERT
"P", IDACC_RESETPOS, VIRTKEY, CONTROL, NOINVERT
"S", IDACC_SAVEPOS, VIRTKEY, CONTROL, NOINVERT
"R", IDACC_RESETPOS, VIRTKEY, CONTROL, NOINVERT
VK_F2, IDACC_SELTONEXT, VIRTKEY, CONTROL, ALT, NOINVERT
VK_F2, IDACC_SELTOPREV, VIRTKEY, SHIFT, CONTROL, ALT, NOINVERT
VK_F3, IDACC_FINDNEXT, VIRTKEY, NOINVERT
@ -631,6 +631,13 @@ BEGIN
VK_F4, IDACC_REPLACENEXT, VIRTKEY, NOINVERT
END
IDR_ACCCUSTOMSCHEMES ACCELERATORS
BEGIN
"S", IDACC_SAVEPOS, VIRTKEY, CONTROL, NOINVERT
"R", IDACC_RESETPOS, VIRTKEY, CONTROL, NOINVERT
"S", IDACC_PREVIEW, VIRTKEY, CONTROL, NOINVERT
VK_F12, IDACC_VIEWSCHEMECONFIG, VIRTKEY, CONTROL, NOINVERT
END
/////////////////////////////////////////////////////////////////////////////
//
@ -1559,8 +1566,9 @@ END
STRINGTABLE
BEGIN
IDS_SAVEPOS "&Save Position\tCtrl+O"
IDS_RESETPOS "&Reset Position\tCtrl+P"
IDS_SAVEPOS "&Save Position\tCtrl+S"
IDS_RESETPOS "&Reset Position\tCtrl+R"
IDS_PREVIEW "&Preview Settings\tCtrl+P"
END
STRINGTABLE

File diff suppressed because it is too large Load Diff

View File

@ -87,16 +87,16 @@ void Style_SetDefaultFont(HWND,BOOL);
void Style_ToggleUse2ndDefault(HWND);
BOOL Style_GetUse2ndDefault();
BOOL Style_SetUse2ndDefault(int); // in:BOOL
int Style_GetBaseFontSize(HWND);
int Style_SetBaseFontSize(HWND,int);
int Style_GetCurrentFontSize(HWND);
int Style_SetCurrentFontSize(HWND, int);
float Style_GetBaseFontSize(HWND);
float Style_SetBaseFontSize(HWND,float);
float Style_GetCurrentFontSize(HWND);
float Style_SetCurrentFontSize(HWND,float);
void Style_SetIndentGuides(HWND,BOOL);
BOOL Style_GetOpenDlgFilterStr(LPWSTR,int);
BOOL Style_StrGetFont(LPCWSTR,LPWSTR,int);
BOOL Style_StrGetFontQuality(LPCWSTR,LPWSTR,int);
BOOL Style_StrGetCharSet(LPCWSTR,int*);
BOOL Style_StrGetSize(LPCWSTR,int*);
BOOL Style_StrGetSize(LPCWSTR,float*);
BOOL Style_StrGetSizeStr(LPCWSTR,LPWSTR,int);
BOOL Style_StrGetColor(BOOL,LPCWSTR, COLORREF*);
BOOL Style_StrGetCase(LPCWSTR,int*);
@ -112,7 +112,7 @@ int Style_GetLexerIconId(PEDITLEXER);
BOOL Style_HasLexerForExt(LPCWSTR);
HTREEITEM Style_AddLexerToTreeView(HWND,PEDITLEXER);
INT_PTR CALLBACK Styles_ConfigDlgProc(HWND,UINT,WPARAM,LPARAM);
void Style_ConfigDlg(HWND);
HWND Style_CustomizeSchemesDlg(HWND);
INT_PTR CALLBACK Style_SelectLexerDlgProc(HWND,UINT,WPARAM,LPARAM);
void Style_SelectLexerDlg(HWND);
int Style_GetHotspotStyleID();

View File

@ -135,6 +135,7 @@
#define IDC_CHECK_OCC 231
#define IDC_PRINTER 232
#define IDC_USEASREADINGFALLBACK 233
#define IDR_ACCCUSTOMSCHEMES 234
#define IDACC_FIND 302
#define IDACC_REPLACE 303
#define IDACC_SAVEPOS 304
@ -145,8 +146,11 @@
#define IDACC_SAVEFIND 309
#define IDACC_SELTONEXT 310
#define IDACC_SELTOPREV 311
#define IDACC_VIEWSCHEMECONFIG 312
#define IDACC_PREVIEW 313
#define IDC_NFOASOEM 400
#define IDC_COMPILER 401
#define IDC_SETCURLEXERTV 402
#define IDD_READPW 501
#define IDC_CHECK1 502
#define IDC_EDIT1 503
@ -447,6 +451,7 @@
#define IDT_FILE_LAUNCH 40724
#define IDS_SAVEPOS 40800
#define IDS_RESETPOS 40801
#define IDS_PREVIEW 40802
#define IDS_ERR_LOADFILE 50000
#define IDS_ERR_SAVEFILE 50001
#define IDS_ERR_BROWSE 50002