diff --git a/PowerEditor/src/Notepad_plus.cpp b/PowerEditor/src/Notepad_plus.cpp index 4ac039121..57579cc70 100644 --- a/PowerEditor/src/Notepad_plus.cpp +++ b/PowerEditor/src/Notepad_plus.cpp @@ -377,8 +377,9 @@ LRESULT Notepad_plus::init(HWND hwnd) //--Splitter Section--// bool isVertical = (nppGUI._splitterPos == POS_VERTICAL); + int splitterSizeDyn = nppParam._dpiManager.scaleX(splitterSize); _subSplitter.init(_pPublicInterface->getHinst(), hwnd); - _subSplitter.create(&_mainDocTab, &_subDocTab, 8, SplitterMode::DYNAMIC, 50, isVertical); + _subSplitter.create(&_mainDocTab, &_subDocTab, splitterSizeDyn, SplitterMode::DYNAMIC, 50, isVertical); //--Status Bar Section--// bool willBeShown = nppGUI._statusBarShow; @@ -4165,8 +4166,8 @@ void Notepad_plus::dockUserDlg() pWindow = &_subSplitter; else pWindow = _pDocTab; - - _pMainSplitter->create(pWindow, ScintillaEditView::getUserDefineDlg(), 8, SplitterMode::RIGHT_FIX, 45); + int splitterSizeDyn = NppParameters::getInstance()._dpiManager.scaleX(splitterSize); + _pMainSplitter->create(pWindow, ScintillaEditView::getUserDefineDlg(), splitterSizeDyn, SplitterMode::RIGHT_FIX, 45); } if (bothActive()) diff --git a/PowerEditor/src/Notepad_plus_Window.h b/PowerEditor/src/Notepad_plus_Window.h index 3b21f69ec..bec557b4b 100644 --- a/PowerEditor/src/Notepad_plus_Window.h +++ b/PowerEditor/src/Notepad_plus_Window.h @@ -16,9 +16,11 @@ #pragma once #include "Notepad_plus.h" +const int splitterSize = 8; + const TCHAR COMMAND_ARG_HELP[] = TEXT("Usage :\r\ \r\ -notepad++ [--help] [-multiInst] [-noPlugin] [-lLanguage] [-LlangCode] [-nLineNumber] [-cColumnNumber] [-pPosition] [-xLeftPos] [-yTopPos] [-nosession] [-notabbar] [-ro] [-systemtray] [-loadingTime] [-alwaysOnTop] [-openSession] [-r] [-qn=\"Easter egg name\" | -qt=\"a text to display.\" | -qf=\"D:\\my quote.txt\"] [-qSpeed1|2|3] [-quickPrint] [-settingsDir=\"d:\\your settings dir\\\"] [-openFoldersAsWorkspace] [-titleAdd=\"additional title bar text\"][filePath]\r\ +notepad++ [--help] [-multiInst] [-noPlugin] [-lLanguage] [-udl=\"My UDL Name\"] [-LlangCode] [-nLineNumber] [-cColumnNumber] [-pPosition] [-xLeftPos] [-yTopPos] [-nosession] [-notabbar] [-ro] [-systemtray] [-loadingTime] [-alwaysOnTop] [-openSession] [-r] [-qn=\"Easter egg name\" | -qt=\"a text to display.\" | -qf=\"D:\\my quote.txt\"] [-qSpeed1|2|3] [-quickPrint] [-settingsDir=\"d:\\your settings dir\\\"] [-openFoldersAsWorkspace] [-titleAdd=\"additional title bar text\"][filePath]\r\ \r\ --help : This help message\r\ -multiInst : Launch another Notepad++ instance\r\ diff --git a/PowerEditor/src/NppCommands.cpp b/PowerEditor/src/NppCommands.cpp index 522daa353..9905367dc 100644 --- a/PowerEditor/src/NppCommands.cpp +++ b/PowerEditor/src/NppCommands.cpp @@ -1545,8 +1545,8 @@ void Notepad_plus::command(int id) pWindow = &_subSplitter; else pWindow = _pDocTab; - - _pMainSplitter->create(pWindow, ScintillaEditView::getUserDefineDlg(), 8, SplitterMode::RIGHT_FIX, 45); + int splitterSizeDyn = NppParameters::getInstance()._dpiManager.scaleX(splitterSize); + _pMainSplitter->create(pWindow, ScintillaEditView::getUserDefineDlg(), splitterSizeDyn, SplitterMode::RIGHT_FIX, 45); } _pMainWindow = _pMainSplitter; diff --git a/PowerEditor/src/WinControls/SplitterContainer/Splitter.cpp b/PowerEditor/src/WinControls/SplitterContainer/Splitter.cpp index ea2517b94..d9584a900 100644 --- a/PowerEditor/src/WinControls/SplitterContainer/Splitter.cpp +++ b/PowerEditor/src/WinControls/SplitterContainer/Splitter.cpp @@ -18,6 +18,7 @@ #include #include #include "Splitter.h" +#include "Parameters.h" #include "NppDarkMode.h" bool Splitter::_isHorizontalRegistered = false; @@ -541,7 +542,9 @@ void Splitter::drawSplitter() hBrushTop = ::GetSysColorBrush(COLOR_3DSHADOW); } - if ((_splitterSize >= 4) && (_dwFlags & SV_RESIZEWTHPERCNT)) + DPIManager& dpiMgr = NppParameters::getInstance()._dpiManager; + + if ((_splitterSize >= dpiMgr.scaleX(4)) && (_dwFlags & SV_RESIZEWTHPERCNT)) { adjustZoneToDraw(TLrc, ZONE_TYPE::topLeft); adjustZoneToDraw(BRrc, ZONE_TYPE::bottomRight); @@ -551,18 +554,18 @@ void Splitter::drawSplitter() if (isVertical()) { rcToDraw2.top = (_dwFlags & SV_RESIZEWTHPERCNT) ? _clickZone2TL.bottom : 0; - rcToDraw2.bottom = rcToDraw2.top + 2; + rcToDraw2.bottom = rcToDraw2.top + dpiMgr.scaleX(2); - rcToDraw1.top = rcToDraw2.top + 1; - rcToDraw1.bottom = rcToDraw1.top + 2; + rcToDraw1.top = rcToDraw2.top + dpiMgr.scaleX(1); + rcToDraw1.bottom = rcToDraw1.top + dpiMgr.scaleX(2); } else { - rcToDraw2.top = 1; - rcToDraw2.bottom = 3; + rcToDraw2.top = dpiMgr.scaleX(1); + rcToDraw2.bottom = dpiMgr.scaleX(3); - rcToDraw1.top = 2; - rcToDraw1.bottom = 4; + rcToDraw1.top = dpiMgr.scaleX(2); + rcToDraw1.bottom = dpiMgr.scaleX(4); } int bottom = 0; @@ -575,39 +578,40 @@ void Splitter::drawSplitter() { if (isVertical()) { - rcToDraw2.left = 1; - rcToDraw2.right = 3; + rcToDraw2.left = dpiMgr.scaleX(1); + rcToDraw2.right = dpiMgr.scaleX(3); - rcToDraw1.left = 2; - rcToDraw1.right = 4; + rcToDraw1.left = dpiMgr.scaleX(2); + rcToDraw1.right = dpiMgr.scaleX(4); } else { rcToDraw2.left = _clickZone2TL.right; - rcToDraw2.right = rcToDraw2.left + 2; + rcToDraw2.right = rcToDraw2.left + dpiMgr.scaleX(2); rcToDraw1.left = rcToDraw2.left; - rcToDraw1.right = rcToDraw1.left + 2; + rcToDraw1.right = rcToDraw1.left + dpiMgr.scaleX(2); } + int n = dpiMgr.scaleX(4); while (rcToDraw1.right <= (isVertical() ? rc.right : rc.right - _clickZone2BR.right)) { ::FillRect(hdc, &rcToDraw1, hBrush); ::FillRect(hdc, &rcToDraw2, hBrushTop); - rcToDraw2.left += 4; - rcToDraw2.right += 4; - rcToDraw1.left += 4; - rcToDraw1.right += 4; + rcToDraw2.left += n; + rcToDraw2.right += n; + rcToDraw1.left += n; + rcToDraw1.right += n; } - rcToDraw2.top += 4; - rcToDraw2.bottom += 4; - rcToDraw1.top += 4; - rcToDraw1.bottom += 4; + rcToDraw2.top += n; + rcToDraw2.bottom += n; + rcToDraw1.top += n; + rcToDraw1.bottom += n; } - if ((_splitterSize >= 4) && (_dwFlags & SV_RESIZEWTHPERCNT)) + if ((_splitterSize >= dpiMgr.scaleX(4)) && (_dwFlags & SV_RESIZEWTHPERCNT)) paintArrow(hdc, BRrc, isVertical() ? Arrow::right : Arrow::down); if (isDarkMode) @@ -648,8 +652,10 @@ void Splitter::rotate() void Splitter::paintArrow(HDC hdc, const RECT &rect, Arrow arrowDir) { RECT rc; - rc.left = rect.left; rc.top = rect.top; - rc.right = rect.right; rc.bottom = rect.bottom; + rc.left = rect.left; + rc.top = rect.top; + rc.right = rect.right; + rc.bottom = rect.bottom; switch (arrowDir) { @@ -658,7 +664,6 @@ void Splitter::paintArrow(HDC hdc, const RECT &rect, Arrow arrowDir) int x = rc.right; int y = rc.top; - //::MoveToEx(hdc, x, y, NULL); for (; (x > rc.left) && (y != rc.bottom) ; --x) { ::MoveToEx(hdc, x, y++, NULL); @@ -672,7 +677,6 @@ void Splitter::paintArrow(HDC hdc, const RECT &rect, Arrow arrowDir) int x = rc.left; int y = rc.top; - //::MoveToEx(hdc, x, y, NULL); for (; (x < rc.right) && (y != rc.bottom) ; ++x) { ::MoveToEx(hdc, x, y++, NULL); @@ -686,7 +690,6 @@ void Splitter::paintArrow(HDC hdc, const RECT &rect, Arrow arrowDir) int x = rc.left; int y = rc.bottom; - //::MoveToEx(hdc, x, y, NULL); for (; (y > rc.top) && (x != rc.right) ; --y) { ::MoveToEx(hdc, x++, y, NULL); @@ -700,7 +703,6 @@ void Splitter::paintArrow(HDC hdc, const RECT &rect, Arrow arrowDir) int x = rc.left; int y = rc.top; - //::MoveToEx(hdc, x, y, NULL); for (; (y < rc.bottom) && (x != rc.right) ; ++y) { ::MoveToEx(hdc, x++, y, NULL); diff --git a/PowerEditor/src/WinControls/SplitterContainer/SplitterContainer.h b/PowerEditor/src/WinControls/SplitterContainer/SplitterContainer.h index bed25179e..18c4823ef 100644 --- a/PowerEditor/src/WinControls/SplitterContainer/SplitterContainer.h +++ b/PowerEditor/src/WinControls/SplitterContainer/SplitterContainer.h @@ -38,7 +38,7 @@ class SplitterContainer : public Window public : virtual ~SplitterContainer() = default; - void create(Window *pWin0, Window *pWin1, int splitterSize = 4, + void create(Window *pWin0, Window *pWin1, int splitterSize, SplitterMode mode = SplitterMode::DYNAMIC, int ratio = 50, bool _isVertical = true); void destroy();