mirror of
https://github.com/notepad-plus-plus/notepad-plus-plus.git
synced 2025-07-27 07:44:24 +02:00
Improve DarkMode toggling
Make choosing dark tone to not require turning back to light mode. Close #10141
This commit is contained in:
parent
fb91093ccb
commit
b3fdfdd064
@ -302,7 +302,7 @@ void SetDarkMode(bool useDark, bool fixDarkScrollbar)
|
||||
AllowDarkModeForApp(useDark);
|
||||
//_RefreshImmersiveColorPolicyState();
|
||||
FlushMenuThemes();
|
||||
if (useDark && fixDarkScrollbar)
|
||||
if (fixDarkScrollbar)
|
||||
{
|
||||
FixDarkScrollBar();
|
||||
}
|
||||
|
@ -217,7 +217,6 @@ namespace NppDarkMode
|
||||
Options opt;
|
||||
opt.enable = nppGui._darkmode._isEnabled;
|
||||
opt.enableMenubar = opt.enable;
|
||||
opt.enableScrollbarHack = opt.enable;
|
||||
|
||||
g_colorToneChoice = nppGui._darkmode._colorTone;
|
||||
|
||||
@ -229,7 +228,7 @@ namespace NppDarkMode
|
||||
_options = configuredOptions();
|
||||
|
||||
initExperimentalDarkMode();
|
||||
setDarkMode(_options.enable, _options.enableScrollbarHack);
|
||||
setDarkMode(_options.enable, true);
|
||||
}
|
||||
|
||||
// attempts to apply new options from NppParameters, sends NPPM_INTERNAL_REFRESHDARKMODE to hwnd's top level parent
|
||||
@ -274,11 +273,6 @@ namespace NppDarkMode
|
||||
return _options.enableMenubar;
|
||||
}
|
||||
|
||||
bool isScrollbarHackEnabled()
|
||||
{
|
||||
return _options.enableScrollbarHack;
|
||||
}
|
||||
|
||||
bool isExperimentalActive()
|
||||
{
|
||||
return g_darkModeEnabled;
|
||||
@ -1267,8 +1261,9 @@ namespace NppDarkMode
|
||||
}
|
||||
}
|
||||
|
||||
void redrawTreeViewScrollBar(HWND hwnd)
|
||||
// force scrollbar redraw
|
||||
void setTreeViewStyle(HWND hwnd)
|
||||
{
|
||||
SetWindowTheme(hwnd, nullptr, nullptr); //hack to redraw treeview scrollbar
|
||||
SetWindowTheme(hwnd, nullptr, nullptr);
|
||||
}
|
||||
}
|
||||
|
@ -17,7 +17,6 @@ namespace NppDarkMode
|
||||
{
|
||||
bool enable = false;
|
||||
bool enableMenubar = false;
|
||||
bool enableScrollbarHack = false;
|
||||
};
|
||||
|
||||
enum class ToolTipsType
|
||||
@ -44,7 +43,6 @@ namespace NppDarkMode
|
||||
|
||||
bool isEnabled();
|
||||
bool isDarkMenuEnabled();
|
||||
bool isScrollbarHackEnabled();
|
||||
bool isExperimentalSupported();
|
||||
|
||||
COLORREF invertLightness(COLORREF c);
|
||||
@ -104,5 +102,5 @@ namespace NppDarkMode
|
||||
void setDarkListView(HWND hwnd);
|
||||
|
||||
void disableVisualStyle(HWND hwnd, bool doDisable);
|
||||
void redrawTreeViewScrollBar(HWND hwnd);
|
||||
void setTreeViewStyle(HWND hwnd);
|
||||
}
|
||||
|
@ -175,7 +175,7 @@ INT_PTR CALLBACK FileBrowser::run_dlgProc(UINT message, WPARAM wParam, LPARAM lP
|
||||
NppDarkMode::setDarkLineAbovePanelToolbar(_hToolbarMenu);
|
||||
|
||||
NppDarkMode::setDarkTooltips(_treeView.getHSelf(), NppDarkMode::ToolTipsType::treeview);
|
||||
NppDarkMode::redrawTreeViewScrollBar(_treeView.getHSelf());
|
||||
NppDarkMode::setTreeViewStyle(_treeView.getHSelf());
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -870,7 +870,7 @@ INT_PTR CALLBACK FunctionListPanel::run_dlgProc(UINT message, WPARAM wParam, LPA
|
||||
NppDarkMode::setDarkLineAbovePanelToolbar(_hToolbarMenu);
|
||||
|
||||
NppDarkMode::setDarkTooltips(_treeView.getHSelf(), NppDarkMode::ToolTipsType::treeview);
|
||||
NppDarkMode::redrawTreeViewScrollBar(_treeView.getHSelf());
|
||||
NppDarkMode::setTreeViewStyle(_treeView.getHSelf());
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -858,6 +858,7 @@ INT_PTR CALLBACK DarkModeSubDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM
|
||||
case WM_COMMAND:
|
||||
{
|
||||
bool changed = false;
|
||||
bool forceRefresh = false;
|
||||
switch (wParam)
|
||||
{
|
||||
case IDC_CHECK_DARKMODE_ENABLE:
|
||||
@ -885,6 +886,7 @@ INT_PTR CALLBACK DarkModeSubDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM
|
||||
// For tabbar: uncheck Alternate icons checkbox
|
||||
::SendMessage(_hParent, PREF_MSG_DISABLETABBARALTERNATEICONS, 0, 0);
|
||||
}
|
||||
|
||||
changed = true;
|
||||
}
|
||||
break;
|
||||
@ -939,20 +941,17 @@ INT_PTR CALLBACK DarkModeSubDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM
|
||||
nppGUI._darkmode._colorTone = NppDarkMode::oliveTone;
|
||||
}
|
||||
|
||||
// switch to light mode firstly (to make color change completely)
|
||||
nppGUI._darkmode._isEnabled = false;
|
||||
NppDarkMode::refreshDarkMode(_hSelf);
|
||||
|
||||
// switch to chosen dark mode
|
||||
nppGUI._darkmode._isEnabled = true;
|
||||
NppDarkMode::setDarkTone(nppGUI._darkmode._colorTone);
|
||||
changed = true;
|
||||
forceRefresh = true;
|
||||
break;
|
||||
}
|
||||
|
||||
if (changed)
|
||||
{
|
||||
NppDarkMode::refreshDarkMode(_hSelf);
|
||||
NppDarkMode::refreshDarkMode(_hSelf, forceRefresh);
|
||||
getFocus(); // to make black mode title bar appear
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -204,7 +204,7 @@
|
||||
#define IDC_CHECK_SMARTHILITEUSEFINDSETTINGS (IDD_PREFERENCE_SUB_MISC + 39)
|
||||
#define IDC_CHECK_SMARTHILITEANOTHERRVIEW (IDD_PREFERENCE_SUB_MISC + 40)
|
||||
|
||||
//-- xFileEditViewHistoryParameterGUI: Additional Checkbox for enabling the history for restoring the edit view per file.
|
||||
//-- xFileEditViewHistoryParameterGUI: Additional Checkbox for enabling the history for restoring the edit view per file.
|
||||
#define IDC_CHECK_REMEMBEREDITVIEWPERFILE (IDD_PREFERENCE_SUB_MISC + 41)
|
||||
#define IDC_REMEMBEREDITVIEWPERFILE_STATIC (IDD_PREFERENCE_SUB_MISC + 42)
|
||||
#define IDC_EDIT_REMEMBEREDITVIEWPERFILE (IDD_PREFERENCE_SUB_MISC + 43)
|
||||
@ -319,7 +319,6 @@
|
||||
#define IDC_WHICHPART_STATIC (IDD_PREFERENCE_PRINT2_BOX + 27)
|
||||
#define IDC_HEADERFPPTER_GR_STATIC (IDD_PREFERENCE_PRINT2_BOX + 28)
|
||||
|
||||
|
||||
#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)
|
||||
|
@ -104,7 +104,7 @@ INT_PTR CALLBACK ProjectPanel::run_dlgProc(UINT message, WPARAM wParam, LPARAM l
|
||||
NppDarkMode::disableVisualStyle(_hToolbarMenu, NppDarkMode::isEnabled());
|
||||
|
||||
NppDarkMode::setDarkTooltips(_treeView.getHSelf(), NppDarkMode::ToolTipsType::treeview);
|
||||
NppDarkMode::redrawTreeViewScrollBar(_treeView.getHSelf());
|
||||
NppDarkMode::setTreeViewStyle(_treeView.getHSelf());
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -26,9 +26,9 @@ void TreeView::init(HINSTANCE hInst, HWND parent, int treeViewID)
|
||||
Window::init(hInst, parent);
|
||||
_hSelf = ::GetDlgItem(parent, treeViewID);
|
||||
|
||||
auto treeViewStyles = WS_HSCROLL | WS_TABSTOP | TVS_LINESATROOT\
|
||||
const auto treeViewStyles = WS_HSCROLL | WS_TABSTOP | TVS_LINESATROOT\
|
||||
| TVS_HASLINES | TVS_HASBUTTONS | TVS_SHOWSELALWAYS\
|
||||
| TVS_EDITLABELS | TVS_INFOTIP | TVS_TRACKSELECT;
|
||||
| TVS_EDITLABELS | TVS_INFOTIP;
|
||||
|
||||
_hSelf = CreateWindowEx(0,
|
||||
WC_TREEVIEW,
|
||||
|
Loading…
x
Reference in New Issue
Block a user