From a6bbdeb92e523d26167ba4b92f1173d1e9bc4b44 Mon Sep 17 00:00:00 2001 From: ozone10 Date: Sun, 20 Jun 2021 23:54:24 +0200 Subject: [PATCH] Make line above panel toolbar dark in dark mode Fix #10043, close #10042 --- PowerEditor/src/Notepad_plus.cpp | 21 +++++++++++++++++++ PowerEditor/src/NppDarkMode.cpp | 19 +++++++++++++++++ PowerEditor/src/NppDarkMode.h | 1 + .../WinControls/FileBrowser/fileBrowser.cpp | 11 ++++++++-- .../FunctionList/functionListPanel.cpp | 11 ++++++++-- .../WinControls/ProjectPanel/ProjectPanel.cpp | 14 ++++++++++--- 6 files changed, 70 insertions(+), 7 deletions(-) diff --git a/PowerEditor/src/Notepad_plus.cpp b/PowerEditor/src/Notepad_plus.cpp index 4dce1b8c1..687e9eacb 100644 --- a/PowerEditor/src/Notepad_plus.cpp +++ b/PowerEditor/src/Notepad_plus.cpp @@ -7524,6 +7524,27 @@ void Notepad_plus::refreshDarkMode() NppDarkMode::setDarkTitleBar(docCont->getCaptionWnd()); } + if (_pProjectPanel_1) + { + ::SendMessage(_pProjectPanel_1->getHSelf(), NPPM_INTERNAL_REFRESHDARKMODE, 0, 0); + } + if (_pProjectPanel_2) + { + ::SendMessage(_pProjectPanel_2->getHSelf(), NPPM_INTERNAL_REFRESHDARKMODE, 0, 0); + } + if (_pProjectPanel_3) + { + ::SendMessage(_pProjectPanel_3->getHSelf(), NPPM_INTERNAL_REFRESHDARKMODE, 0, 0); + } + if (_pFuncList) + { + ::SendMessage(_pFuncList->getHSelf(), NPPM_INTERNAL_REFRESHDARKMODE, 0, 0); + } + if (_pFileBrowser) + { + ::SendMessage(_pFileBrowser->getHSelf(), NPPM_INTERNAL_REFRESHDARKMODE, 0, 0); + } + SendMessage(_findReplaceDlg.getHSelf(), NPPM_INTERNAL_REFRESHDARKMODE, 0, 0); SendMessage(_incrementFindDlg.getHSelf(), NPPM_INTERNAL_REFRESHDARKMODE, 0, 0); RedrawWindow(_pPublicInterface->getHSelf(), nullptr, nullptr, RDW_INVALIDATE | RDW_ERASE | RDW_FRAME | RDW_ALLCHILDREN); diff --git a/PowerEditor/src/NppDarkMode.cpp b/PowerEditor/src/NppDarkMode.cpp index 29fcbda97..ab475b246 100644 --- a/PowerEditor/src/NppDarkMode.cpp +++ b/PowerEditor/src/NppDarkMode.cpp @@ -1091,4 +1091,23 @@ namespace NppDarkMode } } } + + void setDarkLineAbovePanelToolbar(HWND hwnd) + { + COLORSCHEME scheme; + scheme.dwSize = sizeof(COLORSCHEME); + + if (NppDarkMode::isEnabled()) + { + scheme.clrBtnHighlight = NppDarkMode::getBackgroundColor(); + scheme.clrBtnShadow = NppDarkMode::getBackgroundColor(); + } + else + { + scheme.clrBtnHighlight = CLR_DEFAULT; + scheme.clrBtnShadow = CLR_DEFAULT; + } + + ::SendMessage(hwnd, TB_SETCOLORSCHEME, 0, reinterpret_cast(&scheme)); + } } diff --git a/PowerEditor/src/NppDarkMode.h b/PowerEditor/src/NppDarkMode.h index 7ff6b2a05..9f557a340 100644 --- a/PowerEditor/src/NppDarkMode.h +++ b/PowerEditor/src/NppDarkMode.h @@ -84,4 +84,5 @@ namespace NppDarkMode void setDarkTitleBar(HWND hwnd); void setDarkTooltips(HWND hwnd, ToolTipsType type); + void setDarkLineAbovePanelToolbar(HWND hwnd); } diff --git a/PowerEditor/src/WinControls/FileBrowser/fileBrowser.cpp b/PowerEditor/src/WinControls/FileBrowser/fileBrowser.cpp index 81b70eb85..9977584e9 100644 --- a/PowerEditor/src/WinControls/FileBrowser/fileBrowser.cpp +++ b/PowerEditor/src/WinControls/FileBrowser/fileBrowser.cpp @@ -107,6 +107,7 @@ INT_PTR CALLBACK FileBrowser::run_dlgProc(UINT message, WPARAM wParam, LPARAM lP _hToolbarMenu = CreateWindowEx(WS_EX_LAYOUTRTL, TOOLBARCLASSNAME, NULL, style, 0, 0, 0, 0, _hSelf, nullptr, _hInst, NULL); NppDarkMode::setDarkTooltips(_hToolbarMenu, NppDarkMode::ToolTipsType::toolbar); + NppDarkMode::setDarkLineAbovePanelToolbar(_hToolbarMenu); TBBUTTON tbButtons[3]; // Add the bmap image into toolbar's imagelist @@ -166,8 +167,14 @@ INT_PTR CALLBACK FileBrowser::run_dlgProc(UINT message, WPARAM wParam, LPARAM lP _treeView.makeLabelEditable(false); _treeView.display(); - return TRUE; - } + return TRUE; + } + + case NPPM_INTERNAL_REFRESHDARKMODE: + { + NppDarkMode::setDarkLineAbovePanelToolbar(_hToolbarMenu); + break; + } case WM_MOUSEMOVE: if (_treeView.isDragging()) diff --git a/PowerEditor/src/WinControls/FunctionList/functionListPanel.cpp b/PowerEditor/src/WinControls/FunctionList/functionListPanel.cpp index d43643c81..bd23beafd 100644 --- a/PowerEditor/src/WinControls/FunctionList/functionListPanel.cpp +++ b/PowerEditor/src/WinControls/FunctionList/functionListPanel.cpp @@ -772,6 +772,7 @@ INT_PTR CALLBACK FunctionListPanel::run_dlgProc(UINT message, WPARAM wParam, LPA 0,0,0,0,_hSelf,nullptr, _hInst, NULL); NppDarkMode::setDarkTooltips(_hToolbarMenu, NppDarkMode::ToolTipsType::toolbar); + NppDarkMode::setDarkLineAbovePanelToolbar(_hToolbarMenu); oldFunclstToolbarProc = reinterpret_cast(::SetWindowLongPtr(_hToolbarMenu, GWLP_WNDPROC, reinterpret_cast(funclstToolbarProc))); TBBUTTON tbButtons[3]; @@ -831,8 +832,14 @@ INT_PTR CALLBACK FunctionListPanel::run_dlgProc(UINT message, WPARAM wParam, LPA setTreeViewImageList(IDI_FUNCLIST_ROOT, IDI_FUNCLIST_NODE, IDI_FUNCLIST_LEAF); _treeView.display(); - return TRUE; - } + return TRUE; + } + + case NPPM_INTERNAL_REFRESHDARKMODE: + { + NppDarkMode::setDarkLineAbovePanelToolbar(_hToolbarMenu); + break; + } case WM_DESTROY: _treeView.destroy(); diff --git a/PowerEditor/src/WinControls/ProjectPanel/ProjectPanel.cpp b/PowerEditor/src/WinControls/ProjectPanel/ProjectPanel.cpp index 4c52172af..d3e287f0d 100644 --- a/PowerEditor/src/WinControls/ProjectPanel/ProjectPanel.cpp +++ b/PowerEditor/src/WinControls/ProjectPanel/ProjectPanel.cpp @@ -54,6 +54,9 @@ INT_PTR CALLBACK ProjectPanel::run_dlgProc(UINT message, WPARAM wParam, LPARAM l int style = WS_CHILD | WS_VISIBLE | CCS_ADJUSTABLE | TBSTYLE_AUTOSIZE | TBSTYLE_FLAT | TBSTYLE_LIST; _hToolbarMenu = CreateWindowEx(0,TOOLBARCLASSNAME,NULL, style, 0,0,0,0,_hSelf, nullptr, _hInst, nullptr); + + NppDarkMode::setDarkLineAbovePanelToolbar(_hToolbarMenu); + TBBUTTON tbButtons[2]; NativeLangSpeaker *pNativeSpeaker = (NppParameters::getInstance()).getNativeLangSpeaker(); @@ -91,10 +94,15 @@ INT_PTR CALLBACK ProjectPanel::run_dlgProc(UINT message, WPARAM wParam, LPARAM l if (!openWorkSpace(_workSpaceFilePath.c_str(), true)) newWorkSpace(); - return TRUE; - } + return TRUE; + } + + case NPPM_INTERNAL_REFRESHDARKMODE: + { + NppDarkMode::setDarkLineAbovePanelToolbar(_hToolbarMenu); + break; + } - case WM_MOUSEMOVE: if (_treeView.isDragging()) _treeView.dragItem(_hSelf, LOWORD(lParam), HIWORD(lParam));