Skip to content

Commit

Permalink
Allow type Tab (\t) in multiline Edit box.
Browse files Browse the repository at this point in the history
  • Loading branch information
zufuliu committed Nov 15, 2018
1 parent ab50add commit 57b0396
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 0 deletions.
5 changes: 5 additions & 0 deletions src/Edit.c
Original file line number Diff line number Diff line change
Expand Up @@ -5371,8 +5371,10 @@ static INT_PTR CALLBACK EditModifyLinesDlgProc(HWND hwnd, UINT umsg, WPARAM wPar
}

PMODLINESDATA pdata = (PMODLINESDATA)lParam;
MultilineEditSetup(hwnd, IDC_MODIFY_LINE_PREFIX);
SetDlgItemText(hwnd, IDC_MODIFY_LINE_PREFIX, pdata->pwsz1);
SendDlgItemMessage(hwnd, IDC_MODIFY_LINE_PREFIX, EM_LIMITTEXT, MAX_MODIFY_LINE_SIZE - 1, 0);
MultilineEditSetup(hwnd, IDC_MODIFY_LINE_APPEND);
SetDlgItemText(hwnd, IDC_MODIFY_LINE_APPEND, pdata->pwsz2);
SendDlgItemMessage(hwnd, IDC_MODIFY_LINE_APPEND, EM_LIMITTEXT, MAX_MODIFY_LINE_SIZE - 1, 0);
CenterDlgInParent(hwnd);
Expand Down Expand Up @@ -5622,8 +5624,10 @@ static INT_PTR CALLBACK EditEncloseSelectionDlgProc(HWND hwnd, UINT umsg, WPARAM
ResizeDlg_Init(hwnd, cxEncloseSelectionDlg, cyEncloseSelectionDlg, IDC_RESIZEGRIP2);

PENCLOSESELDATA pdata = (PENCLOSESELDATA)lParam;
MultilineEditSetup(hwnd, IDC_MODIFY_LINE_PREFIX);
SendDlgItemMessage(hwnd, IDC_MODIFY_LINE_PREFIX, EM_LIMITTEXT, MAX_MODIFY_LINE_SIZE - 1, 0);
SetDlgItemText(hwnd, IDC_MODIFY_LINE_PREFIX, pdata->pwsz1);
MultilineEditSetup(hwnd, IDC_MODIFY_LINE_APPEND);
SendDlgItemMessage(hwnd, IDC_MODIFY_LINE_APPEND, EM_LIMITTEXT, MAX_MODIFY_LINE_SIZE - 1, 0);
SetDlgItemText(hwnd, IDC_MODIFY_LINE_APPEND, pdata->pwsz2);
CenterDlgInParent(hwnd);
Expand Down Expand Up @@ -5698,6 +5702,7 @@ static INT_PTR CALLBACK EditInsertTagDlgProc(HWND hwnd, UINT umsg, WPARAM wParam
case WM_INITDIALOG: {
ResizeDlg_Init(hwnd, cxInsertTagDlg, cyInsertTagDlg, IDC_RESIZEGRIP2);

MultilineEditSetup(hwnd, IDC_MODIFY_LINE_PREFIX);
SendDlgItemMessage(hwnd, IDC_MODIFY_LINE_PREFIX, EM_LIMITTEXT, MAX_MODIFY_LINE_SIZE - 1, 0);
SetDlgItemText(hwnd, IDC_MODIFY_LINE_PREFIX, L"<tag>");

Expand Down
18 changes: 18 additions & 0 deletions src/Helpers.c
Original file line number Diff line number Diff line change
Expand Up @@ -850,6 +850,24 @@ void ResizeDlgCtl(HWND hwndDlg, int nCtlId, int dx, int dy) {
InvalidateRect(hwndCtl, NULL, TRUE);
}

// https://docs.microsoft.com/en-us/windows/desktop/Controls/subclassing-overview
// https://support.microsoft.com/en-us/help/102589/how-to-use-the-enter-key-from-edit-controls-in-a-dialog-box
static LRESULT CALLBACK MultilineEditProc(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam, UINT_PTR uIdSubclass, DWORD_PTR dwRefData) {
UNREFERENCED_PARAMETER(uIdSubclass);
UNREFERENCED_PARAMETER(dwRefData);

switch (umsg) {
case WM_GETDLGCODE:
return DLGC_WANTALLKEYS;
}

return DefSubclassProc(hwnd, umsg, wParam, lParam);
}

void MultilineEditSetup(HWND hwnd, int nCtlId) {
SetWindowSubclass(GetDlgItem(hwnd, nCtlId), MultilineEditProc, 0, 0);
}

//=============================================================================
//
// MakeBitmapButton()
Expand Down
1 change: 1 addition & 0 deletions src/Helpers.h
Original file line number Diff line number Diff line change
Expand Up @@ -394,6 +394,7 @@ void ResizeDlg_Size(HWND hwnd, LPARAM lParam, int *cx, int *cy);
void ResizeDlg_GetMinMaxInfo(HWND hwnd, LPARAM lParam);
HDWP DeferCtlPos(HDWP hdwp, HWND hwndDlg, int nCtlId, int dx, int dy, UINT uFlags);
void ResizeDlgCtl(HWND hwndDlg, int nCtlId, int dx, int dy);
void MultilineEditSetup(HWND hwnd, int nCtlId);
void MakeBitmapButton(HWND hwnd, int nCtlId, HINSTANCE hInstance, WORD wBmpId);
void MakeColorPickButton(HWND hwnd, int nCtlId, HINSTANCE hInstance, COLORREF crColor);
void DeleteBitmapButton(HWND hwnd, int nCtlId);
Expand Down

0 comments on commit 57b0396

Please sign in to comment.