Skip to content

Commit

Permalink
Change edit boxes in "Modify Lines", "Enclose Selection" and "Insert …
Browse files Browse the repository at this point in the history
…HTML/XML Tag" dialog to multiline.
  • Loading branch information
zufuliu committed Nov 13, 2018
1 parent afa8e84 commit 3942e3e
Show file tree
Hide file tree
Showing 4 changed files with 98 additions and 64 deletions.
89 changes: 55 additions & 34 deletions src/Edit.c
Original file line number Diff line number Diff line change
Expand Up @@ -5363,28 +5363,29 @@ typedef struct _modlinesdata {
} MODLINESDATA, *PMODLINESDATA;

extern int cxModifyLinesDlg;
extern int cyModifyLinesDlg;
extern int cxEncloseSelectionDlg;
extern int cyEncloseSelectionDlg;
extern int cxInsertTagDlg;
extern int cyInsertTagDlg;

static INT_PTR CALLBACK EditModifyLinesDlgProc(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam) {
static int id_hover;
static int id_capture;

static HFONT hFontNormal;
static HFONT hFontHover;

static HCURSOR hCursorNormal;
static HCURSOR hCursorHover;

switch (umsg) {
case WM_INITDIALOG: {
SetWindowLongPtr(hwnd, DWLP_USER, lParam);
ResizeDlg_InitX(hwnd, cxModifyLinesDlg, IDC_RESIZEGRIP2);
ResizeDlg_Init(hwnd, cxModifyLinesDlg, cyModifyLinesDlg, IDC_RESIZEGRIP2);

id_hover = 0;
id_capture = 0;

if (NULL == (hFontNormal = (HFONT)SendDlgItemMessage(hwnd, IDC_MODIFY_LINE_DLN_NP, WM_GETFONT, 0, 0))) {
HFONT hFontNormal = (HFONT)SendDlgItemMessage(hwnd, IDC_MODIFY_LINE_DLN_NP, WM_GETFONT, 0, 0);
if (hFontNormal == NULL) {
hFontNormal = GetStockObject(DEFAULT_GUI_FONT);
}

Expand All @@ -5408,21 +5409,34 @@ static INT_PTR CALLBACK EditModifyLinesDlgProc(HWND hwnd, UINT umsg, WPARAM wPar
return TRUE;

case WM_DESTROY:
ResizeDlg_Destroy(hwnd, &cxModifyLinesDlg, NULL);
ResizeDlg_Destroy(hwnd, &cxModifyLinesDlg, &cyModifyLinesDlg);
DeleteObject(hFontHover);
return FALSE;

case WM_SIZE: {
int dx;

ResizeDlg_Size(hwnd, lParam, &dx, NULL);
HDWP hdwp = BeginDeferWindowPos(5);
hdwp = DeferCtlPos(hdwp, hwnd, IDC_RESIZEGRIP2, dx, 0, SWP_NOSIZE);
hdwp = DeferCtlPos(hdwp, hwnd, IDOK, dx, 0, SWP_NOSIZE);
hdwp = DeferCtlPos(hdwp, hwnd, IDCANCEL, dx, 0, SWP_NOSIZE);
hdwp = DeferCtlPos(hdwp, hwnd, IDC_MODIFY_LINE_PREFIX, dx, 0, SWP_NOMOVE);
hdwp = DeferCtlPos(hdwp, hwnd, IDC_MODIFY_LINE_APPEND, dx, 0, SWP_NOMOVE);
int dy;

ResizeDlg_Size(hwnd, lParam, &dx, &dy);
const int cy = (dy > 0) ? (dy - dy / 2) : (dy / 2);
HDWP hdwp = BeginDeferWindowPos(15);
hdwp = DeferCtlPos(hdwp, hwnd, IDC_RESIZEGRIP2, dx, dy, SWP_NOSIZE);
hdwp = DeferCtlPos(hdwp, hwnd, IDOK, dx, dy, SWP_NOSIZE);
hdwp = DeferCtlPos(hdwp, hwnd, IDCANCEL, dx, dy, SWP_NOSIZE);
hdwp = DeferCtlPos(hdwp, hwnd, IDC_MODIFY_LINE_PREFIX, dx, cy, SWP_NOMOVE);
hdwp = DeferCtlPos(hdwp, hwnd, IDC_MODIFY_LINE_APPEND, 0, cy, SWP_NOSIZE);
hdwp = DeferCtlPos(hdwp, hwnd, IDC_MODIFY_LINE_TIP2, 0, cy, SWP_NOSIZE);
hdwp = DeferCtlPos(hdwp, hwnd, IDC_MODIFY_LINE_DLN_NP, 0, dy, SWP_NOSIZE);
hdwp = DeferCtlPos(hdwp, hwnd, IDC_MODIFY_LINE_DLN_ZP, 0, dy, SWP_NOSIZE);
hdwp = DeferCtlPos(hdwp, hwnd, IDC_MODIFY_LINE_TIP_DLN, 0, dy, SWP_NOSIZE);
hdwp = DeferCtlPos(hdwp, hwnd, IDC_MODIFY_LINE_CN_NP, 0, dy, SWP_NOSIZE);
hdwp = DeferCtlPos(hdwp, hwnd, IDC_MODIFY_LINE_CN_ZP, 0, dy, SWP_NOSIZE);
hdwp = DeferCtlPos(hdwp, hwnd, IDC_MODIFY_LINE_TIP_CN, 0, dy, SWP_NOSIZE);
hdwp = DeferCtlPos(hdwp, hwnd, IDC_MODIFY_LINE_ZCN_NP, 0, dy, SWP_NOSIZE);
hdwp = DeferCtlPos(hdwp, hwnd, IDC_MODIFY_LINE_ZCN_ZP, 0, dy, SWP_NOSIZE);
hdwp = DeferCtlPos(hdwp, hwnd, IDC_MODIFY_LINE_TIP_ZCN, 0, dy, SWP_NOSIZE);
EndDeferWindowPos(hdwp);
ResizeDlgCtl(hwnd, IDC_MODIFY_LINE_APPEND, dx, dy - cy);
}
return TRUE;

Expand Down Expand Up @@ -5634,7 +5648,7 @@ static INT_PTR CALLBACK EditEncloseSelectionDlgProc(HWND hwnd, UINT umsg, WPARAM
switch (umsg) {
case WM_INITDIALOG: {
SetWindowLongPtr(hwnd, DWLP_USER, lParam);
ResizeDlg_InitX(hwnd, cxEncloseSelectionDlg, IDC_RESIZEGRIP2);
ResizeDlg_Init(hwnd, cxEncloseSelectionDlg, cyEncloseSelectionDlg, IDC_RESIZEGRIP2);

PENCLOSESELDATA pdata = (PENCLOSESELDATA)lParam;
SendDlgItemMessage(hwnd, IDC_MODIFY_LINE_PREFIX, EM_LIMITTEXT, MAX_MODIFY_LINE_SIZE - 1, 0);
Expand All @@ -5646,20 +5660,24 @@ static INT_PTR CALLBACK EditEncloseSelectionDlgProc(HWND hwnd, UINT umsg, WPARAM
return TRUE;

case WM_DESTROY:
ResizeDlg_Destroy(hwnd, &cxEncloseSelectionDlg, NULL);
ResizeDlg_Destroy(hwnd, &cxEncloseSelectionDlg, &cyEncloseSelectionDlg);
return FALSE;

case WM_SIZE: {
int dx;

ResizeDlg_Size(hwnd, lParam, &dx, NULL);
HDWP hdwp = BeginDeferWindowPos(5);
hdwp = DeferCtlPos(hdwp, hwnd, IDC_RESIZEGRIP2, dx, 0, SWP_NOSIZE);
hdwp = DeferCtlPos(hdwp, hwnd, IDOK, dx, 0, SWP_NOSIZE);
hdwp = DeferCtlPos(hdwp, hwnd, IDCANCEL, dx, 0, SWP_NOSIZE);
hdwp = DeferCtlPos(hdwp, hwnd, IDC_MODIFY_LINE_PREFIX, dx, 0, SWP_NOMOVE);
hdwp = DeferCtlPos(hdwp, hwnd, IDC_MODIFY_LINE_APPEND, dx, 0, SWP_NOMOVE);
int dy;

ResizeDlg_Size(hwnd, lParam, &dx, &dy);
const int cy = (dy > 0) ? (dy - dy / 2) : (dy / 2);
HDWP hdwp = BeginDeferWindowPos(6);
hdwp = DeferCtlPos(hdwp, hwnd, IDC_RESIZEGRIP2, dx, dy, SWP_NOSIZE);
hdwp = DeferCtlPos(hdwp, hwnd, IDOK, dx, dy, SWP_NOSIZE);
hdwp = DeferCtlPos(hdwp, hwnd, IDCANCEL, dx, dy, SWP_NOSIZE);
hdwp = DeferCtlPos(hdwp, hwnd, IDC_MODIFY_LINE_PREFIX, dx, cy, SWP_NOMOVE);
hdwp = DeferCtlPos(hdwp, hwnd, IDC_MODIFY_LINE_APPEND, 0, cy, SWP_NOSIZE);
hdwp = DeferCtlPos(hdwp, hwnd, IDC_MODIFY_LINE_TIP2, 0, cy, SWP_NOSIZE);
EndDeferWindowPos(hdwp);
ResizeDlgCtl(hwnd, IDC_MODIFY_LINE_APPEND, dx, dy - cy);
}
return TRUE;

Expand Down Expand Up @@ -5707,7 +5725,7 @@ BOOL EditEncloseSelectionDlg(HWND hwnd, LPWSTR pwszOpen, LPWSTR pwszClose) {
static INT_PTR CALLBACK EditInsertTagDlgProc(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam) {
switch (umsg) {
case WM_INITDIALOG: {
ResizeDlg_InitX(hwnd, cxInsertTagDlg, IDC_RESIZEGRIP2);
ResizeDlg_Init(hwnd, cxInsertTagDlg, cyInsertTagDlg, IDC_RESIZEGRIP2);

SendDlgItemMessage(hwnd, IDC_MODIFY_LINE_PREFIX, EM_LIMITTEXT, MAX_MODIFY_LINE_SIZE - 1, 0);
SetDlgItemText(hwnd, IDC_MODIFY_LINE_PREFIX, L"<tag>");
Expand All @@ -5722,20 +5740,23 @@ static INT_PTR CALLBACK EditInsertTagDlgProc(HWND hwnd, UINT umsg, WPARAM wParam
return FALSE;

case WM_DESTROY:
ResizeDlg_Destroy(hwnd, &cxInsertTagDlg, NULL);
ResizeDlg_Destroy(hwnd, &cxInsertTagDlg, &cyInsertTagDlg);
return FALSE;

case WM_SIZE: {
int dx;

ResizeDlg_Size(hwnd, lParam, &dx, NULL);
HDWP hdwp = BeginDeferWindowPos(5);
hdwp = DeferCtlPos(hdwp, hwnd, IDC_RESIZEGRIP2, dx, 0, SWP_NOSIZE);
hdwp = DeferCtlPos(hdwp, hwnd, IDOK, dx, 0, SWP_NOSIZE);
hdwp = DeferCtlPos(hdwp, hwnd, IDCANCEL, dx, 0, SWP_NOSIZE);
hdwp = DeferCtlPos(hdwp, hwnd, IDC_MODIFY_LINE_PREFIX, dx, 0, SWP_NOMOVE);
hdwp = DeferCtlPos(hdwp, hwnd, IDC_MODIFY_LINE_APPEND, dx, 0, SWP_NOMOVE);
int dy;

ResizeDlg_Size(hwnd, lParam, &dx, &dy);
HDWP hdwp = BeginDeferWindowPos(6);
hdwp = DeferCtlPos(hdwp, hwnd, IDC_RESIZEGRIP2, dx, dy, SWP_NOSIZE);
hdwp = DeferCtlPos(hdwp, hwnd, IDOK, dx, dy, SWP_NOSIZE);
hdwp = DeferCtlPos(hdwp, hwnd, IDCANCEL, dx, dy, SWP_NOSIZE);
hdwp = DeferCtlPos(hdwp, hwnd, IDC_MODIFY_LINE_PREFIX, dx, dy, SWP_NOMOVE);
hdwp = DeferCtlPos(hdwp, hwnd, IDC_MODIFY_LINE_APPEND, 0, dy, SWP_NOSIZE);
hdwp = DeferCtlPos(hdwp, hwnd, IDC_MODIFY_LINE_TIP2, 0, dy, SWP_NOSIZE);
EndDeferWindowPos(hdwp);
ResizeDlgCtl(hwnd, IDC_MODIFY_LINE_APPEND, dx, 0);
}
return TRUE;

Expand Down
9 changes: 9 additions & 0 deletions src/Notepad2.c
Original file line number Diff line number Diff line change
Expand Up @@ -230,8 +230,11 @@ int cxFavoritesDlg;
int cyFavoritesDlg;
int cxAddFavoritesDlg;
int cxModifyLinesDlg;
int cyModifyLinesDlg;
int cxEncloseSelectionDlg;
int cyEncloseSelectionDlg;
int cxInsertTagDlg;
int cyInsertTagDlg;
int xFindReplaceDlg;
int yFindReplaceDlg;
int cxFindReplaceDlg;
Expand Down Expand Up @@ -5457,8 +5460,11 @@ void LoadSettings(void) {
cyFavoritesDlg = IniSectionGetInt(pIniSection, L"FavoritesDlgSizeY", 0);
cxAddFavoritesDlg = IniSectionGetInt(pIniSection, L"AddFavoritesDlgSizeX", 0);
cxModifyLinesDlg = IniSectionGetInt(pIniSection, L"ModifyLinesDlgSizeX", 0);
cyModifyLinesDlg = IniSectionGetInt(pIniSection, L"ModifyLinesDlgSizeY", 0);
cxEncloseSelectionDlg = IniSectionGetInt(pIniSection, L"EncloseSelectionDlgSizeX", 0);
cyEncloseSelectionDlg = IniSectionGetInt(pIniSection, L"EncloseSelectionDlgSizeY", 0);
cxInsertTagDlg = IniSectionGetInt(pIniSection, L"InsertTagDlgSizeX", 0);
cyInsertTagDlg = IniSectionGetInt(pIniSection, L"InsertTagDlgSizeY", 0);
xFindReplaceDlg = IniSectionGetInt(pIniSection, L"FindReplaceDlgPosX", 0);
yFindReplaceDlg = IniSectionGetInt(pIniSection, L"FindReplaceDlgPosY", 0);
cxFindReplaceDlg = IniSectionGetInt(pIniSection, L"FindReplaceDlgSizeX", 0);
Expand Down Expand Up @@ -5671,8 +5677,11 @@ void SaveSettings(BOOL bSaveSettingsNow) {
IniSectionSetInt(pIniSection, L"FavoritesDlgSizeY", cyFavoritesDlg);
IniSectionSetInt(pIniSection, L"AddFavoritesDlgSizeX", cxAddFavoritesDlg);
IniSectionSetInt(pIniSection, L"ModifyLinesDlgSizeX", cxModifyLinesDlg);
IniSectionSetInt(pIniSection, L"ModifyLinesDlgSizeY", cyModifyLinesDlg);
IniSectionSetInt(pIniSection, L"EncloseSelectionDlgSizeX", cxEncloseSelectionDlg);
IniSectionSetInt(pIniSection, L"EncloseSelectionDlgSizeY", cyEncloseSelectionDlg);
IniSectionSetInt(pIniSection, L"InsertTagDlgSizeX", cxInsertTagDlg);
IniSectionSetInt(pIniSection, L"InsertTagDlgSizeY", cyInsertTagDlg);
IniSectionSetInt(pIniSection, L"FindReplaceDlgPosX", xFindReplaceDlg);
IniSectionSetInt(pIniSection, L"FindReplaceDlgPosY", yFindReplaceDlg);
IniSectionSetInt(pIniSection, L"FindReplaceDlgSizeX", cxFindReplaceDlg);
Expand Down
60 changes: 30 additions & 30 deletions src/Notepad2.rc
Original file line number Diff line number Diff line change
Expand Up @@ -1263,55 +1263,55 @@ BEGIN
PUSHBUTTON "Cancel",IDCANCEL,73,24,50,14
END

IDD_MODIFYLINES DIALOGEX 0, 0, 260, 121
IDD_MODIFYLINES DIALOGEX 0, 0, 260, 129
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Modify Lines"
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN
LTEXT "&Prefix text to lines:",IDC_STATIC,7,6,96,8
EDITTEXT IDC_MODIFY_LINE_PREFIX,7,18,246,14,ES_AUTOHSCROLL
LTEXT "&Append text to lines:",IDC_STATIC,7,37,97,8
EDITTEXT IDC_MODIFY_LINE_APPEND,7,48,246,14,ES_AUTOHSCROLL
DEFPUSHBUTTON "OK",IDOK,147,100,50,14
PUSHBUTTON "Cancel",IDCANCEL,203,100,50,14
LTEXT "$(L)",IDC_MODIFY_LINE_DLN_NP,7,68,21,8
LTEXT "$(0L)",IDC_MODIFY_LINE_DLN_ZP,27,68,27,8
LTEXT "Document line number.",IDC_STATIC,51,68,118,8
LTEXT "$(N)",IDC_MODIFY_LINE_CN_NP,7,78,22,8
LTEXT "$(0N)",IDC_MODIFY_LINE_CN_ZP,27,78,25,8
LTEXT "Continuous number.",IDC_STATIC,51,78,107,8
LTEXT "$(I)",IDC_MODIFY_LINE_ZCN_NP,7,88,21,8
LTEXT "$(0I)",IDC_MODIFY_LINE_ZCN_ZP,27,88,25,8
LTEXT "Continuous number (zero-based).",IDC_STATIC,51,88,125,8
SCROLLBAR IDC_RESIZEGRIP2,7,100,10,10
EDITTEXT IDC_MODIFY_LINE_PREFIX,7,18,246,18,ES_MULTILINE | ES_AUTOVSCROLL | WS_VSCROLL | ES_WANTRETURN
LTEXT "&Append text to lines:",IDC_MODIFY_LINE_TIP2,7,41,97,8
EDITTEXT IDC_MODIFY_LINE_APPEND,7,52,246,18,ES_MULTILINE | ES_AUTOVSCROLL | WS_VSCROLL | ES_WANTRETURN
DEFPUSHBUTTON "OK",IDOK,147,108,50,14
PUSHBUTTON "Cancel",IDCANCEL,203,108,50,14
LTEXT "$(L)",IDC_MODIFY_LINE_DLN_NP,7,76,21,8
LTEXT "$(0L)",IDC_MODIFY_LINE_DLN_ZP,27,76,27,8
LTEXT "Document line number.",IDC_MODIFY_LINE_TIP_DLN,51,76,118,8
LTEXT "$(N)",IDC_MODIFY_LINE_CN_NP,7,86,22,8
LTEXT "$(0N)",IDC_MODIFY_LINE_CN_ZP,27,86,25,8
LTEXT "Continuous number.",IDC_MODIFY_LINE_TIP_CN,51,86,107,8
LTEXT "$(I)",IDC_MODIFY_LINE_ZCN_NP,7,96,21,8
LTEXT "$(0I)",IDC_MODIFY_LINE_ZCN_ZP,27,96,25,8
LTEXT "Continuous number (zero-based).",IDC_MODIFY_LINE_TIP_ZCN,51,96,125,8
SCROLLBAR IDC_RESIZEGRIP2,7,108,10,10
END

IDD_INSERTTAG DIALOGEX 0, 0, 264, 90
IDD_INSERTTAG DIALOGEX 0, 0, 264, 94
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Insert HTML/XML Tag"
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN
LTEXT "&Opening tag (with attributes):",IDC_STATIC,7,7,130,8
EDITTEXT IDC_MODIFY_LINE_PREFIX,7,18,250,14,ES_AUTOHSCROLL
LTEXT "&Closing tag (can be edited):",IDC_STATIC,7,37,118,8
EDITTEXT IDC_MODIFY_LINE_APPEND,7,48,250,14,ES_AUTOHSCROLL
DEFPUSHBUTTON "OK",IDOK,151,69,50,14
PUSHBUTTON "Cancel",IDCANCEL,207,69,50,14
SCROLLBAR IDC_RESIZEGRIP2,7,69,10,10
EDITTEXT IDC_MODIFY_LINE_PREFIX,7,18,250,18,ES_MULTILINE | ES_AUTOVSCROLL | WS_VSCROLL | ES_WANTRETURN
LTEXT "&Closing tag (can be edited):",IDC_MODIFY_LINE_TIP2,7,41,118,8
EDITTEXT IDC_MODIFY_LINE_APPEND,7,52,250,14,ES_AUTOHSCROLL
DEFPUSHBUTTON "OK",IDOK,151,73,50,14
PUSHBUTTON "Cancel",IDCANCEL,207,73,50,14
SCROLLBAR IDC_RESIZEGRIP2,7,73,10,10
END

IDD_ENCLOSESELECTION DIALOGEX 0, 0, 248, 94
IDD_ENCLOSESELECTION DIALOGEX 0, 0, 248, 102
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Enclose Selection"
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN
LTEXT "Insert &before selection:",IDC_STATIC,7,7,114,8
EDITTEXT IDC_MODIFY_LINE_PREFIX,7,18,234,14,ES_AUTOHSCROLL
LTEXT "Insert &after selection:",IDC_STATIC,7,37,116,8
EDITTEXT IDC_MODIFY_LINE_APPEND,7,48,234,14,ES_AUTOHSCROLL
DEFPUSHBUTTON "OK",IDOK,135,73,50,14
PUSHBUTTON "Cancel",IDCANCEL,191,73,50,14
SCROLLBAR IDC_RESIZEGRIP2,7,73,10,10
EDITTEXT IDC_MODIFY_LINE_PREFIX,7,18,234,18,ES_MULTILINE | ES_AUTOVSCROLL | WS_VSCROLL | ES_WANTRETURN
LTEXT "Insert &after selection:",IDC_MODIFY_LINE_TIP2,7,41,116,8
EDITTEXT IDC_MODIFY_LINE_APPEND,7,52,234,18,ES_MULTILINE | ES_AUTOVSCROLL | WS_VSCROLL | ES_WANTRETURN
DEFPUSHBUTTON "OK",IDOK,135,81,50,14
PUSHBUTTON "Cancel",IDCANCEL,191,81,50,14
SCROLLBAR IDC_RESIZEGRIP2,7,81,10,10
END

IDD_INFOBOX_OK DIALOGEX 0, 0, 244, 74
Expand Down
4 changes: 4 additions & 0 deletions src/resource.h
Original file line number Diff line number Diff line change
Expand Up @@ -215,12 +215,16 @@
#define IDD_MODIFYLINES 111
#define IDC_MODIFY_LINE_PREFIX 100
#define IDC_MODIFY_LINE_APPEND 101
#define IDC_MODIFY_LINE_TIP2 103
#define IDC_MODIFY_LINE_DLN_NP 200
#define IDC_MODIFY_LINE_DLN_ZP 201
#define IDC_MODIFY_LINE_CN_NP 202
#define IDC_MODIFY_LINE_CN_ZP 203
#define IDC_MODIFY_LINE_ZCN_NP 204
#define IDC_MODIFY_LINE_ZCN_ZP 205
#define IDC_MODIFY_LINE_TIP_DLN 206
#define IDC_MODIFY_LINE_TIP_CN 207
#define IDC_MODIFY_LINE_TIP_ZCN 208
// Insert HTML/XML Tag
#define IDD_INSERTTAG 114
// Enclose Selection
Expand Down

0 comments on commit 3942e3e

Please sign in to comment.