mirror of
https://github.com/notepad-plus-plus/notepad-plus-plus.git
synced 2025-07-23 13:54:54 +02:00
Make Notepad++ dark mode colors customizable
Add 6 more color choices. Close #10128
This commit is contained in:
parent
066ef8a4a0
commit
39b9090b96
@ -56,6 +56,7 @@ namespace NppDarkMode
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// black (default)
|
||||||
static const Colors darkColors{
|
static const Colors darkColors{
|
||||||
HEXRGB(0x202020), // background
|
HEXRGB(0x202020), // background
|
||||||
HEXRGB(0x404040), // softerBackground
|
HEXRGB(0x404040), // softerBackground
|
||||||
@ -69,6 +70,98 @@ namespace NppDarkMode
|
|||||||
HEXRGB(0x414141) // highlightHotTrack
|
HEXRGB(0x414141) // highlightHotTrack
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// red tone
|
||||||
|
static const Colors darkRedColors{
|
||||||
|
HEXRGB(0x302020), // background
|
||||||
|
HEXRGB(0x504040), // softerBackground
|
||||||
|
HEXRGB(0x504040), // hotBackground
|
||||||
|
HEXRGB(0x302020), // pureBackground
|
||||||
|
HEXRGB(0xC00000), // errorBackground
|
||||||
|
HEXRGB(0xE0E0E0), // textColor
|
||||||
|
HEXRGB(0xC0C0C0), // darkerTextColor
|
||||||
|
HEXRGB(0x808080), // disabledTextColor
|
||||||
|
HEXRGB(0x908080), // edgeColor
|
||||||
|
HEXRGB(0x514141) // highlightHotTrack
|
||||||
|
};
|
||||||
|
|
||||||
|
// green tone
|
||||||
|
static const Colors darkGreenColors{
|
||||||
|
HEXRGB(0x203020), // background
|
||||||
|
HEXRGB(0x405040), // softerBackground
|
||||||
|
HEXRGB(0x405040), // hotBackground
|
||||||
|
HEXRGB(0x203020), // pureBackground
|
||||||
|
HEXRGB(0xB01000), // errorBackground
|
||||||
|
HEXRGB(0xE0E0E0), // textColor
|
||||||
|
HEXRGB(0xC0C0C0), // darkerTextColor
|
||||||
|
HEXRGB(0x808080), // disabledTextColor
|
||||||
|
HEXRGB(0x809080), // edgeColor
|
||||||
|
HEXRGB(0x415141) // highlightHotTrack
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// blue tone
|
||||||
|
static const Colors darkBlueColors{
|
||||||
|
HEXRGB(0x202040), // background
|
||||||
|
HEXRGB(0x404060), // softerBackground
|
||||||
|
HEXRGB(0x404060), // hotBackground
|
||||||
|
HEXRGB(0x202040), // pureBackground
|
||||||
|
HEXRGB(0xB00020), // errorBackground
|
||||||
|
HEXRGB(0xE0E0E0), // textColor
|
||||||
|
HEXRGB(0xC0C0C0), // darkerTextColor
|
||||||
|
HEXRGB(0x808080), // disabledTextColor
|
||||||
|
HEXRGB(0x8080A0), // edgeColor
|
||||||
|
HEXRGB(0x414161) // highlightHotTrack
|
||||||
|
};
|
||||||
|
|
||||||
|
// purple tone
|
||||||
|
static const Colors darkPurpleColors{
|
||||||
|
HEXRGB(0x302040), // background
|
||||||
|
HEXRGB(0x504060), // softerBackground
|
||||||
|
HEXRGB(0x504060), // hotBackground
|
||||||
|
HEXRGB(0x302040), // pureBackground
|
||||||
|
HEXRGB(0xC00020), // errorBackground
|
||||||
|
HEXRGB(0xE0E0E0), // textColor
|
||||||
|
HEXRGB(0xC0C0C0), // darkerTextColor
|
||||||
|
HEXRGB(0x808080), // disabledTextColor
|
||||||
|
HEXRGB(0x9080A0), // edgeColor
|
||||||
|
HEXRGB(0x514161) // highlightHotTrack
|
||||||
|
};
|
||||||
|
|
||||||
|
// cyan tone
|
||||||
|
static const Colors darkCyanColors{
|
||||||
|
HEXRGB(0x203040), // background
|
||||||
|
HEXRGB(0x405060), // softerBackground
|
||||||
|
HEXRGB(0x405060), // hotBackground
|
||||||
|
HEXRGB(0x203040), // pureBackground
|
||||||
|
HEXRGB(0xB01020), // errorBackground
|
||||||
|
HEXRGB(0xE0E0E0), // textColor
|
||||||
|
HEXRGB(0xC0C0C0), // darkerTextColor
|
||||||
|
HEXRGB(0x808080), // disabledTextColor
|
||||||
|
HEXRGB(0x8090A0), // edgeColor
|
||||||
|
HEXRGB(0x415161) // highlightHotTrack
|
||||||
|
};
|
||||||
|
|
||||||
|
// olive tone
|
||||||
|
static const Colors darkOliveColors{
|
||||||
|
HEXRGB(0x303020), // background
|
||||||
|
HEXRGB(0x505040), // softerBackground
|
||||||
|
HEXRGB(0x505040), // hotBackground
|
||||||
|
HEXRGB(0x303020), // pureBackground
|
||||||
|
HEXRGB(0xC01000), // errorBackground
|
||||||
|
HEXRGB(0xE0E0E0), // textColor
|
||||||
|
HEXRGB(0xC0C0C0), // darkerTextColor
|
||||||
|
HEXRGB(0x808080), // disabledTextColor
|
||||||
|
HEXRGB(0x909080), // edgeColor
|
||||||
|
HEXRGB(0x515141) // highlightHotTrack
|
||||||
|
};
|
||||||
|
|
||||||
|
ColorTone g_colorToneChoice = blackTone;
|
||||||
|
|
||||||
|
void setDarkTone(ColorTone colorToneChoice)
|
||||||
|
{
|
||||||
|
g_colorToneChoice = colorToneChoice;
|
||||||
|
}
|
||||||
|
|
||||||
struct Theme
|
struct Theme
|
||||||
{
|
{
|
||||||
Colors colors;
|
Colors colors;
|
||||||
@ -80,17 +173,55 @@ namespace NppDarkMode
|
|||||||
{}
|
{}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Theme t0(darkColors);
|
||||||
|
Theme t1(darkRedColors);
|
||||||
|
Theme t2(darkGreenColors);
|
||||||
|
Theme t3(darkBlueColors);
|
||||||
|
Theme t4(darkPurpleColors);
|
||||||
|
Theme t5(darkCyanColors);
|
||||||
|
Theme t6(darkOliveColors);
|
||||||
|
|
||||||
|
|
||||||
Theme& getTheme()
|
Theme& getTheme()
|
||||||
{
|
{
|
||||||
static Theme g_theme(darkColors);
|
switch (g_colorToneChoice)
|
||||||
return g_theme;
|
{
|
||||||
|
case redTone:
|
||||||
|
return t1;
|
||||||
|
|
||||||
|
case greenTone:
|
||||||
|
return t2;
|
||||||
|
|
||||||
|
case blueTone:
|
||||||
|
return t3;
|
||||||
|
|
||||||
|
case purpleTone:
|
||||||
|
return t4;
|
||||||
|
|
||||||
|
case cyanTone:
|
||||||
|
return t5;
|
||||||
|
|
||||||
|
case oliveTone:
|
||||||
|
return t6;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return t0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static Options _options; // actual runtime options
|
static Options _options; // actual runtime options
|
||||||
|
|
||||||
const Options& configuredOptions()
|
Options configuredOptions()
|
||||||
{
|
{
|
||||||
return NppParameters::getInstance().getNppGUI()._darkmode;
|
NppGUI nppGui = NppParameters::getInstance().getNppGUI();
|
||||||
|
Options opt;
|
||||||
|
opt.enable = nppGui._darkmode._isEnabled;
|
||||||
|
opt.enableMenubar = opt.enable;
|
||||||
|
opt.enableScrollbarHack = opt.enable;
|
||||||
|
|
||||||
|
g_colorToneChoice = nppGui._darkmode._colorTone;
|
||||||
|
|
||||||
|
return opt;
|
||||||
}
|
}
|
||||||
|
|
||||||
void initDarkMode()
|
void initDarkMode()
|
||||||
@ -106,7 +237,7 @@ namespace NppDarkMode
|
|||||||
{
|
{
|
||||||
bool supportedChanged = false;
|
bool supportedChanged = false;
|
||||||
|
|
||||||
auto& config = configuredOptions();
|
auto config = configuredOptions();
|
||||||
|
|
||||||
if (_options.enable != config.enable)
|
if (_options.enable != config.enable)
|
||||||
{
|
{
|
||||||
|
@ -29,6 +29,16 @@ namespace NppDarkMode
|
|||||||
tabbar
|
tabbar
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum ColorTone {
|
||||||
|
blackTone = 0,
|
||||||
|
redTone = 1,
|
||||||
|
greenTone = 2,
|
||||||
|
blueTone = 3,
|
||||||
|
purpleTone = 4,
|
||||||
|
cyanTone = 5,
|
||||||
|
oliveTone = 6
|
||||||
|
};
|
||||||
|
|
||||||
void initDarkMode(); // pulls options from NppParameters
|
void initDarkMode(); // pulls options from NppParameters
|
||||||
void refreshDarkMode(HWND hwnd, bool forceRefresh = false); // attempts to apply new options from NppParameters, sends NPPM_INTERNAL_REFRESHDARKMODE to hwnd's top level parent
|
void refreshDarkMode(HWND hwnd, bool forceRefresh = false); // attempts to apply new options from NppParameters, sends NPPM_INTERNAL_REFRESHDARKMODE to hwnd's top level parent
|
||||||
|
|
||||||
@ -40,6 +50,8 @@ namespace NppDarkMode
|
|||||||
COLORREF invertLightness(COLORREF c);
|
COLORREF invertLightness(COLORREF c);
|
||||||
COLORREF invertLightnessSofter(COLORREF c);
|
COLORREF invertLightnessSofter(COLORREF c);
|
||||||
|
|
||||||
|
void setDarkTone(ColorTone colorToneChoice);
|
||||||
|
|
||||||
COLORREF getBackgroundColor();
|
COLORREF getBackgroundColor();
|
||||||
COLORREF getSofterBackgroundColor();
|
COLORREF getSofterBackgroundColor();
|
||||||
COLORREF getHotBackgroundColor();
|
COLORREF getHotBackgroundColor();
|
||||||
|
@ -5387,9 +5387,12 @@ void NppParameters::feedGUIParameters(TiXmlNode *node)
|
|||||||
return defaultValue;
|
return defaultValue;
|
||||||
};
|
};
|
||||||
|
|
||||||
_nppGUI._darkmode.enable = parseYesNoBoolAttribute(TEXT("enable"));
|
_nppGUI._darkmode._isEnabled = parseYesNoBoolAttribute(TEXT("enable"));
|
||||||
_nppGUI._darkmode.enableMenubar = parseYesNoBoolAttribute(TEXT("enableMenubar"));
|
|
||||||
_nppGUI._darkmode.enableScrollbarHack = parseYesNoBoolAttribute(TEXT("enableScrollbarHack"));
|
int i;
|
||||||
|
const TCHAR* val = element->Attribute(TEXT("colorTone"), &i);
|
||||||
|
if (val)
|
||||||
|
_nppGUI._darkmode._colorTone = static_cast<NppDarkMode::ColorTone>(i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -6402,7 +6405,7 @@ void NppParameters::createXmlTreeFromGUIParams()
|
|||||||
GUIConfigElement->InsertEndChild(TiXmlText(_nppGUI._commandLineInterpreter.c_str()));
|
GUIConfigElement->InsertEndChild(TiXmlText(_nppGUI._commandLineInterpreter.c_str()));
|
||||||
}
|
}
|
||||||
|
|
||||||
// <GUIConfig name="DarkMode" enable="no" enableExperimental="no" enableMenubar="no" enableScrollbarHack="no" />
|
// <GUIConfig name="DarkMode" enable="no" colorTone="0" />
|
||||||
{
|
{
|
||||||
TiXmlElement* GUIConfigElement = (newGUIRoot->InsertEndChild(TiXmlElement(TEXT("GUIConfig"))))->ToElement();
|
TiXmlElement* GUIConfigElement = (newGUIRoot->InsertEndChild(TiXmlElement(TEXT("GUIConfig"))))->ToElement();
|
||||||
GUIConfigElement->SetAttribute(TEXT("name"), TEXT("DarkMode"));
|
GUIConfigElement->SetAttribute(TEXT("name"), TEXT("DarkMode"));
|
||||||
@ -6412,9 +6415,8 @@ void NppParameters::createXmlTreeFromGUIParams()
|
|||||||
GUIConfigElement->SetAttribute(name, pStr);
|
GUIConfigElement->SetAttribute(name, pStr);
|
||||||
};
|
};
|
||||||
|
|
||||||
setYesNoBoolAttribute(TEXT("enable"), _nppGUI._darkmode.enable);
|
setYesNoBoolAttribute(TEXT("enable"), _nppGUI._darkmode._isEnabled);
|
||||||
setYesNoBoolAttribute(TEXT("enableMenubar"), _nppGUI._darkmode.enableMenubar);
|
GUIConfigElement->SetAttribute(TEXT("colorTone"), _nppGUI._darkmode._colorTone);
|
||||||
setYesNoBoolAttribute(TEXT("enableScrollbarHack"), _nppGUI._darkmode.enableScrollbarHack);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// <GUIConfig name="ScintillaPrimaryView" lineNumberMargin="show" bookMarkMargin="show" indentGuideLine="show" folderMarkStyle="box" lineWrapMethod="aligned" currentLineHilitingShow="show" scrollBeyondLastLine="no" rightClickKeepsSelection="no" disableAdvancedScrolling="no" wrapSymbolShow="hide" Wrap="no" borderEdge="yes" edge="no" edgeNbColumn="80" zoom="0" zoom2="0" whiteSpaceShow="hide" eolShow="hide" borderWidth="2" smoothFont="no" />
|
// <GUIConfig name="ScintillaPrimaryView" lineNumberMargin="show" bookMarkMargin="show" indentGuideLine="show" folderMarkStyle="box" lineWrapMethod="aligned" currentLineHilitingShow="show" scrollBeyondLastLine="no" rightClickKeepsSelection="no" disableAdvancedScrolling="no" wrapSymbolShow="hide" Wrap="no" borderEdge="yes" edge="no" edgeNbColumn="80" zoom="0" zoom2="0" whiteSpaceShow="hide" eolShow="hide" borderWidth="2" smoothFont="no" />
|
||||||
|
@ -777,6 +777,11 @@ public:
|
|||||||
bool _doDoubleQuotes = false;
|
bool _doDoubleQuotes = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct DarkModeConf final
|
||||||
|
{
|
||||||
|
bool _isEnabled = false;
|
||||||
|
NppDarkMode::ColorTone _colorTone = NppDarkMode::blackTone;
|
||||||
|
};
|
||||||
|
|
||||||
struct NppGUI final
|
struct NppGUI final
|
||||||
{
|
{
|
||||||
@ -931,7 +936,7 @@ struct NppGUI final
|
|||||||
bool _isDocPeekOnTab = false;
|
bool _isDocPeekOnTab = false;
|
||||||
bool _isDocPeekOnMap = false;
|
bool _isDocPeekOnMap = false;
|
||||||
|
|
||||||
NppDarkMode::Options _darkmode;
|
DarkModeConf _darkmode;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct ScintillaViewParams
|
struct ScintillaViewParams
|
||||||
|
@ -101,16 +101,14 @@ STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
|
|||||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||||
BEGIN
|
BEGIN
|
||||||
CONTROL "Enable &dark mode",IDC_CHECK_DARKMODE_ENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,20,20,150,10
|
CONTROL "Enable &dark mode",IDC_CHECK_DARKMODE_ENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,20,20,150,10
|
||||||
/*
|
//LTEXT "* Notepad++ must be restarted to take effect completely",IDC_STATIC_DARKMODE_WARNING,20,35,310,16
|
||||||
CONTROL "Override &menubar drawing", IDC_CHECK_DARKMODE_ENABLE_MENUBAR,
|
CONTROL "Black tone",IDC_RADIO_DARKMODE_BLACK, "Button",BS_AUTORADIOBUTTON | WS_GROUP,35,40,150,10
|
||||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,20,66,289,10
|
CONTROL "Red tone",IDC_RADIO_DARKMODE_RED, "Button",BS_AUTORADIOBUTTON ,35,55,150,10
|
||||||
CONTROL "&Use system dark mode API* (dark title bar and menus)",IDC_CHECK_DARKMODE_ENABLE_EXPERIMENTAL,
|
CONTROL "Green tone",IDC_RADIO_DARKMODE_GREEN, "Button",BS_AUTORADIOBUTTON ,35,70,150,10
|
||||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,20,80,289,10
|
CONTROL "Blue tone",IDC_RADIO_DARKMODE_BLUE, "Button",BS_AUTORADIOBUTTON ,35,85,150,10
|
||||||
CONTROL "Override &scrollbar themes*", IDC_CHECK_DARKMODE_ENABLE_SCROLLBAR_HACK,
|
CONTROL "Purple tone",IDC_RADIO_DARKMODE_PURPLE, "Button",BS_AUTORADIOBUTTON ,35,100,150,10
|
||||||
"Button", BS_AUTOCHECKBOX | WS_TABSTOP, 20,94,289,10
|
CONTROL "Cyan tone",IDC_RADIO_DARKMODE_CYAN, "Button",BS_AUTORADIOBUTTON ,35,115,150,10
|
||||||
GROUPBOX "Experimental Dark Mode Options",IDC_GROUPBOX_DARKMODE,11,47,307,70,BS_CENTER
|
CONTROL "Olive tone",IDC_RADIO_DARKMODE_OLIVE, "Button",BS_AUTORADIOBUTTON ,35,130,150,10
|
||||||
*/
|
|
||||||
LTEXT "* Notepad++ must be restarted to take effect completely",IDC_STATIC_DARKMODE_WARNING,20,35,310,16
|
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_PREFERENCE_SUB_MARGING_BORDER_EDGE DIALOGEX 0, 0, 455, 185
|
IDD_PREFERENCE_SUB_MARGING_BORDER_EDGE DIALOGEX 0, 0, 455, 185
|
||||||
|
@ -815,7 +815,39 @@ INT_PTR CALLBACK DarkModeSubDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM
|
|||||||
{
|
{
|
||||||
case WM_INITDIALOG:
|
case WM_INITDIALOG:
|
||||||
{
|
{
|
||||||
::SendDlgItemMessage(_hSelf, IDC_CHECK_DARKMODE_ENABLE, BM_SETCHECK, nppGUI._darkmode.enable, 0);
|
::SendDlgItemMessage(_hSelf, IDC_CHECK_DARKMODE_ENABLE, BM_SETCHECK, nppGUI._darkmode._isEnabled, 0);
|
||||||
|
|
||||||
|
int id = IDC_RADIO_DARKMODE_BLACK;
|
||||||
|
switch (nppGUI._darkmode._colorTone)
|
||||||
|
{
|
||||||
|
case NppDarkMode::redTone:
|
||||||
|
id = IDC_RADIO_DARKMODE_RED;
|
||||||
|
break;
|
||||||
|
case NppDarkMode::greenTone:
|
||||||
|
id = IDC_RADIO_DARKMODE_GREEN;
|
||||||
|
break;
|
||||||
|
case NppDarkMode::blueTone:
|
||||||
|
id = IDC_RADIO_DARKMODE_BLUE;
|
||||||
|
break;
|
||||||
|
case NppDarkMode::purpleTone:
|
||||||
|
id = IDC_RADIO_DARKMODE_PURPLE;
|
||||||
|
break;
|
||||||
|
case NppDarkMode::cyanTone:
|
||||||
|
id = IDC_RADIO_DARKMODE_CYAN;
|
||||||
|
break;
|
||||||
|
case NppDarkMode::oliveTone:
|
||||||
|
id = IDC_RADIO_DARKMODE_OLIVE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
::SendDlgItemMessage(_hSelf, id, BM_SETCHECK, TRUE, 0);
|
||||||
|
|
||||||
|
::EnableWindow(::GetDlgItem(_hSelf, IDC_RADIO_DARKMODE_BLACK), nppGUI._darkmode._isEnabled);
|
||||||
|
::EnableWindow(::GetDlgItem(_hSelf, IDC_RADIO_DARKMODE_RED), nppGUI._darkmode._isEnabled);
|
||||||
|
::EnableWindow(::GetDlgItem(_hSelf, IDC_RADIO_DARKMODE_GREEN), nppGUI._darkmode._isEnabled);
|
||||||
|
::EnableWindow(::GetDlgItem(_hSelf, IDC_RADIO_DARKMODE_BLUE), nppGUI._darkmode._isEnabled);
|
||||||
|
::EnableWindow(::GetDlgItem(_hSelf, IDC_RADIO_DARKMODE_PURPLE), nppGUI._darkmode._isEnabled);
|
||||||
|
::EnableWindow(::GetDlgItem(_hSelf, IDC_RADIO_DARKMODE_CYAN), nppGUI._darkmode._isEnabled);
|
||||||
|
::EnableWindow(::GetDlgItem(_hSelf, IDC_RADIO_DARKMODE_OLIVE), nppGUI._darkmode._isEnabled);
|
||||||
|
|
||||||
ETDTProc enableDlgTheme = (ETDTProc)nppParam.getEnableThemeDlgTexture();
|
ETDTProc enableDlgTheme = (ETDTProc)nppParam.getEnableThemeDlgTexture();
|
||||||
if (enableDlgTheme)
|
if (enableDlgTheme)
|
||||||
@ -829,13 +861,20 @@ INT_PTR CALLBACK DarkModeSubDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM
|
|||||||
switch (wParam)
|
switch (wParam)
|
||||||
{
|
{
|
||||||
case IDC_CHECK_DARKMODE_ENABLE:
|
case IDC_CHECK_DARKMODE_ENABLE:
|
||||||
|
{
|
||||||
bool enableDarkMode = isCheckedOrNot(static_cast<int>(wParam));
|
bool enableDarkMode = isCheckedOrNot(static_cast<int>(wParam));
|
||||||
nppGUI._darkmode.enable = enableDarkMode;
|
nppGUI._darkmode._isEnabled = enableDarkMode;
|
||||||
nppGUI._darkmode.enableMenubar = enableDarkMode;
|
|
||||||
nppGUI._darkmode.enableScrollbarHack = enableDarkMode;
|
::EnableWindow(::GetDlgItem(_hSelf, IDC_RADIO_DARKMODE_BLACK), enableDarkMode);
|
||||||
|
::EnableWindow(::GetDlgItem(_hSelf, IDC_RADIO_DARKMODE_RED), enableDarkMode);
|
||||||
|
::EnableWindow(::GetDlgItem(_hSelf, IDC_RADIO_DARKMODE_GREEN), enableDarkMode);
|
||||||
|
::EnableWindow(::GetDlgItem(_hSelf, IDC_RADIO_DARKMODE_BLUE), enableDarkMode);
|
||||||
|
::EnableWindow(::GetDlgItem(_hSelf, IDC_RADIO_DARKMODE_PURPLE), enableDarkMode);
|
||||||
|
::EnableWindow(::GetDlgItem(_hSelf, IDC_RADIO_DARKMODE_CYAN), enableDarkMode);
|
||||||
|
::EnableWindow(::GetDlgItem(_hSelf, IDC_RADIO_DARKMODE_OLIVE), enableDarkMode);
|
||||||
|
|
||||||
// Maintain the coherence in preferences
|
// Maintain the coherence in preferences
|
||||||
if (nppGUI._darkmode.enable)
|
if (nppGUI._darkmode._isEnabled)
|
||||||
{
|
{
|
||||||
// For toolbar: if dark mode enabled & TB_STANDARD is selected, switch to TB_SMALL
|
// For toolbar: if dark mode enabled & TB_STANDARD is selected, switch to TB_SMALL
|
||||||
bool isStandardChecked = false;
|
bool isStandardChecked = false;
|
||||||
@ -847,12 +886,74 @@ INT_PTR CALLBACK DarkModeSubDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM
|
|||||||
::SendMessage(_hParent, PREF_MSG_DISABLETABBARALTERNATEICONS, 0, 0);
|
::SendMessage(_hParent, PREF_MSG_DISABLETABBARALTERNATEICONS, 0, 0);
|
||||||
}
|
}
|
||||||
changed = true;
|
changed = true;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case IDC_RADIO_DARKMODE_BLACK:
|
||||||
|
case IDC_RADIO_DARKMODE_RED:
|
||||||
|
case IDC_RADIO_DARKMODE_GREEN:
|
||||||
|
case IDC_RADIO_DARKMODE_BLUE:
|
||||||
|
case IDC_RADIO_DARKMODE_PURPLE:
|
||||||
|
case IDC_RADIO_DARKMODE_CYAN:
|
||||||
|
case IDC_RADIO_DARKMODE_OLIVE:
|
||||||
|
if (wParam == IDC_RADIO_DARKMODE_BLACK)
|
||||||
|
{
|
||||||
|
if (nppGUI._darkmode._colorTone == NppDarkMode::blackTone)
|
||||||
|
return TRUE;
|
||||||
|
nppGUI._darkmode._colorTone = NppDarkMode::blackTone;
|
||||||
|
}
|
||||||
|
else if (wParam == IDC_RADIO_DARKMODE_RED)
|
||||||
|
{
|
||||||
|
if (nppGUI._darkmode._colorTone == NppDarkMode::redTone)
|
||||||
|
return TRUE;
|
||||||
|
nppGUI._darkmode._colorTone = NppDarkMode::redTone;
|
||||||
|
}
|
||||||
|
else if (wParam == IDC_RADIO_DARKMODE_GREEN)
|
||||||
|
{
|
||||||
|
if (nppGUI._darkmode._colorTone == NppDarkMode::greenTone)
|
||||||
|
return TRUE;
|
||||||
|
nppGUI._darkmode._colorTone = NppDarkMode::greenTone;
|
||||||
|
}
|
||||||
|
else if (wParam == IDC_RADIO_DARKMODE_BLUE)
|
||||||
|
{
|
||||||
|
if (nppGUI._darkmode._colorTone == NppDarkMode::blueTone)
|
||||||
|
return TRUE;
|
||||||
|
nppGUI._darkmode._colorTone = NppDarkMode::blueTone;
|
||||||
|
}
|
||||||
|
else if (wParam == IDC_RADIO_DARKMODE_PURPLE)
|
||||||
|
{
|
||||||
|
if (nppGUI._darkmode._colorTone == NppDarkMode::purpleTone)
|
||||||
|
return TRUE;
|
||||||
|
nppGUI._darkmode._colorTone = NppDarkMode::purpleTone;
|
||||||
|
}
|
||||||
|
else if (wParam == IDC_RADIO_DARKMODE_CYAN)
|
||||||
|
{
|
||||||
|
if (nppGUI._darkmode._colorTone == NppDarkMode::cyanTone)
|
||||||
|
return TRUE;
|
||||||
|
nppGUI._darkmode._colorTone = NppDarkMode::cyanTone;
|
||||||
|
}
|
||||||
|
else if (wParam == IDC_RADIO_DARKMODE_OLIVE)
|
||||||
|
{
|
||||||
|
if (nppGUI._darkmode._colorTone == NppDarkMode::oliveTone)
|
||||||
|
return TRUE;
|
||||||
|
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;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (changed)
|
if (changed)
|
||||||
{
|
{
|
||||||
NppDarkMode::refreshDarkMode(_hSelf);
|
NppDarkMode::refreshDarkMode(_hSelf);
|
||||||
|
getFocus(); // to make black mode title bar appear
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -375,6 +375,13 @@
|
|||||||
|
|
||||||
#define IDD_PREFERENCE_SUB_DARKMODE 7100 //(IDD_PREFERENCE_BOX + 1100)
|
#define IDD_PREFERENCE_SUB_DARKMODE 7100 //(IDD_PREFERENCE_BOX + 1100)
|
||||||
#define IDC_CHECK_DARKMODE_ENABLE (IDD_PREFERENCE_SUB_DARKMODE + 1)
|
#define IDC_CHECK_DARKMODE_ENABLE (IDD_PREFERENCE_SUB_DARKMODE + 1)
|
||||||
#define IDC_STATIC_DARKMODE_WARNING (IDD_PREFERENCE_SUB_DARKMODE + 6)
|
#define IDC_RADIO_DARKMODE_BLACK (IDD_PREFERENCE_SUB_DARKMODE + 2)
|
||||||
|
#define IDC_RADIO_DARKMODE_RED (IDD_PREFERENCE_SUB_DARKMODE + 3)
|
||||||
|
#define IDC_RADIO_DARKMODE_GREEN (IDD_PREFERENCE_SUB_DARKMODE + 4)
|
||||||
|
#define IDC_RADIO_DARKMODE_BLUE (IDD_PREFERENCE_SUB_DARKMODE + 5)
|
||||||
|
//#define IDC_STATIC_DARKMODE_WARNING (IDD_PREFERENCE_SUB_DARKMODE + 6)
|
||||||
|
#define IDC_RADIO_DARKMODE_PURPLE (IDD_PREFERENCE_SUB_DARKMODE + 7)
|
||||||
|
#define IDC_RADIO_DARKMODE_CYAN (IDD_PREFERENCE_SUB_DARKMODE + 8)
|
||||||
|
#define IDC_RADIO_DARKMODE_OLIVE (IDD_PREFERENCE_SUB_DARKMODE + 9)
|
||||||
|
|
||||||
#endif //PREFERENCE_RC_H
|
#endif //PREFERENCE_RC_H
|
||||||
|
Loading…
x
Reference in New Issue
Block a user