Add new DPI support to preference dialog

ref #14959

Close #15022
This commit is contained in:
ozone10 2024-04-20 19:55:58 +02:00 committed by Don Ho
parent 4031339c58
commit 752777086e
5 changed files with 168 additions and 115 deletions

View File

@ -1030,7 +1030,9 @@ namespace NppDarkMode
{
RECT rcBtn{};
::GetClientRect(hWnd, &rcBtn);
szBtn = { rcBtn.right - rcBtn.left, rcBtn.bottom - rcBtn.top };
const UINT dpi = DPIManagerV2::getDpiForParent(hWnd);
szBtn.cx = DPIManagerV2::unscale(rcBtn.right - rcBtn.left, dpi);
szBtn.cy = DPIManagerV2::unscale(rcBtn.bottom - rcBtn.top, dpi);
isSizeSet = (szBtn.cx != 0 && szBtn.cy != 0);
}
break;
@ -1238,21 +1240,6 @@ namespace NppDarkMode
switch (uMsg)
{
case WM_SETBUTTONIDEALSIZE:
{
if (pButtonData->isSizeSet)
{
SIZE szBtn{};
if (Button_GetIdealSize(hWnd, &szBtn) == TRUE)
{
const int cx = std::min<LONG>(szBtn.cx, pButtonData->szBtn.cx);
const int cy = std::min<LONG>(szBtn.cy, pButtonData->szBtn.cy);
::SetWindowPos(hWnd, nullptr, 0, 0, cx, cy, SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE | SWP_NOOWNERZORDER);
}
}
return 0;
}
case WM_UPDATEUISTATE:
if (HIWORD(wParam) & (UISF_HIDEACCEL | UISF_HIDEFOCUS))
{
@ -1280,6 +1267,21 @@ namespace NppDarkMode
case WM_DPICHANGED_AFTERPARENT:
{
pButtonData->closeTheme();
[[fallthrough]];
}
case WM_SETBUTTONIDEALSIZE:
{
if (pButtonData->isSizeSet)
{
SIZE szBtn{};
if (Button_GetIdealSize(hWnd, &szBtn) == TRUE)
{
const UINT dpi = DPIManagerV2::getDpiForParent(hWnd);
const int cx = std::min<LONG>(szBtn.cx, DPIManagerV2::scale(pButtonData->szBtn.cx, dpi));
const int cy = std::min<LONG>(szBtn.cy, DPIManagerV2::scale(pButtonData->szBtn.cy, dpi));
::SetWindowPos(hWnd, nullptr, 0, 0, cx, cy, SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE | SWP_NOOWNERZORDER);
}
}
return 0;
}

View File

@ -241,10 +241,10 @@ BEGIN
GROUPBOX "Default Open/Save file Directory",IDC_OPENSAVEDIR_GR_STATIC,110,29,232,101,BS_CENTER
CONTROL "Follow current document",IDC_OPENSAVEDIR_FOLLOWCURRENT_RADIO,"Button",BS_AUTORADIOBUTTON | WS_GROUP,118,60,200,10
CONTROL "Remember last used directory",IDC_OPENSAVEDIR_REMEMBERLAST_RADIO,"Button",BS_AUTORADIOBUTTON,118,75,217,10
CONTROL "",IDC_OPENSAVEDIR_ALWAYSON_RADIO,"Button",BS_AUTORADIOBUTTON,118,89,11,10
EDITTEXT IDC_OPENSAVEDIR_ALWAYSON_EDIT,134,88,179,14,ES_AUTOHSCROLL
PUSHBUTTON "...",IDD_OPENSAVEDIR_ALWAYSON_BROWSE_BUTTON,320,87,16,14
CONTROL "Open all files of folder instead of launching Folder as Workspace on folder dropping",IDC_OPENSAVEDIR_CHECK_DROPFOLDEROPENFILES, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,110, 145,342,10
CONTROL "",IDC_OPENSAVEDIR_ALWAYSON_RADIO,"Button",BS_AUTORADIOBUTTON,118,90,11,10
EDITTEXT IDC_OPENSAVEDIR_ALWAYSON_EDIT,134,89,179,12,ES_AUTOHSCROLL
PUSHBUTTON "...",IDD_OPENSAVEDIR_ALWAYSON_BROWSE_BUTTON,320,88,16,14
CONTROL "Open all files of folder instead of launching Folder as Workspace on folder dropping",IDC_OPENSAVEDIR_CHECK_DROPFOLDEROPENFILES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,110,145,342,10
END
@ -397,24 +397,25 @@ STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
GROUPBOX "Session snapshot and periodic backup",IDC_BACKUPDIR_RESTORESESSION_GRP_STATIC,79,1,289,98,BS_CENTER
CONTROL "Remember current session for next launch",IDC_CHECK_REMEMBERSESSION,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,90,10,270,10
CONTROL "Enable session snapshot and periodic backup",IDC_BACKUPDIR_RESTORESESSION_CHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,90,25,270,10
EDITTEXT IDC_BACKUPDIR_RESTORESESSION_EDIT,164,40,21,14,ES_NUMBER
RTEXT "Backup in every",IDD_BACKUPDIR_RESTORESESSION_STATIC1,82,42,78,8
LTEXT "seconds",IDD_BACKUPDIR_RESTORESESSION_STATIC2,190,42,66,8
RTEXT "Backup path:",IDD_BACKUPDIR_RESTORESESSION_PATHLABEL_STATIC,85,60,61,8
CONTROL "Remember inaccessible files from past session",IDC_CHECK_KEEPABSENTFILESINSESSION,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,90,87,270,10
CONTROL "Remember current session for next launch",IDC_CHECK_REMEMBERSESSION,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,85,14,270,10
CONTROL "Enable session snapshot and periodic backup",IDC_BACKUPDIR_RESTORESESSION_CHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,85,29,270,10
RTEXT "Backup in every",IDD_BACKUPDIR_RESTORESESSION_STATIC1,82,46,78,8
EDITTEXT IDC_BACKUPDIR_RESTORESESSION_EDIT,164,44,21,12,ES_CENTER | ES_NUMBER
LTEXT "seconds",IDD_BACKUPDIR_RESTORESESSION_STATIC2,190,46,66,8
RTEXT "Backup path:",IDD_BACKUPDIR_RESTORESESSION_PATHLABEL_STATIC,85,64,61,8
EDITTEXT IDD_BACKUPDIR_RESTORESESSION_PATH_EDIT,153,62,208,12,ES_AUTOHSCROLL | ES_READONLY
CONTROL "Remember inaccessible files from past session",IDC_CHECK_KEEPABSENTFILESINSESSION,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,85,83,270,10
EDITTEXT IDD_BACKUPDIR_RESTORESESSION_PATH_EDIT,153,58,208,14,ES_AUTOHSCROLL | ES_READONLY
GROUPBOX "Backup on save",IDC_BACKUPDIR_GRP_STATIC,79,102,289,101,BS_CENTER
CONTROL "None",IDC_RADIO_BKNONE,"Button",BS_AUTORADIOBUTTON | WS_GROUP,104,111,87,10
CONTROL "Simple backup",IDC_RADIO_BKSIMPLE,"Button",BS_AUTORADIOBUTTON,104,125,111,10
CONTROL "Verbose backup",IDC_RADIO_BKVERBOSE,"Button",BS_AUTORADIOBUTTON,104,138,111,10
GROUPBOX "Custom Backup Directory",IDC_BACKUPDIR_USERCUSTOMDIR_GRPSTATIC,95,156,260,40
CONTROL "",IDC_BACKUPDIR_CHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,90,156,8,10
RTEXT "Directory :",IDD_BACKUPDIR_STATIC,99,173,40,8
EDITTEXT IDC_BACKUPDIR_EDIT,146,171,179,14,ES_AUTOHSCROLL
PUSHBUTTON "...",IDD_BACKUPDIR_BROWSE_BUTTON,332,171,16,14
CONTROL "None",IDC_RADIO_BKNONE,"Button",BS_AUTORADIOBUTTON | WS_GROUP,85,115,87,10
CONTROL "Simple backup",IDC_RADIO_BKSIMPLE,"Button",BS_AUTORADIOBUTTON,85,128,111,10
CONTROL "Verbose backup",IDC_RADIO_BKVERBOSE,"Button",BS_AUTORADIOBUTTON,85,141,111,10
GROUPBOX "",IDC_BACKUPDIR_USERCUSTOMDIR_GRPSTATIC,89,156,269,37
CONTROL "Custom Backup Directory",IDC_BACKUPDIR_CHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,85,156,200,10
RTEXT "Directory:",IDD_BACKUPDIR_STATIC,95,173,40,8
EDITTEXT IDC_BACKUPDIR_EDIT,141,171,185,12,ES_AUTOHSCROLL
PUSHBUTTON "...",IDD_BACKUPDIR_BROWSE_BUTTON,333,170,16,14
END
@ -479,7 +480,7 @@ BEGIN
RTEXT "yyyy-MM-dd HH:mm:ss\nH:m d/M/yyyy\nMMM d, yyyy tt h:m",IDC_STATIC,36,118,77,25
LTEXT "1985-10-26 16:24:42\n16:24 26/10/1985\nOct 26, 1985 PM 4:24",IDC_STATIC,136,118,94,25
RTEXT "Custom format :",IDD_DATETIMEFORMAT_STATIC,14,148,77,8
EDITTEXT IDC_DATETIMEFORMAT_EDIT,92,146,175,14,ES_AUTOHSCROLL
EDITTEXT IDC_DATETIMEFORMAT_EDIT,92,146,175,12,ES_AUTOHSCROLL
LTEXT "",IDD_DATETIMEFORMAT_RESULT_STATIC,94,163,180,8
GROUPBOX "Panel State and [-nosession] *",IDC_PANEL_IGNORESESSION_GB_STATIC,288,3,160,175,BS_CENTER
@ -503,17 +504,17 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
GROUPBOX "Word character list",IDC_WORDCHARLIST_GB_STATIC,89,2,268,93,BS_CENTER
CONTROL "Use default Word character list as it is",IDC_RADIO_WORDCHAR_DEFAULT,"Button",BS_AUTORADIOBUTTON | WS_GROUP,100,18,250,10
CONTROL "Add your character as part of word\r(don't choose it unless you know what you're doing)",IDC_RADIO_WORDCHAR_CUSTOM,"Button",BS_AUTORADIOBUTTON | BS_MULTILINE | WS_GROUP,100,32,250,20
EDITTEXT IDC_WORDCHAR_CUSTOM_EDIT,111,54,180,14,ES_AUTOHSCROLL
CONTROL "Add your character as part of word\r(don't choose it unless you know what you're doing)",IDC_RADIO_WORDCHAR_CUSTOM,"Button",BS_AUTORADIOBUTTON | BS_MULTILINE | BS_TOP | WS_GROUP,100,32,250,20
EDITTEXT IDC_WORDCHAR_CUSTOM_EDIT,111,54,180,12,ES_AUTOHSCROLL
PUSHBUTTON "?",IDD_WORDCHAR_QUESTION_BUTTON,303,53,16,14
LTEXT "",IDD_STATIC_WORDCHAR_WARNING,111,70,210,8
GROUPBOX "Delimiter selection settings (Ctrl + Mouse double click)",IDC_DELIMITERSETTINGS_GB_STATIC,89,113,268,70,BS_CENTER
RTEXT "Open",IDD_STATIC_OPENDELIMITER,117,128,34,8
EDITTEXT IDC_EDIT_OPENDELIMITER,156,126,14,14
EDITTEXT IDC_EDIT_OPENDELIMITER,156,126,14,12,ES_RIGHT
LTEXT "bla bla bla bla bla bla",IDD_STATIC_BLABLA,172,128,56,8
LTEXT "bla bla bla bla bla bla bla bla bla bla bla bla",IDD_STATIC_BLABLA2NDLINE,132,148,126,8
EDITTEXT IDC_EDIT_CLOSEDELIMITER,237,126,14,14
EDITTEXT IDC_EDIT_CLOSEDELIMITER,237,126,14,12
LTEXT "Close",IDD_STATIC_CLOSEDELIMITER,252,128,47,8
CONTROL "Allow on several lines",IDD_SEVERALLINEMODEON_CHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,118,166,160,10
END
@ -526,8 +527,8 @@ BEGIN
GROUPBOX "Settings on cloud",IDC_SETTINGSONCLOUD_GB_STATIC,89,2,268,88,BS_CENTER
CONTROL "No Cloud",IDC_NOCLOUD_RADIO,"Button",BS_AUTORADIOBUTTON,125,13,180,10
CONTROL "Set your cloud location path here:",IDC_WITHCLOUD_RADIO,"Button",BS_AUTORADIOBUTTON,125,28,180,10
EDITTEXT IDC_CLOUDPATH_EDIT,134,44,179,14,ES_AUTOHSCROLL
PUSHBUTTON "...",IDD_CLOUDPATH_BROWSE_BUTTON,320,44,16,14
EDITTEXT IDC_CLOUDPATH_EDIT,134,44,179,12,ES_AUTOHSCROLL
PUSHBUTTON "...",IDD_CLOUDPATH_BROWSE_BUTTON,320,43,16,14
LTEXT "",IDC_SETTINGSONCLOUD_WARNING_STATIC,131,67,220,16
GROUPBOX "Clickable Link Settings",IDC_CLICKABLELINK_STATIC,89,95,268,90,BS_CENTER
@ -549,7 +550,7 @@ BEGIN
CONTROL "Yahoo!",IDC_SEARCHENGINE_YAHOO_RADIO,"Button",BS_AUTORADIOBUTTON,105,73,180,10
CONTROL "Stack Overflow",IDC_SEARCHENGINE_STACKOVERFLOW_RADIO,"Button",BS_AUTORADIOBUTTON,105,88,180,10
CONTROL "Set your search engine here:",IDC_SEARCHENGINE_CUSTOM_RADIO,"Button",BS_AUTORADIOBUTTON,105,103,180,10
EDITTEXT IDC_SEARCHENGINE_EDIT,114,119,179,14,ES_AUTOHSCROLL
EDITTEXT IDC_SEARCHENGINE_EDIT,114,119,179,12,ES_AUTOHSCROLL
LTEXT "Example: https://www.google.com/search?q=$(CURRENT_WORD)",IDD_SEARCHENGINE_NOTE_STATIC,114,134,245,20
END
@ -561,7 +562,7 @@ BEGIN
PUSHBUTTON "?",IDD_PERFORMANCE_TIP_QUESTION_BUTTON,215,21,16,14
CONTROL "Enable Large File Restriction (no syntax highlighting)",IDC_CHECK_PERFORMANCE_ENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,79,41,290,10
RTEXT "Define Large File Size:",IDC_STATIC_PERFORMANCE_FILESIZE,75,59,125,8
EDITTEXT IDC_EDIT_PERFORMANCE_FILESIZE,201,57,24,14,ES_RIGHT | ES_NUMBER
EDITTEXT IDC_EDIT_PERFORMANCE_FILESIZE,201,57,24,12,ES_RIGHT | ES_NUMBER
LTEXT "MB (1 - 2046)",IDC_STATIC_PERFORMANCE_MB,228,59,90,8
CONTROL "Deactivate Word Wrap globally",IDC_CHECK_PERFORMANCE_DEACTIVATEWORDWRAP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,127,80,200,10
CONTROL "Allow Auto-Completion",IDC_CHECK_PERFORMANCE_ALLOWAUTOCOMPLETION,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,127,95,200,10
@ -599,7 +600,7 @@ BEGIN
CONTROL "Enable Save All confirm dialog",IDC_CHECK_SAVEALLCONFIRM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,37,184,217,10
RTEXT "Session file ext.:",IDC_SESSIONFILEEXT_STATIC,270,130,108,8
EDITTEXT IDC_EDIT_SESSIONFILEEXT,380,127,34,14,ES_AUTOHSCROLL
EDITTEXT IDC_EDIT_SESSIONFILEEXT,380,127,34,12,ES_AUTOHSCROLL
RTEXT "Workspace file ext.:",IDC_WORKSPACEFILEEXT_STATIC,270,147,108,8
EDITTEXT IDC_EDIT_WORKSPACEFILEEXT,380,144,34,14,ES_AUTOHSCROLL
EDITTEXT IDC_EDIT_WORKSPACEFILEEXT,380,144,34,12,ES_AUTOHSCROLL
END

View File

@ -366,7 +366,35 @@ intptr_t CALLBACK PreferenceDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM
return TRUE;
}
case WM_COMMAND :
case WM_DPICHANGED:
{
DPIManagerV2::setDpiWP(wParam);
_generalSubDlg.setDpiWP(wParam);
_editingSubDlg.setDpiWP(wParam);
_editing2SubDlg.setDpiWP(wParam);
_darkModeSubDlg.setDpiWP(wParam);
_marginsBorderEdgeSubDlg.setDpiWP(wParam);
_miscSubDlg.setDpiWP(wParam);
_fileAssocDlg.setDpiWP(wParam);
_languageSubDlg.setDpiWP(wParam);
_highlightingSubDlg.setDpiWP(wParam);
_printSubDlg.setDpiWP(wParam);
_searchingSubDlg.setDpiWP(wParam);
_newDocumentSubDlg.setDpiWP(wParam);
_defaultDirectorySubDlg.setDpiWP(wParam);
_recentFilesHistorySubDlg.setDpiWP(wParam);
_backupSubDlg.setDpiWP(wParam);
_autoCompletionSubDlg.setDpiWP(wParam);
_multiInstanceSubDlg.setDpiWP(wParam);
_delimiterSubDlg.setDpiWP(wParam);
_performanceSubDlg.setDpiWP(wParam);
setPositionDpi(lParam);
return TRUE;
}
case WM_COMMAND:
{
if (LOWORD(wParam) == IDC_LIST_DLGTITLE)
{
@ -532,7 +560,7 @@ intptr_t CALLBACK GeneralSubDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM
{
NppParameters& nppParam = NppParameters::getInstance();
switch (message)
switch (message)
{
case WM_INITDIALOG :
{
@ -1428,9 +1456,9 @@ void DarkModeSubDlg::move2CtrlLeft(int ctrlID, HWND handle2Move, int handle2Move
NppParameters& nppParam = NppParameters::getInstance();
if(nppParam.getNativeLangSpeaker()->isRTL())
p.x = rc.right + nppParam._dpiManager.scaleX(5) + handle2MoveWidth;
p.x = rc.right + DPIManagerV2::scale(5) + handle2MoveWidth;
else
p.x = rc.left - nppParam._dpiManager.scaleX(5) - handle2MoveWidth;
p.x = rc.left - DPIManagerV2::scale(5) - handle2MoveWidth;
p.y = rc.top + ((rc.bottom - rc.top) / 2) - handle2MoveHeight / 2;
@ -1510,21 +1538,20 @@ intptr_t CALLBACK DarkModeSubDlg::run_dlgProc(UINT message, WPARAM wParam, LPARA
_pHotEdgeColorPicker->init(_hInst, _hSelf);
_pDisabledEdgeColorPicker->init(_hInst, _hSelf);
int cpDynamicalWidth = NppParameters::getInstance()._dpiManager.scaleX(25);
int cpDynamicalHeight = NppParameters::getInstance()._dpiManager.scaleY(25);
const int cpDynamicalSize = DPIManagerV2::scale(25);
move2CtrlLeft(IDD_CUSTOMIZED_COLOR1_STATIC, _pPureBackgroundColorPicker->getHSelf(), cpDynamicalWidth, cpDynamicalHeight);
move2CtrlLeft(IDD_CUSTOMIZED_COLOR2_STATIC, _pHotBackgroundColorPicker->getHSelf(), cpDynamicalWidth, cpDynamicalHeight);
move2CtrlLeft(IDD_CUSTOMIZED_COLOR3_STATIC, _pSofterBackgroundColorPicker->getHSelf(), cpDynamicalWidth, cpDynamicalHeight);
move2CtrlLeft(IDD_CUSTOMIZED_COLOR4_STATIC, _pBackgroundColorPicker->getHSelf(), cpDynamicalWidth, cpDynamicalHeight);
move2CtrlLeft(IDD_CUSTOMIZED_COLOR5_STATIC, _pErrorBackgroundColorPicker->getHSelf(), cpDynamicalWidth, cpDynamicalHeight);
move2CtrlLeft(IDD_CUSTOMIZED_COLOR6_STATIC, _pTextColorPicker->getHSelf(), cpDynamicalWidth, cpDynamicalHeight);
move2CtrlLeft(IDD_CUSTOMIZED_COLOR7_STATIC, _pDarkerTextColorPicker->getHSelf(), cpDynamicalWidth, cpDynamicalHeight);
move2CtrlLeft(IDD_CUSTOMIZED_COLOR8_STATIC, _pDisabledTextColorPicker->getHSelf(), cpDynamicalWidth, cpDynamicalHeight);
move2CtrlLeft(IDD_CUSTOMIZED_COLOR9_STATIC, _pEdgeColorPicker->getHSelf(), cpDynamicalWidth, cpDynamicalHeight);
move2CtrlLeft(IDD_CUSTOMIZED_COLOR10_STATIC, _pLinkColorPicker->getHSelf(), cpDynamicalWidth, cpDynamicalHeight);
move2CtrlLeft(IDD_CUSTOMIZED_COLOR11_STATIC, _pHotEdgeColorPicker->getHSelf(), cpDynamicalWidth, cpDynamicalHeight);
move2CtrlLeft(IDD_CUSTOMIZED_COLOR12_STATIC, _pDisabledEdgeColorPicker->getHSelf(), cpDynamicalWidth, cpDynamicalHeight);
move2CtrlLeft(IDD_CUSTOMIZED_COLOR1_STATIC, _pPureBackgroundColorPicker->getHSelf(), cpDynamicalSize, cpDynamicalSize);
move2CtrlLeft(IDD_CUSTOMIZED_COLOR2_STATIC, _pHotBackgroundColorPicker->getHSelf(), cpDynamicalSize, cpDynamicalSize);
move2CtrlLeft(IDD_CUSTOMIZED_COLOR3_STATIC, _pSofterBackgroundColorPicker->getHSelf(), cpDynamicalSize, cpDynamicalSize);
move2CtrlLeft(IDD_CUSTOMIZED_COLOR4_STATIC, _pBackgroundColorPicker->getHSelf(), cpDynamicalSize, cpDynamicalSize);
move2CtrlLeft(IDD_CUSTOMIZED_COLOR5_STATIC, _pErrorBackgroundColorPicker->getHSelf(), cpDynamicalSize, cpDynamicalSize);
move2CtrlLeft(IDD_CUSTOMIZED_COLOR6_STATIC, _pTextColorPicker->getHSelf(), cpDynamicalSize, cpDynamicalSize);
move2CtrlLeft(IDD_CUSTOMIZED_COLOR7_STATIC, _pDarkerTextColorPicker->getHSelf(), cpDynamicalSize, cpDynamicalSize);
move2CtrlLeft(IDD_CUSTOMIZED_COLOR8_STATIC, _pDisabledTextColorPicker->getHSelf(), cpDynamicalSize, cpDynamicalSize);
move2CtrlLeft(IDD_CUSTOMIZED_COLOR9_STATIC, _pEdgeColorPicker->getHSelf(), cpDynamicalSize, cpDynamicalSize);
move2CtrlLeft(IDD_CUSTOMIZED_COLOR10_STATIC, _pLinkColorPicker->getHSelf(), cpDynamicalSize, cpDynamicalSize);
move2CtrlLeft(IDD_CUSTOMIZED_COLOR11_STATIC, _pHotEdgeColorPicker->getHSelf(), cpDynamicalSize, cpDynamicalSize);
move2CtrlLeft(IDD_CUSTOMIZED_COLOR12_STATIC, _pDisabledEdgeColorPicker->getHSelf(), cpDynamicalSize, cpDynamicalSize);
_pBackgroundColorPicker->display();
_pSofterBackgroundColorPicker->display();
@ -1625,6 +1652,26 @@ intptr_t CALLBACK DarkModeSubDlg::run_dlgProc(UINT message, WPARAM wParam, LPARA
return TRUE;
}
case WM_DPICHANGED_AFTERPARENT:
{
const int cpDynamicalSize = DPIManagerV2::scale(25);
move2CtrlLeft(IDD_CUSTOMIZED_COLOR1_STATIC, _pPureBackgroundColorPicker->getHSelf(), cpDynamicalSize, cpDynamicalSize);
move2CtrlLeft(IDD_CUSTOMIZED_COLOR2_STATIC, _pHotBackgroundColorPicker->getHSelf(), cpDynamicalSize, cpDynamicalSize);
move2CtrlLeft(IDD_CUSTOMIZED_COLOR3_STATIC, _pSofterBackgroundColorPicker->getHSelf(), cpDynamicalSize, cpDynamicalSize);
move2CtrlLeft(IDD_CUSTOMIZED_COLOR4_STATIC, _pBackgroundColorPicker->getHSelf(), cpDynamicalSize, cpDynamicalSize);
move2CtrlLeft(IDD_CUSTOMIZED_COLOR5_STATIC, _pErrorBackgroundColorPicker->getHSelf(), cpDynamicalSize, cpDynamicalSize);
move2CtrlLeft(IDD_CUSTOMIZED_COLOR6_STATIC, _pTextColorPicker->getHSelf(), cpDynamicalSize, cpDynamicalSize);
move2CtrlLeft(IDD_CUSTOMIZED_COLOR7_STATIC, _pDarkerTextColorPicker->getHSelf(), cpDynamicalSize, cpDynamicalSize);
move2CtrlLeft(IDD_CUSTOMIZED_COLOR8_STATIC, _pDisabledTextColorPicker->getHSelf(), cpDynamicalSize, cpDynamicalSize);
move2CtrlLeft(IDD_CUSTOMIZED_COLOR9_STATIC, _pEdgeColorPicker->getHSelf(), cpDynamicalSize, cpDynamicalSize);
move2CtrlLeft(IDD_CUSTOMIZED_COLOR10_STATIC, _pLinkColorPicker->getHSelf(), cpDynamicalSize, cpDynamicalSize);
move2CtrlLeft(IDD_CUSTOMIZED_COLOR11_STATIC, _pHotEdgeColorPicker->getHSelf(), cpDynamicalSize, cpDynamicalSize);
move2CtrlLeft(IDD_CUSTOMIZED_COLOR12_STATIC, _pDisabledEdgeColorPicker->getHSelf(), cpDynamicalSize, cpDynamicalSize);
return TRUE;
}
case WM_COMMAND:
{
bool changed = false;
@ -2816,7 +2863,7 @@ intptr_t CALLBACK RecentFilesHistorySubDlg::run_dlgProc(UINT message, WPARAM wPa
NppParameters& nppParam = NppParameters::getInstance();
NppGUI& nppGUI = nppParam.getNppGUI();
switch (message)
switch (message)
{
case WM_INITDIALOG:
{
@ -2872,11 +2919,6 @@ intptr_t CALLBACK RecentFilesHistorySubDlg::run_dlgProc(UINT message, WPARAM wPa
const bool isTextEnabled = isCheckedOrNot(IDC_RADIO_CUSTOMIZELENTH);
return NppDarkMode::onCtlColorDarkerBGStaticText(hdcStatic, isTextEnabled);
}
if (dlgCtrlID == IDC_EDIT_CUSTOMIZELENGTHVAL)
{
return NppDarkMode::onCtlColor(hdcStatic);
}
return NppDarkMode::onCtlColorDarker(hdcStatic);
}
@ -5054,12 +5096,42 @@ void DelimiterSubDlg::setWarningIfNeed() const
::SetDlgItemText(_hSelf, IDD_STATIC_WORDCHAR_WARNING, msg.c_str());
}
void DelimiterSubDlg::calcCtrlsPos()
{
RECT rcBlabla{};
RECT rcBlabla2nd{};
RECT rcOpen{};
RECT rcOpenEdit{};
getMappedChildRect(IDD_STATIC_BLABLA, rcBlabla);
getMappedChildRect(IDD_STATIC_BLABLA2NDLINE, rcBlabla2nd);
getMappedChildRect(IDD_STATIC_OPENDELIMITER, rcOpen);
getMappedChildRect(IDC_EDIT_OPENDELIMITER, rcOpenEdit);
_gapEditHor = (rcBlabla.left - rcOpenEdit.right) - ::GetSystemMetrics(SM_CXEDGE);
_gapEditVer = (rcBlabla.top - rcOpenEdit.top) + ::GetSystemMetrics(SM_CYEDGE);
_gapText = (rcBlabla.left - rcOpen.right);
}
void DelimiterSubDlg::setCtrlsPos(bool isMultiline)
{
constexpr UINT flags = SWP_NOSIZE | SWP_NOZORDER | SWP_NOOWNERZORDER | SWP_NOACTIVATE | SWP_NOCOPYBITS;
::ShowWindow(::GetDlgItem(_hSelf, IDD_STATIC_BLABLA2NDLINE), isMultiline ? SW_SHOW : SW_HIDE);
RECT rcToUse{};
getMappedChildRect(isMultiline ? IDD_STATIC_BLABLA2NDLINE : IDD_STATIC_BLABLA, rcToUse);
::SetWindowPos(::GetDlgItem(_hSelf, IDC_EDIT_CLOSEDELIMITER), nullptr, rcToUse.right + _gapEditHor, rcToUse.top - _gapEditVer, 0, 0, flags);
::SetWindowPos(::GetDlgItem(_hSelf, IDD_STATIC_CLOSEDELIMITER), nullptr, rcToUse.right + _gapText, rcToUse.top, 0, 0, flags);
}
intptr_t CALLBACK DelimiterSubDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM lParam)
{
NppGUI & nppGUI = (NppParameters::getInstance()).getNppGUI();
switch (message)
switch (message)
{
case WM_INITDIALOG :
case WM_INITDIALOG:
{
//
// Delimiter
@ -5077,29 +5149,9 @@ intptr_t CALLBACK DelimiterSubDlg::run_dlgProc(UINT message, WPARAM wParam, LPAR
::SendDlgItemMessage(_hSelf, IDC_EDIT_OPENDELIMITER, WM_SETTEXT, 0, reinterpret_cast<LPARAM>(opener));
::SendDlgItemMessage(_hSelf, IDC_EDIT_CLOSEDELIMITER, WM_SETTEXT, 0, reinterpret_cast<LPARAM>(closer));
::SendDlgItemMessage(_hSelf, IDD_SEVERALLINEMODEON_CHECK, BM_SETCHECK, onSeveralLines?BST_CHECKED:BST_UNCHECKED, 0);
POINT point = getTopPoint(::GetDlgItem(_hSelf, IDD_STATIC_BLABLA), false);
_singleLineModePoint.x = point.x + 4;
_singleLineModePoint.y = point.y - 4;
point = getTopPoint(::GetDlgItem(_hSelf, IDD_STATIC_BLABLA2NDLINE), false);
_multiLineModePoint.x = point.x + 4;
_multiLineModePoint.y = point.y - 4;
::GetClientRect(::GetDlgItem(_hSelf, IDC_EDIT_CLOSEDELIMITER), &_closerRect);
_closerRect.right = _closerRect.right - _closerRect.left + 4;
_closerRect.bottom = _closerRect.bottom - _closerRect.top + 4;
::GetClientRect(::GetDlgItem(_hSelf, IDD_STATIC_CLOSEDELIMITER), &_closerLabelRect);
_closerLabelRect.right = _closerLabelRect.right - _closerLabelRect.left + 4;
_closerLabelRect.bottom = _closerLabelRect.bottom - _closerLabelRect.top + 4;
::ShowWindow(::GetDlgItem(_hSelf, IDD_STATIC_BLABLA2NDLINE),onSeveralLines?SW_SHOW:SW_HIDE);
POINT *p = onSeveralLines?&_multiLineModePoint:&_singleLineModePoint;
::MoveWindow(::GetDlgItem(_hSelf, IDC_EDIT_CLOSEDELIMITER), p->x, p->y, _closerRect.right, _closerRect.bottom, TRUE);
::MoveWindow(::GetDlgItem(_hSelf, IDD_STATIC_CLOSEDELIMITER), p->x + _closerRect.right + 4, p->y + 4, _closerLabelRect.right, _closerLabelRect.bottom, TRUE);
calcCtrlsPos();
setCtrlsPos(onSeveralLines);
//
// Word Char List
@ -5169,7 +5221,13 @@ intptr_t CALLBACK DelimiterSubDlg::run_dlgProc(UINT message, WPARAM wParam, LPAR
break;
}
case WM_COMMAND :
case WM_DPICHANGED_AFTERPARENT:
{
calcCtrlsPos();
return TRUE;
}
case WM_COMMAND:
{
if (HIWORD(wParam) == EN_CHANGE)
{
@ -5208,16 +5266,12 @@ intptr_t CALLBACK DelimiterSubDlg::run_dlgProc(UINT message, WPARAM wParam, LPAR
switch (wParam)
{
case IDD_SEVERALLINEMODEON_CHECK :
case IDD_SEVERALLINEMODEON_CHECK:
{
bool isChecked = (BST_CHECKED == ::SendDlgItemMessage(_hSelf, IDD_SEVERALLINEMODEON_CHECK, BM_GETCHECK, 0, 0));
nppGUI._delimiterSelectionOnEntireDocument = isChecked;
::ShowWindow(::GetDlgItem(_hSelf, IDD_STATIC_BLABLA2NDLINE),isChecked?SW_SHOW:SW_HIDE);
POINT *p = isChecked?&_multiLineModePoint:&_singleLineModePoint;
::MoveWindow(::GetDlgItem(_hSelf, IDC_EDIT_CLOSEDELIMITER), p->x, p->y, _closerRect.right, _closerRect.bottom, TRUE);
::MoveWindow(::GetDlgItem(_hSelf, IDD_STATIC_CLOSEDELIMITER), p->x + _closerRect.right + 4, p->y + 4, _closerLabelRect.right, _closerLabelRect.bottom, TRUE);
setCtrlsPos(isChecked);
return TRUE;
}
@ -5459,7 +5513,7 @@ intptr_t CALLBACK CloudAndLinkSubDlg::run_dlgProc(UINT message, WPARAM wParam, L
return FALSE;
}
}
}
}
return FALSE;
}
@ -5578,11 +5632,6 @@ intptr_t CALLBACK PerformanceSubDlg::run_dlgProc(UINT message , WPARAM wParam, L
bool isTextEnabled = isCheckedOrNot(IDC_CHECK_PERFORMANCE_ENABLE);
return NppDarkMode::onCtlColorDarkerBGStaticText(hdcStatic, isTextEnabled);
}
if (dlgCtrlID == IDC_EDIT_PERFORMANCE_FILESIZE)
{
return NppDarkMode::onCtlColor(hdcStatic);
}
return NppDarkMode::onCtlColorDarker(hdcStatic);
}

View File

@ -264,16 +264,17 @@ public :
};
private :
POINT _singleLineModePoint = {};
POINT _multiLineModePoint = {};
RECT _closerRect = {};
RECT _closerLabelRect = {};
LONG _gapEditHor = 0;
LONG _gapEditVer = 0;
LONG _gapText = 0;
HWND _tip = nullptr;
intptr_t CALLBACK run_dlgProc(UINT message, WPARAM wParam, LPARAM lParam) override;
void detectSpace(const char *text2Check, int & nbSp, int & nbTab) const;
generic_string getWarningText(size_t nbSp, size_t nbTab) const;
void setWarningIfNeed() const;
void calcCtrlsPos();
void setCtrlsPos(bool isMultiline);
};
class CloudAndLinkSubDlg : public StaticDialog

View File

@ -387,9 +387,9 @@
#define IDD_PREFERENCE_SUB_BACKUP 6800 //(IDD_PREFERENCE_BOX + 800)
#define IDC_BACKUPDIR_GRP_STATIC (IDD_PREFERENCE_SUB_BACKUP + 1)
#define IDC_BACKUPDIR_CHECK (IDD_PREFERENCE_SUB_BACKUP + 2)
#define IDC_BACKUPDIR_USERCUSTOMDIR_GRPSTATIC (IDD_PREFERENCE_SUB_BACKUP + 2)
#define IDD_BACKUPDIR_STATIC (IDD_PREFERENCE_SUB_BACKUP + 3)
#define IDC_BACKUPDIR_USERCUSTOMDIR_GRPSTATIC (IDD_PREFERENCE_SUB_BACKUP + 4)
#define IDC_BACKUPDIR_CHECK (IDD_PREFERENCE_SUB_BACKUP + 4)
#define IDC_BACKUPDIR_EDIT (IDD_PREFERENCE_SUB_BACKUP + 5)
#define IDD_BACKUPDIR_BROWSE_BUTTON (IDD_PREFERENCE_SUB_BACKUP + 6)
#define IDD_AUTOC_GRPSTATIC (IDD_PREFERENCE_SUB_BACKUP + 7)