mirror of
https://github.com/notepad-plus-plus/notepad-plus-plus.git
synced 2025-07-27 07:44:24 +02:00
Refactor fluent icon color feature code
- fix visual glitches when toggling dark mode - make english names consistent Close #16435
This commit is contained in:
parent
331030ce66
commit
d5b5e5e107
@ -688,12 +688,9 @@ LRESULT Notepad_plus::init(HWND hwnd)
|
|||||||
|
|
||||||
|
|
||||||
//-- Tool Bar Section --//
|
//-- Tool Bar Section --//
|
||||||
|
|
||||||
const NppDarkMode::TbIconInfo toolbarIconInfo = NppDarkMode::getToolbarIconInfo();
|
|
||||||
nppGUI._tbIconInfo = toolbarIconInfo;
|
|
||||||
nppGUI._toolBarStatus = static_cast<toolBarStatusType>(nppGUI._tbIconInfo._tbIconSet);
|
|
||||||
|
|
||||||
toolBarStatusType tbStatus = nppGUI._toolBarStatus;
|
nppGUI._tbIconInfo = NppDarkMode::getToolbarIconInfo();
|
||||||
|
toolBarStatusType tbStatus = nppGUI._tbIconInfo._tbIconSet;
|
||||||
willBeShown = nppGUI._toolbarShow;
|
willBeShown = nppGUI._toolbarShow;
|
||||||
|
|
||||||
// To notify plugins that toolbar icons can be registered
|
// To notify plugins that toolbar icons can be registered
|
||||||
@ -893,7 +890,7 @@ bool Notepad_plus::saveGUIParams()
|
|||||||
NppParameters& nppParams = NppParameters::getInstance();
|
NppParameters& nppParams = NppParameters::getInstance();
|
||||||
NppGUI & nppGUI = nppParams.getNppGUI();
|
NppGUI & nppGUI = nppParams.getNppGUI();
|
||||||
nppGUI._toolbarShow = _rebarTop.getIDVisible(REBAR_BAR_TOOLBAR);
|
nppGUI._toolbarShow = _rebarTop.getIDVisible(REBAR_BAR_TOOLBAR);
|
||||||
nppGUI._toolBarStatus = _toolBar.getState();
|
nppGUI._tbIconInfo._tbIconSet = _toolBar.getState();
|
||||||
|
|
||||||
nppGUI._splitterPos = _subSplitter.isVertical()?POS_VERTICAL:POS_HORIZOTAL;
|
nppGUI._splitterPos = _subSplitter.isVertical()?POS_VERTICAL:POS_HORIZOTAL;
|
||||||
UserDefineDialog *udd = _pEditView->getUserDefineDlg();
|
UserDefineDialog *udd = _pEditView->getUserDefineDlg();
|
||||||
@ -7290,11 +7287,11 @@ void Notepad_plus::launchClipboardHistoryPanel()
|
|||||||
// define the default docking behaviour
|
// define the default docking behaviour
|
||||||
data.uMask = DWS_DF_CONT_RIGHT | DWS_ICONTAB | DWS_USEOWNDARKMODE;
|
data.uMask = DWS_DF_CONT_RIGHT | DWS_ICONTAB | DWS_USEOWNDARKMODE;
|
||||||
|
|
||||||
int icoID = IDR_CLIPBOARDPANEL_ICO;
|
int icoID = IDR_CLIPBOARDPANEL_ICO2;
|
||||||
if (NppDarkMode::isEnabled())
|
if (nppParams.getNppGUI()._tbIconInfo._tbIconSet == TB_STANDARD)
|
||||||
|
icoID = IDR_CLIPBOARDPANEL_ICO;
|
||||||
|
else if (NppDarkMode::isEnabled())
|
||||||
icoID = IDR_CLIPBOARDPANEL_ICO_DM;
|
icoID = IDR_CLIPBOARDPANEL_ICO_DM;
|
||||||
else if (nppParams.getNppGUI()._toolBarStatus != TB_STANDARD)
|
|
||||||
icoID = IDR_CLIPBOARDPANEL_ICO2;
|
|
||||||
|
|
||||||
const int iconSize = DPIManagerV2::scale(g_dockingContTabIconSize, _pClipboardHistoryPanel->getHSelf());
|
const int iconSize = DPIManagerV2::scale(g_dockingContTabIconSize, _pClipboardHistoryPanel->getHSelf());
|
||||||
DPIManagerV2::loadIcon(_pPublicInterface->getHinst(), MAKEINTRESOURCE(icoID), iconSize, iconSize, &data.hIconTab, LR_LOADMAP3DCOLORS | LR_LOADTRANSPARENT);
|
DPIManagerV2::loadIcon(_pPublicInterface->getHinst(), MAKEINTRESOURCE(icoID), iconSize, iconSize, &data.hIconTab, LR_LOADMAP3DCOLORS | LR_LOADTRANSPARENT);
|
||||||
@ -7354,11 +7351,11 @@ void Notepad_plus::launchDocumentListPanel(bool changeFromBtnCmd)
|
|||||||
// define the default docking behaviour
|
// define the default docking behaviour
|
||||||
data.uMask = DWS_DF_CONT_LEFT | DWS_ICONTAB | DWS_USEOWNDARKMODE;
|
data.uMask = DWS_DF_CONT_LEFT | DWS_ICONTAB | DWS_USEOWNDARKMODE;
|
||||||
|
|
||||||
int icoID = IDR_DOCLIST_ICO;
|
int icoID = IDR_DOCLIST_ICO2;
|
||||||
if (NppDarkMode::isEnabled())
|
if (nppParams.getNppGUI()._tbIconInfo._tbIconSet == TB_STANDARD)
|
||||||
|
icoID = IDR_DOCLIST_ICO;
|
||||||
|
else if (NppDarkMode::isEnabled())
|
||||||
icoID = IDR_DOCLIST_ICO_DM;
|
icoID = IDR_DOCLIST_ICO_DM;
|
||||||
else if (nppParams.getNppGUI()._toolBarStatus != TB_STANDARD)
|
|
||||||
icoID = IDR_DOCLIST_ICO2;
|
|
||||||
|
|
||||||
const int iconSize = DPIManagerV2::scale(g_dockingContTabIconSize, _pDocumentListPanel->getHSelf());
|
const int iconSize = DPIManagerV2::scale(g_dockingContTabIconSize, _pDocumentListPanel->getHSelf());
|
||||||
DPIManagerV2::loadIcon(_pPublicInterface->getHinst(), MAKEINTRESOURCE(icoID), iconSize, iconSize, &data.hIconTab, LR_LOADMAP3DCOLORS | LR_LOADTRANSPARENT);
|
DPIManagerV2::loadIcon(_pPublicInterface->getHinst(), MAKEINTRESOURCE(icoID), iconSize, iconSize, &data.hIconTab, LR_LOADMAP3DCOLORS | LR_LOADTRANSPARENT);
|
||||||
@ -7442,11 +7439,11 @@ void Notepad_plus::launchAnsiCharPanel()
|
|||||||
// define the default docking behaviour
|
// define the default docking behaviour
|
||||||
data.uMask = DWS_DF_CONT_RIGHT | DWS_ICONTAB | DWS_USEOWNDARKMODE;
|
data.uMask = DWS_DF_CONT_RIGHT | DWS_ICONTAB | DWS_USEOWNDARKMODE;
|
||||||
|
|
||||||
int icoID = IDR_ASCIIPANEL_ICO;
|
int icoID = IDR_ASCIIPANEL_ICO2;
|
||||||
if (NppDarkMode::isEnabled())
|
if (nppParams.getNppGUI()._tbIconInfo._tbIconSet == TB_STANDARD)
|
||||||
|
icoID = IDR_ASCIIPANEL_ICO;
|
||||||
|
else if (NppDarkMode::isEnabled())
|
||||||
icoID = IDR_ASCIIPANEL_ICO_DM;
|
icoID = IDR_ASCIIPANEL_ICO_DM;
|
||||||
else if (nppParams.getNppGUI()._toolBarStatus != TB_STANDARD)
|
|
||||||
icoID = IDR_ASCIIPANEL_ICO2;
|
|
||||||
|
|
||||||
const int iconSize = DPIManagerV2::scale(g_dockingContTabIconSize, _pAnsiCharPanel->getHSelf());
|
const int iconSize = DPIManagerV2::scale(g_dockingContTabIconSize, _pAnsiCharPanel->getHSelf());
|
||||||
DPIManagerV2::loadIcon(_pPublicInterface->getHinst(), MAKEINTRESOURCE(icoID), iconSize, iconSize, &data.hIconTab, LR_LOADMAP3DCOLORS | LR_LOADTRANSPARENT);
|
DPIManagerV2::loadIcon(_pPublicInterface->getHinst(), MAKEINTRESOURCE(icoID), iconSize, iconSize, &data.hIconTab, LR_LOADMAP3DCOLORS | LR_LOADTRANSPARENT);
|
||||||
@ -7494,11 +7491,11 @@ void Notepad_plus::launchFileBrowser(const vector<wstring> & folders, const wstr
|
|||||||
// define the default docking behaviour
|
// define the default docking behaviour
|
||||||
data.uMask = DWS_DF_CONT_LEFT | DWS_ICONTAB | DWS_USEOWNDARKMODE;
|
data.uMask = DWS_DF_CONT_LEFT | DWS_ICONTAB | DWS_USEOWNDARKMODE;
|
||||||
|
|
||||||
int icoID = IDR_FILEBROWSER_ICO;
|
int icoID = IDR_FILEBROWSER_ICO2;
|
||||||
if (NppDarkMode::isEnabled())
|
if (nppParams.getNppGUI()._tbIconInfo._tbIconSet == TB_STANDARD)
|
||||||
|
icoID = IDR_FILEBROWSER_ICO;
|
||||||
|
else if (NppDarkMode::isEnabled())
|
||||||
icoID = IDR_FILEBROWSER_ICO_DM;
|
icoID = IDR_FILEBROWSER_ICO_DM;
|
||||||
else if (nppParams.getNppGUI()._toolBarStatus != TB_STANDARD)
|
|
||||||
icoID = IDR_FILEBROWSER_ICO2;
|
|
||||||
|
|
||||||
const int iconSize = DPIManagerV2::scale(g_dockingContTabIconSize, _pFileBrowser->getHSelf());
|
const int iconSize = DPIManagerV2::scale(g_dockingContTabIconSize, _pFileBrowser->getHSelf());
|
||||||
DPIManagerV2::loadIcon(_pPublicInterface->getHinst(), MAKEINTRESOURCE(icoID), iconSize, iconSize, &data.hIconTab, LR_LOADMAP3DCOLORS | LR_LOADTRANSPARENT);
|
DPIManagerV2::loadIcon(_pPublicInterface->getHinst(), MAKEINTRESOURCE(icoID), iconSize, iconSize, &data.hIconTab, LR_LOADMAP3DCOLORS | LR_LOADTRANSPARENT);
|
||||||
@ -7604,11 +7601,11 @@ void Notepad_plus::launchProjectPanel(int cmdID, ProjectPanel ** pProjPanel, int
|
|||||||
// define the default docking behaviour
|
// define the default docking behaviour
|
||||||
data.uMask = DWS_DF_CONT_LEFT | DWS_ICONTAB | DWS_USEOWNDARKMODE;
|
data.uMask = DWS_DF_CONT_LEFT | DWS_ICONTAB | DWS_USEOWNDARKMODE;
|
||||||
|
|
||||||
int icoID = IDR_PROJECTPANEL_ICO;
|
int icoID = IDR_PROJECTPANEL_ICO2;
|
||||||
if (NppDarkMode::isEnabled())
|
if (nppParam.getNppGUI()._tbIconInfo._tbIconSet == TB_STANDARD)
|
||||||
|
icoID = IDR_PROJECTPANEL_ICO;
|
||||||
|
else if (NppDarkMode::isEnabled())
|
||||||
icoID = IDR_PROJECTPANEL_ICO_DM;
|
icoID = IDR_PROJECTPANEL_ICO_DM;
|
||||||
else if (nppParam.getNppGUI()._toolBarStatus != TB_STANDARD)
|
|
||||||
icoID = IDR_PROJECTPANEL_ICO2;
|
|
||||||
|
|
||||||
const int iconSize = DPIManagerV2::scale(g_dockingContTabIconSize, (*pProjPanel)->getHSelf());
|
const int iconSize = DPIManagerV2::scale(g_dockingContTabIconSize, (*pProjPanel)->getHSelf());
|
||||||
DPIManagerV2::loadIcon(_pPublicInterface->getHinst(), MAKEINTRESOURCE(icoID), iconSize, iconSize, &data.hIconTab, LR_LOADMAP3DCOLORS | LR_LOADTRANSPARENT);
|
DPIManagerV2::loadIcon(_pPublicInterface->getHinst(), MAKEINTRESOURCE(icoID), iconSize, iconSize, &data.hIconTab, LR_LOADMAP3DCOLORS | LR_LOADTRANSPARENT);
|
||||||
@ -7670,11 +7667,11 @@ void Notepad_plus::launchDocMap()
|
|||||||
// define the default docking behaviour
|
// define the default docking behaviour
|
||||||
data.uMask = DWS_DF_CONT_RIGHT | DWS_ICONTAB | DWS_USEOWNDARKMODE;
|
data.uMask = DWS_DF_CONT_RIGHT | DWS_ICONTAB | DWS_USEOWNDARKMODE;
|
||||||
|
|
||||||
int icoID = IDR_DOCMAP_ICO;
|
int icoID = IDR_DOCMAP_ICO2;
|
||||||
if (NppDarkMode::isEnabled())
|
if (nppParam.getNppGUI()._tbIconInfo._tbIconSet == TB_STANDARD)
|
||||||
|
icoID = IDR_DOCMAP_ICO;
|
||||||
|
else if (NppDarkMode::isEnabled())
|
||||||
icoID = IDR_DOCMAP_ICO_DM;
|
icoID = IDR_DOCMAP_ICO_DM;
|
||||||
else if (nppParam.getNppGUI()._toolBarStatus != TB_STANDARD)
|
|
||||||
icoID = IDR_DOCMAP_ICO2;
|
|
||||||
|
|
||||||
const int iconSize = DPIManagerV2::scale(g_dockingContTabIconSize, _pDocMap->getHSelf());
|
const int iconSize = DPIManagerV2::scale(g_dockingContTabIconSize, _pDocMap->getHSelf());
|
||||||
DPIManagerV2::loadIcon(_pPublicInterface->getHinst(), MAKEINTRESOURCE(icoID), iconSize, iconSize, &data.hIconTab, LR_LOADMAP3DCOLORS | LR_LOADTRANSPARENT);
|
DPIManagerV2::loadIcon(_pPublicInterface->getHinst(), MAKEINTRESOURCE(icoID), iconSize, iconSize, &data.hIconTab, LR_LOADMAP3DCOLORS | LR_LOADTRANSPARENT);
|
||||||
@ -7721,11 +7718,11 @@ void Notepad_plus::launchFunctionList()
|
|||||||
|
|
||||||
NppParameters& nppParam = NppParameters::getInstance();
|
NppParameters& nppParam = NppParameters::getInstance();
|
||||||
|
|
||||||
int icoID = IDR_FUNC_LIST_ICO;
|
int icoID = IDR_FUNC_LIST_ICO2;
|
||||||
if (NppDarkMode::isEnabled())
|
if (nppParam.getNppGUI()._tbIconInfo._tbIconSet == TB_STANDARD)
|
||||||
|
icoID = IDR_FUNC_LIST_ICO;
|
||||||
|
else if (NppDarkMode::isEnabled())
|
||||||
icoID = IDR_FUNC_LIST_ICO_DM;
|
icoID = IDR_FUNC_LIST_ICO_DM;
|
||||||
else if (nppParam.getNppGUI()._toolBarStatus != TB_STANDARD)
|
|
||||||
icoID = IDR_FUNC_LIST_ICO2;
|
|
||||||
|
|
||||||
const int iconSize = DPIManagerV2::scale(g_dockingContTabIconSize, _pFuncList->getHSelf());
|
const int iconSize = DPIManagerV2::scale(g_dockingContTabIconSize, _pFuncList->getHSelf());
|
||||||
DPIManagerV2::loadIcon(_pPublicInterface->getHinst(), MAKEINTRESOURCE(icoID), iconSize, iconSize, &data.hIconTab, LR_LOADMAP3DCOLORS | LR_LOADTRANSPARENT);
|
DPIManagerV2::loadIcon(_pPublicInterface->getHinst(), MAKEINTRESOURCE(icoID), iconSize, iconSize, &data.hIconTab, LR_LOADMAP3DCOLORS | LR_LOADTRANSPARENT);
|
||||||
@ -8521,13 +8518,10 @@ void Notepad_plus::refreshDarkMode(bool resetStyle)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
toolBarStatusType state = TB_STANDARD;
|
|
||||||
auto& nppGUITbInfo = nppParams.getNppGUI()._tbIconInfo;
|
auto& nppGUITbInfo = nppParams.getNppGUI()._tbIconInfo;
|
||||||
const NppDarkMode::TbIconInfo toolbarIconInfo = NppDarkMode::getToolbarIconInfo();
|
nppGUITbInfo = NppDarkMode::getToolbarIconInfo();
|
||||||
nppGUITbInfo = toolbarIconInfo;
|
|
||||||
state = static_cast<toolBarStatusType>(nppGUITbInfo._tbIconSet);
|
|
||||||
|
|
||||||
switch (state)
|
switch (nppGUITbInfo._tbIconSet)
|
||||||
{
|
{
|
||||||
case TB_SMALL:
|
case TB_SMALL:
|
||||||
_toolBar.reduce();
|
_toolBar.reduce();
|
||||||
|
@ -322,13 +322,10 @@ LRESULT Notepad_plus::process(HWND hwnd, UINT message, WPARAM wParam, LPARAM lPa
|
|||||||
nppGUI._darkmode._isEnabled = enableDarkMode;
|
nppGUI._darkmode._isEnabled = enableDarkMode;
|
||||||
if (!_preference.isCreated())
|
if (!_preference.isCreated())
|
||||||
{
|
{
|
||||||
toolBarStatusType state = TB_STANDARD;
|
|
||||||
auto& nppGUITbInfo = nppGUI._tbIconInfo;
|
auto& nppGUITbInfo = nppGUI._tbIconInfo;
|
||||||
const NppDarkMode::TbIconInfo toolbarIconInfo = NppDarkMode::getToolbarIconInfo();
|
nppGUITbInfo = NppDarkMode::getToolbarIconInfo();
|
||||||
nppGUITbInfo = toolbarIconInfo;
|
|
||||||
state = static_cast<toolBarStatusType>(nppGUITbInfo._tbIconSet);
|
|
||||||
|
|
||||||
switch (state)
|
switch (nppGUITbInfo._tbIconSet)
|
||||||
{
|
{
|
||||||
case TB_SMALL:
|
case TB_SMALL:
|
||||||
_toolBar.reduce();
|
_toolBar.reduce();
|
||||||
|
@ -34,7 +34,6 @@
|
|||||||
|
|
||||||
#ifdef __GNUC__
|
#ifdef __GNUC__
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
#include <memory>
|
|
||||||
#define WINAPI_LAMBDA WINAPI
|
#define WINAPI_LAMBDA WINAPI
|
||||||
#ifndef DWMWA_USE_IMMERSIVE_DARK_MODE
|
#ifndef DWMWA_USE_IMMERSIVE_DARK_MODE
|
||||||
#define DWMWA_USE_IMMERSIVE_DARK_MODE 20
|
#define DWMWA_USE_IMMERSIVE_DARK_MODE 20
|
||||||
@ -377,7 +376,7 @@ namespace NppDarkMode
|
|||||||
}
|
}
|
||||||
|
|
||||||
static Options _options; // actual runtime options
|
static Options _options; // actual runtime options
|
||||||
static AdvancedOptions g_advOptions;
|
static ::AdvancedOptions g_advOptions;
|
||||||
|
|
||||||
static Options configuredOptions()
|
static Options configuredOptions()
|
||||||
{
|
{
|
||||||
@ -578,7 +577,7 @@ namespace NppDarkMode
|
|||||||
: g_advOptions._lightDefaults._tbIconInfo;
|
: g_advOptions._lightDefaults._tbIconInfo;
|
||||||
|
|
||||||
if (toolbarInfo._tbCustomColor == 0)
|
if (toolbarInfo._tbCustomColor == 0)
|
||||||
toolbarInfo._tbCustomColor = NppDarkMode::getAccentColor();
|
toolbarInfo._tbCustomColor = NppDarkMode::getAccentColor(useDark);
|
||||||
|
|
||||||
return toolbarInfo;
|
return toolbarInfo;
|
||||||
}
|
}
|
||||||
@ -591,9 +590,9 @@ namespace NppDarkMode
|
|||||||
void setToolbarIconSet(int state2Set, bool useDark)
|
void setToolbarIconSet(int state2Set, bool useDark)
|
||||||
{
|
{
|
||||||
if (useDark)
|
if (useDark)
|
||||||
g_advOptions._darkDefaults._tbIconInfo._tbIconSet = state2Set;
|
g_advOptions._darkDefaults._tbIconInfo._tbIconSet = static_cast<toolBarStatusType>(state2Set);
|
||||||
else
|
else
|
||||||
g_advOptions._lightDefaults._tbIconInfo._tbIconSet = state2Set;
|
g_advOptions._lightDefaults._tbIconInfo._tbIconSet = static_cast<toolBarStatusType>(state2Set);
|
||||||
}
|
}
|
||||||
|
|
||||||
void setToolbarIconSet(int state2Set)
|
void setToolbarIconSet(int state2Set)
|
||||||
@ -721,9 +720,14 @@ namespace NppDarkMode
|
|||||||
return lightness;
|
return lightness;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
COLORREF getAccentColor(bool useDark)
|
||||||
|
{
|
||||||
|
return useDark ? cAccentDark : cAccentLight;
|
||||||
|
}
|
||||||
|
|
||||||
COLORREF getAccentColor()
|
COLORREF getAccentColor()
|
||||||
{
|
{
|
||||||
return NppDarkMode::isEnabled() ? cAccentDark : cAccentLight;
|
return getAccentColor(NppDarkMode::isEnabled());
|
||||||
}
|
}
|
||||||
|
|
||||||
COLORREF getBackgroundColor() { return getTheme()._colors.background; }
|
COLORREF getBackgroundColor() { return getTheme()._colors.background; }
|
||||||
@ -3856,204 +3860,4 @@ namespace NppDarkMode
|
|||||||
}
|
}
|
||||||
return NppDarkMode::onCtlColor(hdc);
|
return NppDarkMode::onCtlColor(hdc);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool changeFluentIconColor(HICON* phIcon, const std::vector<std::pair<COLORREF, COLORREF>>& colorMappings, int tolerance)
|
|
||||||
{
|
|
||||||
if (!*phIcon)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
HDC hdcScreen = nullptr;
|
|
||||||
HDC hdcBitmap = nullptr;
|
|
||||||
BITMAP bm{};
|
|
||||||
ICONINFO ii{};
|
|
||||||
HBITMAP hbmNew = nullptr;
|
|
||||||
std::unique_ptr<RGBQUAD[]> pixels;
|
|
||||||
|
|
||||||
const bool changeEverything = colorMappings[0].first == 0;
|
|
||||||
|
|
||||||
auto cleanup = [&]()
|
|
||||||
{
|
|
||||||
if (hdcScreen) ::ReleaseDC(nullptr, hdcScreen);
|
|
||||||
if (hdcBitmap) ::DeleteDC(hdcBitmap);
|
|
||||||
if (ii.hbmColor) ::DeleteObject(ii.hbmColor);
|
|
||||||
if (ii.hbmMask) ::DeleteObject(ii.hbmMask);
|
|
||||||
if (hbmNew) ::DeleteObject(hbmNew);
|
|
||||||
};
|
|
||||||
|
|
||||||
hdcScreen = ::GetDC(nullptr);
|
|
||||||
hdcBitmap = ::CreateCompatibleDC(nullptr);
|
|
||||||
|
|
||||||
if (!hdcScreen || !hdcBitmap || !::GetIconInfo(*phIcon, &ii) || !ii.hbmColor || !::GetObject(ii.hbmColor, sizeof(BITMAP), &bm))
|
|
||||||
{
|
|
||||||
cleanup();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
BITMAPINFO bmi{};
|
|
||||||
bmi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
|
|
||||||
bmi.bmiHeader.biWidth = bm.bmWidth;
|
|
||||||
bmi.bmiHeader.biHeight = -bm.bmHeight; // Top-down bitmap
|
|
||||||
bmi.bmiHeader.biPlanes = 1;
|
|
||||||
bmi.bmiHeader.biBitCount = 32;
|
|
||||||
bmi.bmiHeader.biCompression = BI_RGB;
|
|
||||||
|
|
||||||
pixels = std::make_unique<RGBQUAD[]>(static_cast<size_t>(bm.bmWidth) * bm.bmHeight);
|
|
||||||
if (!pixels || !::GetDIBits(hdcBitmap, ii.hbmColor, 0, bm.bmHeight, pixels.get(), &bmi, DIB_RGB_COLORS))
|
|
||||||
{
|
|
||||||
cleanup();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int i = 0; i < bm.bmWidth * bm.bmHeight; i++)
|
|
||||||
{
|
|
||||||
if (pixels[i].rgbReserved != 0) // Modify non-transparent pixels
|
|
||||||
{
|
|
||||||
if (changeEverything)
|
|
||||||
{
|
|
||||||
COLORREF cNew = colorMappings[0].second == 0 ? NppDarkMode::getAccentColor() : colorMappings[0].second;
|
|
||||||
pixels[i].rgbRed = GetRValue(cNew);
|
|
||||||
pixels[i].rgbGreen = GetGValue(cNew);
|
|
||||||
pixels[i].rgbBlue = GetBValue(cNew);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
for (const auto& [cToChange, cNew] : colorMappings)
|
|
||||||
{
|
|
||||||
|
|
||||||
if (std::abs(pixels[i].rgbRed - GetRValue(cToChange)) <= tolerance &&
|
|
||||||
std::abs(pixels[i].rgbGreen - GetGValue(cToChange)) <= tolerance &&
|
|
||||||
std::abs(pixels[i].rgbBlue - GetBValue(cToChange)) <= tolerance)
|
|
||||||
{
|
|
||||||
COLORREF finalNewColor = (cNew == 0) ? NppDarkMode::getAccentColor() : cNew;
|
|
||||||
pixels[i].rgbRed = GetRValue(finalNewColor);
|
|
||||||
pixels[i].rgbGreen = GetGValue(finalNewColor);
|
|
||||||
pixels[i].rgbBlue = GetBValue(finalNewColor);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
hbmNew = ::CreateCompatibleBitmap(hdcScreen, bm.bmWidth, bm.bmHeight);
|
|
||||||
if (!hbmNew || !::SetDIBits(hdcBitmap, hbmNew, 0, bm.bmHeight, pixels.get(), &bmi, DIB_RGB_COLORS))
|
|
||||||
{
|
|
||||||
cleanup();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ii.hbmColor)
|
|
||||||
{
|
|
||||||
::DeleteObject(ii.hbmColor);
|
|
||||||
ii.hbmColor = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
ii.hbmColor = hbmNew;
|
|
||||||
HICON hIconNew = ::CreateIconIndirect(&ii);
|
|
||||||
if (!hIconNew)
|
|
||||||
{
|
|
||||||
cleanup();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
::DestroyIcon(*phIcon);
|
|
||||||
*phIcon = hIconNew;
|
|
||||||
|
|
||||||
cleanup();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool changeFluentIconColor(HICON* phIcon)
|
|
||||||
{
|
|
||||||
const auto cMain = NppDarkMode::isEnabled() ? cDefaultMainDark : cDefaultMainLight;
|
|
||||||
const auto cSecondary = NppDarkMode::isEnabled() ? cDefaultSecondaryDark : cDefaultSecondaryLight;
|
|
||||||
std::vector<std::pair<COLORREF, COLORREF>> colorMappings;
|
|
||||||
|
|
||||||
NppParameters& nppParams = NppParameters::getInstance();
|
|
||||||
const auto& tbInfo = nppParams.getNppGUI()._tbIconInfo;
|
|
||||||
|
|
||||||
COLORREF cOld = tbInfo._tbUseMono ? 0 : cSecondary;
|
|
||||||
COLORREF cNew = 0;
|
|
||||||
|
|
||||||
switch (tbInfo._tbColor)
|
|
||||||
{
|
|
||||||
case FluentColor::accent:
|
|
||||||
{
|
|
||||||
cNew = 0;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case FluentColor::red:
|
|
||||||
{
|
|
||||||
cNew = RGB(0xE8, 0x11, 0x23);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case FluentColor::green:
|
|
||||||
{
|
|
||||||
cNew = RGB(0x00, 0x8B, 0x00);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case FluentColor::blue:
|
|
||||||
{
|
|
||||||
cNew = RGB(0x00, 0x78, 0xD4);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case FluentColor::purple:
|
|
||||||
{
|
|
||||||
cNew = RGB(0xB1, 0x46, 0xC2);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case FluentColor::cyan:
|
|
||||||
{
|
|
||||||
cNew = RGB(0x00, 0xB7, 0xC3);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case FluentColor::olive:
|
|
||||||
{
|
|
||||||
cNew = RGB(0x49, 0x82, 0x05);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case FluentColor::yellow:
|
|
||||||
{
|
|
||||||
cNew = RGB(0xFF, 0xB9, 0x00);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case FluentColor::custom:
|
|
||||||
{
|
|
||||||
if (tbInfo._tbCustomColor != 0)
|
|
||||||
{
|
|
||||||
cNew = tbInfo._tbCustomColor;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
[[fallthrough]];
|
|
||||||
}
|
|
||||||
|
|
||||||
case FluentColor::defaultColor:
|
|
||||||
{
|
|
||||||
if (tbInfo._tbUseMono)
|
|
||||||
{
|
|
||||||
cNew = cMain;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
[[fallthrough]];
|
|
||||||
}
|
|
||||||
|
|
||||||
default:
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
colorMappings = { {cOld, cNew} };
|
|
||||||
return NppDarkMode::changeFluentIconColor(phIcon, colorMappings);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -17,9 +17,11 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
|
|
||||||
|
enum class FluentColor;
|
||||||
|
struct TbIconInfo;
|
||||||
|
struct AdvancedOptions;
|
||||||
|
|
||||||
namespace NppDarkMode
|
namespace NppDarkMode
|
||||||
{
|
{
|
||||||
@ -80,52 +82,6 @@ namespace NppDarkMode
|
|||||||
dark = 2
|
dark = 2
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class FluentColor
|
|
||||||
{
|
|
||||||
defaultColor = 0,
|
|
||||||
accent = 1,
|
|
||||||
red = 2,
|
|
||||||
green = 3,
|
|
||||||
blue = 4,
|
|
||||||
purple = 5,
|
|
||||||
cyan = 6,
|
|
||||||
olive = 7,
|
|
||||||
yellow = 8,
|
|
||||||
custom = 9,
|
|
||||||
maxValue = 10
|
|
||||||
};
|
|
||||||
|
|
||||||
struct TbIconInfo
|
|
||||||
{
|
|
||||||
// 0: Fluent small, 1: Fluent big, 2: Filled Fluent small, 3: Filled Fluent big, 4: Standard small
|
|
||||||
int _tbIconSet = 4;
|
|
||||||
|
|
||||||
// fluent icon color
|
|
||||||
FluentColor _tbColor = FluentColor::defaultColor;
|
|
||||||
|
|
||||||
// fluent icon custom color, used when _tbColor == FluentColor::custom
|
|
||||||
COLORREF _tbCustomColor = 0;
|
|
||||||
|
|
||||||
// does fluent icon use monochrome colorization
|
|
||||||
bool _tbUseMono = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct AdvOptDefaults
|
|
||||||
{
|
|
||||||
std::wstring _xmlFileName;
|
|
||||||
TbIconInfo _tbIconInfo{};
|
|
||||||
int _tabIconSet = -1;
|
|
||||||
bool _tabUseTheme = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct AdvancedOptions
|
|
||||||
{
|
|
||||||
bool _enableWindowsMode = false;
|
|
||||||
|
|
||||||
NppDarkMode::AdvOptDefaults _darkDefaults{ L"DarkModeDefault.xml", {0, FluentColor::defaultColor, 0, false}, 2, false};
|
|
||||||
NppDarkMode::AdvOptDefaults _lightDefaults{ L"", { 4, FluentColor::defaultColor, 0, false }, 0, true };
|
|
||||||
};
|
|
||||||
|
|
||||||
constexpr UINT WM_SETBUTTONIDEALSIZE = (WM_USER + 4200);
|
constexpr UINT WM_SETBUTTONIDEALSIZE = (WM_USER + 4200);
|
||||||
|
|
||||||
void initDarkMode(); // pulls options from NppParameters
|
void initDarkMode(); // pulls options from NppParameters
|
||||||
@ -167,6 +123,7 @@ namespace NppDarkMode
|
|||||||
|
|
||||||
void setDarkTone(ColorTone colorToneChoice);
|
void setDarkTone(ColorTone colorToneChoice);
|
||||||
|
|
||||||
|
COLORREF getAccentColor(bool useDark);
|
||||||
COLORREF getAccentColor();
|
COLORREF getAccentColor();
|
||||||
|
|
||||||
COLORREF getBackgroundColor();
|
COLORREF getBackgroundColor();
|
||||||
@ -281,7 +238,4 @@ namespace NppDarkMode
|
|||||||
LRESULT onCtlColorError(HDC hdc);
|
LRESULT onCtlColorError(HDC hdc);
|
||||||
LRESULT onCtlColorDlgStaticText(HDC hdc, bool isTextEnabled);
|
LRESULT onCtlColorDlgStaticText(HDC hdc, bool isTextEnabled);
|
||||||
LRESULT onCtlColorListbox(WPARAM wParam, LPARAM lParam);
|
LRESULT onCtlColorListbox(WPARAM wParam, LPARAM lParam);
|
||||||
|
|
||||||
bool changeFluentIconColor(HICON* phIcon, const std::vector<std::pair<COLORREF, COLORREF>>& colorMappings, int tolerance = 3);
|
|
||||||
bool changeFluentIconColor(HICON* phIcon);
|
|
||||||
}
|
}
|
||||||
|
@ -4803,7 +4803,7 @@ void NppParameters::feedGUIParameters(TiXmlNode *node)
|
|||||||
if (val)
|
if (val)
|
||||||
{
|
{
|
||||||
auto& tbColor = _nppGUI._tbIconInfo._tbColor;
|
auto& tbColor = _nppGUI._tbIconInfo._tbColor;
|
||||||
tbColor = static_cast<NppDarkMode::FluentColor>(i);
|
tbColor = static_cast<FluentColor>(i);
|
||||||
}
|
}
|
||||||
|
|
||||||
val = element->Attribute(L"fluentCustomColor", &i);
|
val = element->Attribute(L"fluentCustomColor", &i);
|
||||||
@ -4829,16 +4829,17 @@ void NppParameters::feedGUIParameters(TiXmlNode *node)
|
|||||||
val = n->Value();
|
val = n->Value();
|
||||||
if (val)
|
if (val)
|
||||||
{
|
{
|
||||||
|
auto& tbIconSet = _nppGUI._tbIconInfo._tbIconSet;
|
||||||
if (!lstrcmp(val, L"small"))
|
if (!lstrcmp(val, L"small"))
|
||||||
_nppGUI._toolBarStatus = TB_SMALL;
|
tbIconSet = TB_SMALL;
|
||||||
else if (!lstrcmp(val, L"large"))
|
else if (!lstrcmp(val, L"large"))
|
||||||
_nppGUI._toolBarStatus = TB_LARGE;
|
tbIconSet = TB_LARGE;
|
||||||
else if (!lstrcmp(val, L"small2"))
|
else if (!lstrcmp(val, L"small2"))
|
||||||
_nppGUI._toolBarStatus = TB_SMALL2;
|
tbIconSet = TB_SMALL2;
|
||||||
else if (!lstrcmp(val, L"large2"))
|
else if (!lstrcmp(val, L"large2"))
|
||||||
_nppGUI._toolBarStatus = TB_LARGE2;
|
tbIconSet = TB_LARGE2;
|
||||||
else //if (!lstrcmp(val, L"standard"))
|
else //if (!lstrcmp(val, L"standard"))
|
||||||
_nppGUI._toolBarStatus = TB_STANDARD;
|
tbIconSet = TB_STANDARD;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -6393,14 +6394,15 @@ void NppParameters::feedGUIParameters(TiXmlNode *node)
|
|||||||
auto& windowsMode = _nppGUI._darkmode._advOptions._enableWindowsMode;
|
auto& windowsMode = _nppGUI._darkmode._advOptions._enableWindowsMode;
|
||||||
windowsMode = parseYesNoBoolAttribute(L"enableWindowsMode");
|
windowsMode = parseYesNoBoolAttribute(L"enableWindowsMode");
|
||||||
|
|
||||||
constexpr int fluentColorMaxValue = static_cast<int>(NppDarkMode::FluentColor::maxValue) - 1;
|
constexpr int fluentColorMaxValue = static_cast<int>(FluentColor::maxValue) - 1;
|
||||||
|
constexpr int tbStdIcoSet = static_cast<int>(TB_STANDARD);
|
||||||
|
|
||||||
auto& darkDefaults = _nppGUI._darkmode._advOptions._darkDefaults;
|
auto& darkDefaults = _nppGUI._darkmode._advOptions._darkDefaults;
|
||||||
auto& darkThemeName = darkDefaults._xmlFileName;
|
auto& darkThemeName = darkDefaults._xmlFileName;
|
||||||
auto& darkTbInfo = darkDefaults._tbIconInfo;
|
auto& darkTbInfo = darkDefaults._tbIconInfo;
|
||||||
darkThemeName = parseStringAttribute(L"darkThemeName", L"DarkModeDefault.xml");
|
darkThemeName = parseStringAttribute(L"darkThemeName", L"DarkModeDefault.xml");
|
||||||
darkTbInfo._tbIconSet = parseMinMaxAttribute(L"darkToolBarIconSet", 0, 4);
|
darkTbInfo._tbIconSet = static_cast<toolBarStatusType>(parseMinMaxAttribute(L"darkToolBarIconSet", static_cast<int>(TB_SMALL), tbStdIcoSet));
|
||||||
darkTbInfo._tbColor = static_cast<NppDarkMode::FluentColor>(parseMinMaxAttribute(L"darkTbFluentColor", 0, fluentColorMaxValue));
|
darkTbInfo._tbColor = static_cast<FluentColor>(parseMinMaxAttribute(L"darkTbFluentColor", 0, fluentColorMaxValue));
|
||||||
darkTbInfo._tbCustomColor = parseIntAttribute(L"darkTbFluentCustomColor", 0);
|
darkTbInfo._tbCustomColor = parseIntAttribute(L"darkTbFluentCustomColor", 0);
|
||||||
darkTbInfo._tbUseMono = parseYesNoBoolAttribute(L"darkTbFluentMono");
|
darkTbInfo._tbUseMono = parseYesNoBoolAttribute(L"darkTbFluentMono");
|
||||||
darkDefaults._tabIconSet = parseMinMaxAttribute(L"darkTabIconSet", 2);
|
darkDefaults._tabIconSet = parseMinMaxAttribute(L"darkTabIconSet", 2);
|
||||||
@ -6410,8 +6412,8 @@ void NppParameters::feedGUIParameters(TiXmlNode *node)
|
|||||||
auto& lightThemeName = lightDefaults._xmlFileName;
|
auto& lightThemeName = lightDefaults._xmlFileName;
|
||||||
auto& lightTbInfo = lightDefaults._tbIconInfo;
|
auto& lightTbInfo = lightDefaults._tbIconInfo;
|
||||||
lightThemeName = parseStringAttribute(L"lightThemeName");
|
lightThemeName = parseStringAttribute(L"lightThemeName");
|
||||||
lightTbInfo._tbIconSet = parseMinMaxAttribute(L"lightToolBarIconSet", 4, 4);
|
lightTbInfo._tbIconSet = static_cast<toolBarStatusType>(parseMinMaxAttribute(L"lightToolBarIconSet", tbStdIcoSet, tbStdIcoSet));
|
||||||
lightTbInfo._tbColor = static_cast<NppDarkMode::FluentColor>(parseMinMaxAttribute(L"lightTbFluentColor", 0, fluentColorMaxValue));
|
lightTbInfo._tbColor = static_cast<FluentColor>(parseMinMaxAttribute(L"lightTbFluentColor", 0, fluentColorMaxValue));
|
||||||
lightTbInfo._tbCustomColor = parseIntAttribute(L"lightTbFluentCustomColor", 0);
|
lightTbInfo._tbCustomColor = parseIntAttribute(L"lightTbFluentCustomColor", 0);
|
||||||
lightTbInfo._tbUseMono = parseYesNoBoolAttribute(L"lightTbFluentMono");
|
lightTbInfo._tbUseMono = parseYesNoBoolAttribute(L"lightTbFluentMono");
|
||||||
lightDefaults._tabIconSet = parseMinMaxAttribute(L"lightTabIconSet", 0);
|
lightDefaults._tabIconSet = parseMinMaxAttribute(L"lightTabIconSet", 0);
|
||||||
@ -7301,24 +7303,48 @@ void NppParameters::createXmlTreeFromGUIParams()
|
|||||||
// <GUIConfig name="ToolBar" visible="yes">standard</GUIConfig>
|
// <GUIConfig name="ToolBar" visible="yes">standard</GUIConfig>
|
||||||
{
|
{
|
||||||
TiXmlElement *GUIConfigElement = (newGUIRoot->InsertEndChild(TiXmlElement(L"GUIConfig")))->ToElement();
|
TiXmlElement *GUIConfigElement = (newGUIRoot->InsertEndChild(TiXmlElement(L"GUIConfig")))->ToElement();
|
||||||
|
auto& nppGUITbInfo = _nppGUI._tbIconInfo;
|
||||||
GUIConfigElement->SetAttribute(L"name", L"ToolBar");
|
GUIConfigElement->SetAttribute(L"name", L"ToolBar");
|
||||||
const wchar_t *pStr = (_nppGUI._toolbarShow) ? L"yes" : L"no";
|
const wchar_t* pStr = (_nppGUI._toolbarShow) ? L"yes" : L"no";
|
||||||
GUIConfigElement->SetAttribute(L"visible", pStr);
|
GUIConfigElement->SetAttribute(L"visible", pStr);
|
||||||
GUIConfigElement->SetAttribute(L"fluentColor", static_cast<int>(_nppGUI._tbIconInfo._tbColor));
|
GUIConfigElement->SetAttribute(L"fluentColor", static_cast<int>(nppGUITbInfo._tbColor));
|
||||||
GUIConfigElement->SetAttribute(L"fluentCustomColor", _nppGUI._tbIconInfo._tbCustomColor);
|
GUIConfigElement->SetAttribute(L"fluentCustomColor", nppGUITbInfo._tbCustomColor);
|
||||||
pStr = (_nppGUI._tbIconInfo._tbUseMono) ? L"yes" : L"no";
|
pStr = (nppGUITbInfo._tbUseMono) ? L"yes" : L"no";
|
||||||
GUIConfigElement->SetAttribute(L"fluentMono", pStr);
|
GUIConfigElement->SetAttribute(L"fluentMono", pStr);
|
||||||
|
|
||||||
if (_nppGUI._toolBarStatus == TB_SMALL)
|
switch (nppGUITbInfo._tbIconSet)
|
||||||
pStr = L"small";
|
{
|
||||||
else if (_nppGUI._toolBarStatus == TB_LARGE)
|
case TB_SMALL:
|
||||||
pStr = L"large";
|
{
|
||||||
else if (_nppGUI._toolBarStatus == TB_SMALL2)
|
pStr = L"small";
|
||||||
pStr = L"small2";
|
break;
|
||||||
else if (_nppGUI._toolBarStatus == TB_LARGE2)
|
}
|
||||||
pStr = L"large2";
|
|
||||||
else //if (_nppGUI._toolBarStatus == TB_STANDARD)
|
case TB_LARGE:
|
||||||
pStr = L"standard";
|
{
|
||||||
|
pStr = L"large";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case TB_SMALL2:
|
||||||
|
{
|
||||||
|
pStr = L"small2";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case TB_LARGE2:
|
||||||
|
{
|
||||||
|
pStr = L"large2";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case TB_STANDARD:
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
pStr = L"standard";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
GUIConfigElement->InsertEndChild(TiXmlText(pStr));
|
GUIConfigElement->InsertEndChild(TiXmlText(pStr));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -764,13 +764,63 @@ public:
|
|||||||
bool _doDoubleQuotes = false;
|
bool _doDoubleQuotes = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
constexpr COLORREF g_cDefaultMainDark = RGB(0xDE, 0xDE, 0xDE);
|
||||||
|
constexpr COLORREF g_cDefaultSecondaryDark = RGB(0x4C, 0xC2, 0xFF);
|
||||||
|
constexpr COLORREF g_cDefaultMainLight = RGB(0x21, 0x21, 0x21);
|
||||||
|
constexpr COLORREF g_cDefaultSecondaryLight = RGB(0x00, 0x78, 0xD4);
|
||||||
|
|
||||||
|
enum class FluentColor
|
||||||
|
{
|
||||||
|
defaultColor = 0,
|
||||||
|
red = 1,
|
||||||
|
green = 2,
|
||||||
|
blue = 3,
|
||||||
|
purple = 4,
|
||||||
|
cyan = 5,
|
||||||
|
olive = 6,
|
||||||
|
yellow = 7,
|
||||||
|
accent = 8,
|
||||||
|
custom = 9,
|
||||||
|
maxValue = 10
|
||||||
|
};
|
||||||
|
|
||||||
|
struct TbIconInfo
|
||||||
|
{
|
||||||
|
toolBarStatusType _tbIconSet = TB_STANDARD;
|
||||||
|
|
||||||
|
// fluent icon color
|
||||||
|
FluentColor _tbColor = FluentColor::defaultColor;
|
||||||
|
|
||||||
|
// fluent icon custom color, used when _tbColor == FluentColor::custom
|
||||||
|
COLORREF _tbCustomColor = 0;
|
||||||
|
|
||||||
|
// does fluent icon use monochrome colorization
|
||||||
|
bool _tbUseMono = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct AdvOptDefaults final
|
||||||
|
{
|
||||||
|
std::wstring _xmlFileName;
|
||||||
|
TbIconInfo _tbIconInfo{};
|
||||||
|
int _tabIconSet = -1;
|
||||||
|
bool _tabUseTheme = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct AdvancedOptions final
|
||||||
|
{
|
||||||
|
AdvOptDefaults _darkDefaults{ L"DarkModeDefault.xml", {TB_SMALL, FluentColor::defaultColor, 0, false}, 2, false };
|
||||||
|
AdvOptDefaults _lightDefaults{ L"", { TB_STANDARD, FluentColor::defaultColor, 0, false }, 0, true };
|
||||||
|
|
||||||
|
bool _enableWindowsMode = false;
|
||||||
|
};
|
||||||
|
|
||||||
struct DarkModeConf final
|
struct DarkModeConf final
|
||||||
{
|
{
|
||||||
bool _isEnabled = false;
|
bool _isEnabled = false;
|
||||||
bool _isEnabledPlugin = true;
|
bool _isEnabledPlugin = true;
|
||||||
NppDarkMode::ColorTone _colorTone = NppDarkMode::blackTone;
|
NppDarkMode::ColorTone _colorTone = NppDarkMode::blackTone;
|
||||||
NppDarkMode::Colors _customColors = NppDarkMode::getDarkModeDefaultColors();
|
NppDarkMode::Colors _customColors = NppDarkMode::getDarkModeDefaultColors();
|
||||||
NppDarkMode::AdvancedOptions _advOptions{};
|
AdvancedOptions _advOptions{};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -791,8 +841,7 @@ struct LargeFileRestriction final
|
|||||||
|
|
||||||
struct NppGUI final
|
struct NppGUI final
|
||||||
{
|
{
|
||||||
toolBarStatusType _toolBarStatus = TB_STANDARD;
|
TbIconInfo _tbIconInfo{ TB_STANDARD, FluentColor::defaultColor, 0, false };
|
||||||
NppDarkMode::TbIconInfo _tbIconInfo{ TB_STANDARD, NppDarkMode::FluentColor::defaultColor, 0, false };
|
|
||||||
bool _toolbarShow = true;
|
bool _toolbarShow = true;
|
||||||
bool _statusBarShow = true;
|
bool _statusBarShow = true;
|
||||||
bool _menuBarShow = true;
|
bool _menuBarShow = true;
|
||||||
|
@ -3611,11 +3611,11 @@ void FindReplaceDlg::findAllIn(InWhat op)
|
|||||||
// define the default docking behaviour
|
// define the default docking behaviour
|
||||||
data.uMask = DWS_DF_CONT_BOTTOM | DWS_ICONTAB | DWS_ADDINFO | DWS_USEOWNDARKMODE;
|
data.uMask = DWS_DF_CONT_BOTTOM | DWS_ICONTAB | DWS_ADDINFO | DWS_USEOWNDARKMODE;
|
||||||
|
|
||||||
int icoID = IDI_FIND_RESULT_ICON;
|
int icoID = IDR_FIND_RESULT_ICO2;
|
||||||
if (NppDarkMode::isEnabled())
|
if (nppParam.getNppGUI()._tbIconInfo._tbIconSet == TB_STANDARD)
|
||||||
|
icoID = IDI_FIND_RESULT_ICON;
|
||||||
|
else if (NppDarkMode::isEnabled())
|
||||||
icoID = IDR_FIND_RESULT_ICO_DM;
|
icoID = IDR_FIND_RESULT_ICO_DM;
|
||||||
else if (nppParam.getNppGUI()._toolBarStatus != TB_STANDARD)
|
|
||||||
icoID = IDR_FIND_RESULT_ICO2;
|
|
||||||
|
|
||||||
const int iconSize = DPIManagerV2::scale(g_dockingContTabIconSize, _pFinder->getHSelf());
|
const int iconSize = DPIManagerV2::scale(g_dockingContTabIconSize, _pFinder->getHSelf());
|
||||||
DPIManagerV2::loadIcon(_hInst, MAKEINTRESOURCE(icoID), iconSize, iconSize, &data.hIconTab, LR_LOADMAP3DCOLORS | LR_LOADTRANSPARENT);
|
DPIManagerV2::loadIcon(_hInst, MAKEINTRESOURCE(icoID), iconSize, iconSize, &data.hIconTab, LR_LOADMAP3DCOLORS | LR_LOADTRANSPARENT);
|
||||||
@ -3759,11 +3759,11 @@ Finder* FindReplaceDlg::createFinder()
|
|||||||
// define the default docking behaviour
|
// define the default docking behaviour
|
||||||
data.uMask = DWS_DF_CONT_BOTTOM | DWS_ICONTAB | DWS_ADDINFO | DWS_USEOWNDARKMODE;
|
data.uMask = DWS_DF_CONT_BOTTOM | DWS_ICONTAB | DWS_ADDINFO | DWS_USEOWNDARKMODE;
|
||||||
|
|
||||||
int icoID = IDI_FIND_RESULT_ICON;
|
int icoID = IDR_FIND_RESULT_ICO2;
|
||||||
if (NppDarkMode::isEnabled())
|
if (nppParam.getNppGUI()._tbIconInfo._tbIconSet == TB_STANDARD)
|
||||||
|
icoID = IDI_FIND_RESULT_ICON;
|
||||||
|
else if (NppDarkMode::isEnabled())
|
||||||
icoID = IDR_FIND_RESULT_ICO_DM;
|
icoID = IDR_FIND_RESULT_ICO_DM;
|
||||||
else if (nppParam.getNppGUI()._toolBarStatus != TB_STANDARD)
|
|
||||||
icoID = IDR_FIND_RESULT_ICO2;
|
|
||||||
|
|
||||||
const int iconSize = DPIManagerV2::scale(g_dockingContTabIconSize, _pFinder->getHSelf());
|
const int iconSize = DPIManagerV2::scale(g_dockingContTabIconSize, _pFinder->getHSelf());
|
||||||
DPIManagerV2::loadIcon(_hInst, MAKEINTRESOURCE(icoID), iconSize, iconSize, &data.hIconTab, LR_LOADMAP3DCOLORS | LR_LOADTRANSPARENT);
|
DPIManagerV2::loadIcon(_hInst, MAKEINTRESOURCE(icoID), iconSize, iconSize, &data.hIconTab, LR_LOADMAP3DCOLORS | LR_LOADTRANSPARENT);
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include "ImageListSet.h"
|
#include "ImageListSet.h"
|
||||||
|
#include "Parameters.h"
|
||||||
#include "NppDarkMode.h"
|
#include "NppDarkMode.h"
|
||||||
#include "dpiManagerV2.h"
|
#include "dpiManagerV2.h"
|
||||||
|
|
||||||
@ -74,7 +75,6 @@ void IconList::addIcon(int iconID, int cx, int cy, int failIconID, bool isToolba
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
constexpr int IDI_ICONABSENT = 104; // check resource.h for correct id
|
|
||||||
DPIManagerV2::loadIcon(_hInst, MAKEINTRESOURCE(IDI_ICONABSENT), cx, cy, &hIcon);
|
DPIManagerV2::loadIcon(_hInst, MAKEINTRESOURCE(IDI_ICONABSENT), cx, cy, &hIcon);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -82,7 +82,7 @@ void IconList::addIcon(int iconID, int cx, int cy, int failIconID, bool isToolba
|
|||||||
if (hIcon != nullptr)
|
if (hIcon != nullptr)
|
||||||
{
|
{
|
||||||
if (isToolbarNormal)
|
if (isToolbarNormal)
|
||||||
NppDarkMode::changeFluentIconColor(&hIcon);
|
IconList::changeFluentIconColor(&hIcon);
|
||||||
::ImageList_AddIcon(_hImglst, hIcon);
|
::ImageList_AddIcon(_hImglst, hIcon);
|
||||||
::DestroyIcon(hIcon);
|
::DestroyIcon(hIcon);
|
||||||
}
|
}
|
||||||
@ -105,6 +105,207 @@ bool IconList::changeIcon(size_t index, const wchar_t* iconLocation) const
|
|||||||
return (i == index);
|
return (i == index);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool IconList::changeFluentIconColor(HICON* phIcon, const std::vector<std::pair<COLORREF, COLORREF>>& colorMappings, int tolerance) const
|
||||||
|
{
|
||||||
|
if (!*phIcon)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
HDC hdcScreen = nullptr;
|
||||||
|
HDC hdcBitmap = nullptr;
|
||||||
|
BITMAP bm{};
|
||||||
|
ICONINFO ii{};
|
||||||
|
HBITMAP hbmNew = nullptr;
|
||||||
|
std::unique_ptr<RGBQUAD[]> pixels;
|
||||||
|
|
||||||
|
const bool changeEverything = colorMappings[0].first == 0;
|
||||||
|
|
||||||
|
auto cleanup = [&]()
|
||||||
|
{
|
||||||
|
if (hdcScreen) ::ReleaseDC(nullptr, hdcScreen);
|
||||||
|
if (hdcBitmap) ::DeleteDC(hdcBitmap);
|
||||||
|
if (ii.hbmColor) ::DeleteObject(ii.hbmColor);
|
||||||
|
if (ii.hbmMask) ::DeleteObject(ii.hbmMask);
|
||||||
|
if (hbmNew) ::DeleteObject(hbmNew);
|
||||||
|
};
|
||||||
|
|
||||||
|
hdcScreen = ::GetDC(nullptr);
|
||||||
|
hdcBitmap = ::CreateCompatibleDC(nullptr);
|
||||||
|
|
||||||
|
if (!hdcScreen || !hdcBitmap || !::GetIconInfo(*phIcon, &ii) || !ii.hbmColor || !::GetObject(ii.hbmColor, sizeof(BITMAP), &bm))
|
||||||
|
{
|
||||||
|
cleanup();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
BITMAPINFO bmi{};
|
||||||
|
bmi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
|
||||||
|
bmi.bmiHeader.biWidth = bm.bmWidth;
|
||||||
|
bmi.bmiHeader.biHeight = -bm.bmHeight; // Top-down bitmap
|
||||||
|
bmi.bmiHeader.biPlanes = 1;
|
||||||
|
bmi.bmiHeader.biBitCount = 32;
|
||||||
|
bmi.bmiHeader.biCompression = BI_RGB;
|
||||||
|
|
||||||
|
pixels = std::make_unique<RGBQUAD[]>(static_cast<size_t>(bm.bmWidth) * bm.bmHeight);
|
||||||
|
if (!pixels || !::GetDIBits(hdcBitmap, ii.hbmColor, 0, bm.bmHeight, pixels.get(), &bmi, DIB_RGB_COLORS))
|
||||||
|
{
|
||||||
|
cleanup();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < bm.bmWidth * bm.bmHeight; i++)
|
||||||
|
{
|
||||||
|
if (pixels[i].rgbReserved != 0) // Modify non-transparent pixels
|
||||||
|
{
|
||||||
|
if (changeEverything)
|
||||||
|
{
|
||||||
|
COLORREF cNew = colorMappings[0].second == 0 ? NppDarkMode::getAccentColor() : colorMappings[0].second;
|
||||||
|
pixels[i].rgbRed = GetRValue(cNew);
|
||||||
|
pixels[i].rgbGreen = GetGValue(cNew);
|
||||||
|
pixels[i].rgbBlue = GetBValue(cNew);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
for (const auto& [cToChange, cNew] : colorMappings)
|
||||||
|
{
|
||||||
|
|
||||||
|
if (std::abs(pixels[i].rgbRed - GetRValue(cToChange)) <= tolerance &&
|
||||||
|
std::abs(pixels[i].rgbGreen - GetGValue(cToChange)) <= tolerance &&
|
||||||
|
std::abs(pixels[i].rgbBlue - GetBValue(cToChange)) <= tolerance)
|
||||||
|
{
|
||||||
|
COLORREF finalNewColor = (cNew == 0) ? NppDarkMode::getAccentColor() : cNew;
|
||||||
|
pixels[i].rgbRed = GetRValue(finalNewColor);
|
||||||
|
pixels[i].rgbGreen = GetGValue(finalNewColor);
|
||||||
|
pixels[i].rgbBlue = GetBValue(finalNewColor);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
hbmNew = ::CreateCompatibleBitmap(hdcScreen, bm.bmWidth, bm.bmHeight);
|
||||||
|
if (!hbmNew || !::SetDIBits(hdcBitmap, hbmNew, 0, bm.bmHeight, pixels.get(), &bmi, DIB_RGB_COLORS))
|
||||||
|
{
|
||||||
|
cleanup();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ii.hbmColor)
|
||||||
|
{
|
||||||
|
::DeleteObject(ii.hbmColor);
|
||||||
|
ii.hbmColor = nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
ii.hbmColor = hbmNew;
|
||||||
|
HICON hIconNew = ::CreateIconIndirect(&ii);
|
||||||
|
if (!hIconNew)
|
||||||
|
{
|
||||||
|
cleanup();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
::DestroyIcon(*phIcon);
|
||||||
|
*phIcon = hIconNew;
|
||||||
|
|
||||||
|
cleanup();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool IconList::changeFluentIconColor(HICON* phIcon) const
|
||||||
|
{
|
||||||
|
const auto cMain = NppDarkMode::isEnabled() ? g_cDefaultMainDark : g_cDefaultMainLight;
|
||||||
|
const auto cSecondary = NppDarkMode::isEnabled() ? g_cDefaultSecondaryDark : g_cDefaultSecondaryLight;
|
||||||
|
std::vector<std::pair<COLORREF, COLORREF>> colorMappings;
|
||||||
|
|
||||||
|
NppParameters& nppParams = NppParameters::getInstance();
|
||||||
|
const auto& tbInfo = nppParams.getNppGUI()._tbIconInfo;
|
||||||
|
|
||||||
|
COLORREF cOld = tbInfo._tbUseMono ? 0 : cSecondary;
|
||||||
|
COLORREF cNew = 0;
|
||||||
|
|
||||||
|
switch (tbInfo._tbColor)
|
||||||
|
{
|
||||||
|
case FluentColor::accent:
|
||||||
|
{
|
||||||
|
cNew = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case FluentColor::red:
|
||||||
|
{
|
||||||
|
cNew = RGB(0xE8, 0x11, 0x23);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case FluentColor::green:
|
||||||
|
{
|
||||||
|
cNew = RGB(0x00, 0x8B, 0x00);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case FluentColor::blue:
|
||||||
|
{
|
||||||
|
cNew = RGB(0x00, 0x78, 0xD4);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case FluentColor::purple:
|
||||||
|
{
|
||||||
|
cNew = RGB(0xB1, 0x46, 0xC2);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case FluentColor::cyan:
|
||||||
|
{
|
||||||
|
cNew = RGB(0x00, 0xB7, 0xC3);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case FluentColor::olive:
|
||||||
|
{
|
||||||
|
cNew = RGB(0x49, 0x82, 0x05);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case FluentColor::yellow:
|
||||||
|
{
|
||||||
|
cNew = RGB(0xFF, 0xB9, 0x00);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case FluentColor::custom:
|
||||||
|
{
|
||||||
|
if (tbInfo._tbCustomColor != 0)
|
||||||
|
{
|
||||||
|
cNew = tbInfo._tbCustomColor;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
[[fallthrough]];
|
||||||
|
}
|
||||||
|
|
||||||
|
case FluentColor::defaultColor:
|
||||||
|
{
|
||||||
|
if (tbInfo._tbUseMono)
|
||||||
|
{
|
||||||
|
cNew = cMain;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
[[fallthrough]];
|
||||||
|
}
|
||||||
|
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
colorMappings = { {cOld, cNew} };
|
||||||
|
return IconList::changeFluentIconColor(phIcon, colorMappings);
|
||||||
|
}
|
||||||
|
|
||||||
void ToolBarIcons::init(ToolBarButtonUnit *buttonUnitArray, int arraySize, const std::vector<DynamicCmdIcoBmp>& moreCmds)
|
void ToolBarIcons::init(ToolBarButtonUnit *buttonUnitArray, int arraySize, const std::vector<DynamicCmdIcoBmp>& moreCmds)
|
||||||
{
|
{
|
||||||
for (int i = 0 ; i < arraySize ; ++i)
|
for (int i = 0 ; i < arraySize ; ++i)
|
||||||
|
@ -50,6 +50,9 @@ private :
|
|||||||
int *_pIconIDArray = nullptr;
|
int *_pIconIDArray = nullptr;
|
||||||
int _iconIDArraySize = 0;
|
int _iconIDArraySize = 0;
|
||||||
int _iconSize = 0;
|
int _iconSize = 0;
|
||||||
|
|
||||||
|
bool changeFluentIconColor(HICON* phIcon, const std::vector<std::pair<COLORREF, COLORREF>>& colorMappings, int tolerance = 3) const;
|
||||||
|
bool changeFluentIconColor(HICON* phIcon) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct ToolBarButtonUnit
|
struct ToolBarButtonUnit
|
||||||
@ -158,4 +161,3 @@ private :
|
|||||||
|
|
||||||
std::vector<IconList> _iconListVector;
|
std::vector<IconList> _iconListVector;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -194,8 +194,8 @@ intptr_t CALLBACK PreferenceDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM
|
|||||||
_searchEngineSubDlg.create(IDD_PREFERENCE_SUB_SEARCHENGINE, false, false);
|
_searchEngineSubDlg.create(IDD_PREFERENCE_SUB_SEARCHENGINE, false, false);
|
||||||
|
|
||||||
_wVector.push_back(DlgInfo(&_generalSubDlg, L"General", L"Global"));
|
_wVector.push_back(DlgInfo(&_generalSubDlg, L"General", L"Global"));
|
||||||
_wVector.push_back(DlgInfo(&_toolbarSubDlg, L"Tool Bar", L"Toolbar"));
|
_wVector.push_back(DlgInfo(&_toolbarSubDlg, L"Toolbar", L"Toolbar"));
|
||||||
_wVector.push_back(DlgInfo(&_tabbarSubDlg, L"Tab bar", L"Tabbar"));
|
_wVector.push_back(DlgInfo(&_tabbarSubDlg, L"Tab Bar", L"Tabbar"));
|
||||||
_wVector.push_back(DlgInfo(&_editingSubDlg, L"Editing 1", L"Scintillas"));
|
_wVector.push_back(DlgInfo(&_editingSubDlg, L"Editing 1", L"Scintillas"));
|
||||||
_wVector.push_back(DlgInfo(&_editing2SubDlg, L"Editing 2", L"Scintillas2"));
|
_wVector.push_back(DlgInfo(&_editing2SubDlg, L"Editing 2", L"Scintillas2"));
|
||||||
_wVector.push_back(DlgInfo(&_darkModeSubDlg, L"Dark Mode", L"DarkMode"));
|
_wVector.push_back(DlgInfo(&_darkModeSubDlg, L"Dark Mode", L"DarkMode"));
|
||||||
@ -289,6 +289,10 @@ intptr_t CALLBACK PreferenceDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM
|
|||||||
|
|
||||||
const bool isEnableAutoC = _autoCompletionSubDlg.isCheckedOrNot(IDD_AUTOC_ENABLECHECK);
|
const bool isEnableAutoC = _autoCompletionSubDlg.isCheckedOrNot(IDD_AUTOC_ENABLECHECK);
|
||||||
::EnableWindow(::GetDlgItem(_autoCompletionSubDlg.getHSelf(), IDD_AUTOC_USEKEY_GRP_STATIC), isEnableAutoC);
|
::EnableWindow(::GetDlgItem(_autoCompletionSubDlg.getHSelf(), IDD_AUTOC_USEKEY_GRP_STATIC), isEnableAutoC);
|
||||||
|
|
||||||
|
const bool isFluentIcon = !_toolbarSubDlg.isCheckedOrNot(IDC_RADIO_STANDARD);
|
||||||
|
::EnableWindow(::GetDlgItem(_toolbarSubDlg.getHSelf(), IDC_TOOLBAR_GB_COLORCHOICE), isFluentIcon);
|
||||||
|
::EnableWindow(::GetDlgItem(_toolbarSubDlg.getHSelf(), IDC_TOOLBAR_GB_COLORIZATION), isFluentIcon);
|
||||||
}
|
}
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
@ -299,38 +303,36 @@ intptr_t CALLBACK PreferenceDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM
|
|||||||
NppParameters& nppParams = NppParameters::getInstance();
|
NppParameters& nppParams = NppParameters::getInstance();
|
||||||
NppGUI& nppGUI = nppParams.getNppGUI();
|
NppGUI& nppGUI = nppParams.getNppGUI();
|
||||||
auto& nppGUITbInfo = nppGUI._tbIconInfo;
|
auto& nppGUITbInfo = nppGUI._tbIconInfo;
|
||||||
const NppDarkMode::TbIconInfo toolbarIconInfo = NppDarkMode::getToolbarIconInfo(static_cast<bool>(wParam));
|
nppGUITbInfo = NppDarkMode::getToolbarIconInfo(static_cast<bool>(wParam));
|
||||||
nppGUITbInfo = toolbarIconInfo;
|
|
||||||
nppGUI._toolBarStatus = static_cast<toolBarStatusType>(nppGUITbInfo._tbIconSet);
|
|
||||||
|
|
||||||
const HWND hToolbarlSubDlg = _toolbarSubDlg.getHSelf();
|
const HWND hToolbarlSubDlg = _toolbarSubDlg.getHSelf();
|
||||||
|
|
||||||
auto checkOrUncheckBtn = [&hToolbarlSubDlg](int id, WPARAM check = BST_UNCHECKED) -> void
|
auto checkOrUncheckBtn = [&hToolbarlSubDlg](int id, bool check = false) -> void
|
||||||
{
|
{
|
||||||
::SendDlgItemMessage(hToolbarlSubDlg, id, BM_SETCHECK, check, 0);
|
::SendDlgItemMessage(hToolbarlSubDlg, id, BM_SETCHECK, check ? BST_CHECKED : BST_UNCHECKED, 0);
|
||||||
};
|
};
|
||||||
|
|
||||||
checkOrUncheckBtn(IDC_RADIO_SMALLICON, nppGUI._toolBarStatus == TB_SMALL ? BST_CHECKED : BST_UNCHECKED);
|
checkOrUncheckBtn(IDC_RADIO_SMALLICON, nppGUITbInfo._tbIconSet == TB_SMALL);
|
||||||
checkOrUncheckBtn(IDC_RADIO_BIGICON, nppGUI._toolBarStatus == TB_LARGE ? BST_CHECKED : BST_UNCHECKED);
|
checkOrUncheckBtn(IDC_RADIO_BIGICON, nppGUITbInfo._tbIconSet == TB_LARGE);
|
||||||
checkOrUncheckBtn(IDC_RADIO_SMALLICON2, nppGUI._toolBarStatus == TB_SMALL2 ? BST_CHECKED : BST_UNCHECKED);
|
checkOrUncheckBtn(IDC_RADIO_SMALLICON2, nppGUITbInfo._tbIconSet == TB_SMALL2);
|
||||||
checkOrUncheckBtn(IDC_RADIO_BIGICON2, nppGUI._toolBarStatus == TB_LARGE2 ? BST_CHECKED : BST_UNCHECKED);
|
checkOrUncheckBtn(IDC_RADIO_BIGICON2, nppGUITbInfo._tbIconSet == TB_LARGE2);
|
||||||
checkOrUncheckBtn(IDC_RADIO_STANDARD, nppGUI._toolBarStatus == TB_STANDARD ? BST_CHECKED : BST_UNCHECKED);
|
checkOrUncheckBtn(IDC_RADIO_STANDARD, nppGUITbInfo._tbIconSet == TB_STANDARD);
|
||||||
|
|
||||||
checkOrUncheckBtn(IDC_RADIO_RED, nppGUITbInfo._tbColor == NppDarkMode::FluentColor::red ? BST_CHECKED : BST_UNCHECKED);
|
checkOrUncheckBtn(IDC_RADIO_RED, nppGUITbInfo._tbColor == FluentColor::red);
|
||||||
checkOrUncheckBtn(IDC_RADIO_GREEN, nppGUITbInfo._tbColor == NppDarkMode::FluentColor::green ? BST_CHECKED : BST_UNCHECKED);
|
checkOrUncheckBtn(IDC_RADIO_GREEN, nppGUITbInfo._tbColor == FluentColor::green);
|
||||||
checkOrUncheckBtn(IDC_RADIO_BLUE, nppGUITbInfo._tbColor == NppDarkMode::FluentColor::blue ? BST_CHECKED : BST_UNCHECKED);
|
checkOrUncheckBtn(IDC_RADIO_BLUE, nppGUITbInfo._tbColor == FluentColor::blue);
|
||||||
checkOrUncheckBtn(IDC_RADIO_PURPLE, nppGUITbInfo._tbColor == NppDarkMode::FluentColor::purple ? BST_CHECKED : BST_UNCHECKED);
|
checkOrUncheckBtn(IDC_RADIO_PURPLE, nppGUITbInfo._tbColor == FluentColor::purple);
|
||||||
checkOrUncheckBtn(IDC_RADIO_CYAN, nppGUITbInfo._tbColor == NppDarkMode::FluentColor::cyan ? BST_CHECKED : BST_UNCHECKED);
|
checkOrUncheckBtn(IDC_RADIO_CYAN, nppGUITbInfo._tbColor == FluentColor::cyan);
|
||||||
checkOrUncheckBtn(IDC_RADIO_OLIVE, nppGUITbInfo._tbColor == NppDarkMode::FluentColor::olive ? BST_CHECKED : BST_UNCHECKED);
|
checkOrUncheckBtn(IDC_RADIO_OLIVE, nppGUITbInfo._tbColor == FluentColor::olive);
|
||||||
checkOrUncheckBtn(IDC_RADIO_YELLOW, nppGUITbInfo._tbColor == NppDarkMode::FluentColor::yellow ? BST_CHECKED : BST_UNCHECKED);
|
checkOrUncheckBtn(IDC_RADIO_YELLOW, nppGUITbInfo._tbColor == FluentColor::yellow);
|
||||||
checkOrUncheckBtn(IDC_RADIO_ACCENTCOLOR, nppGUITbInfo._tbColor == NppDarkMode::FluentColor::accent ? BST_CHECKED : BST_UNCHECKED);
|
checkOrUncheckBtn(IDC_RADIO_ACCENTCOLOR, nppGUITbInfo._tbColor == FluentColor::accent);
|
||||||
checkOrUncheckBtn(IDC_RADIO_CUSTOMCOLOR, nppGUITbInfo._tbColor == NppDarkMode::FluentColor::custom ? BST_CHECKED : BST_UNCHECKED);
|
checkOrUncheckBtn(IDC_RADIO_CUSTOMCOLOR, nppGUITbInfo._tbColor == FluentColor::custom);
|
||||||
checkOrUncheckBtn(IDC_RADIO_DEFAULTCOLOR, nppGUITbInfo._tbColor == NppDarkMode::FluentColor::defaultColor ? BST_CHECKED : BST_UNCHECKED);
|
checkOrUncheckBtn(IDC_RADIO_DEFAULTCOLOR, nppGUITbInfo._tbColor == FluentColor::defaultColor);
|
||||||
|
|
||||||
checkOrUncheckBtn(IDC_RADIO_COMPLETE, nppGUITbInfo._tbUseMono ? BST_CHECKED : BST_UNCHECKED);
|
checkOrUncheckBtn(IDC_RADIO_COMPLETE, nppGUITbInfo._tbUseMono);
|
||||||
checkOrUncheckBtn(IDC_RADIO_PARTIAL, nppGUITbInfo._tbUseMono ? BST_UNCHECKED : BST_CHECKED);
|
checkOrUncheckBtn(IDC_RADIO_PARTIAL, !nppGUITbInfo._tbUseMono);
|
||||||
|
|
||||||
::SendMessage(hToolbarlSubDlg, NPPM_INTERNAL_CHANGETOOLBARCOLORABLESTATE, 0, 0);
|
::SendMessage(hToolbarlSubDlg, NPPM_INTERNAL_CHANGETOOLBARCOLORABLESTATE, static_cast<WPARAM>(true), 0);
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
@ -752,7 +754,6 @@ intptr_t CALLBACK ToolbarSubDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM
|
|||||||
{
|
{
|
||||||
case WM_INITDIALOG:
|
case WM_INITDIALOG:
|
||||||
{
|
{
|
||||||
toolBarStatusType toolbarStatus = nppGUI._toolBarStatus;
|
|
||||||
auto& nppGUITbInfo = nppGUI._tbIconInfo;
|
auto& nppGUITbInfo = nppGUI._tbIconInfo;
|
||||||
|
|
||||||
::SendDlgItemMessage(_hSelf, IDC_CHECK_HIDE, BM_SETCHECK, nppGUI._toolbarShow ? BST_UNCHECKED : BST_CHECKED, 0);
|
::SendDlgItemMessage(_hSelf, IDC_CHECK_HIDE, BM_SETCHECK, nppGUI._toolbarShow ? BST_UNCHECKED : BST_CHECKED, 0);
|
||||||
@ -783,34 +784,34 @@ intptr_t CALLBACK ToolbarSubDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM
|
|||||||
ID2Check = 0;
|
ID2Check = 0;
|
||||||
switch (nppGUITbInfo._tbColor)
|
switch (nppGUITbInfo._tbColor)
|
||||||
{
|
{
|
||||||
case NppDarkMode::FluentColor::custom:
|
case FluentColor::custom:
|
||||||
ID2Check = IDC_RADIO_CUSTOMCOLOR;
|
ID2Check = IDC_RADIO_CUSTOMCOLOR;
|
||||||
break;
|
break;
|
||||||
case NppDarkMode::FluentColor::accent:
|
case FluentColor::accent:
|
||||||
ID2Check = IDC_RADIO_ACCENTCOLOR;
|
ID2Check = IDC_RADIO_ACCENTCOLOR;
|
||||||
break;
|
break;
|
||||||
case NppDarkMode::FluentColor::red:
|
case FluentColor::red:
|
||||||
ID2Check = IDC_RADIO_RED;
|
ID2Check = IDC_RADIO_RED;
|
||||||
break;
|
break;
|
||||||
case NppDarkMode::FluentColor::green:
|
case FluentColor::green:
|
||||||
ID2Check = IDC_RADIO_GREEN;
|
ID2Check = IDC_RADIO_GREEN;
|
||||||
break;
|
break;
|
||||||
case NppDarkMode::FluentColor::blue:
|
case FluentColor::blue:
|
||||||
ID2Check = IDC_RADIO_BLUE;
|
ID2Check = IDC_RADIO_BLUE;
|
||||||
break;
|
break;
|
||||||
case NppDarkMode::FluentColor::purple:
|
case FluentColor::purple:
|
||||||
ID2Check = IDC_RADIO_PURPLE;
|
ID2Check = IDC_RADIO_PURPLE;
|
||||||
break;
|
break;
|
||||||
case NppDarkMode::FluentColor::cyan:
|
case FluentColor::cyan:
|
||||||
ID2Check = IDC_RADIO_CYAN;
|
ID2Check = IDC_RADIO_CYAN;
|
||||||
break;
|
break;
|
||||||
case NppDarkMode::FluentColor::olive:
|
case FluentColor::olive:
|
||||||
ID2Check = IDC_RADIO_OLIVE;
|
ID2Check = IDC_RADIO_OLIVE;
|
||||||
break;
|
break;
|
||||||
case NppDarkMode::FluentColor::yellow:
|
case FluentColor::yellow:
|
||||||
ID2Check = IDC_RADIO_YELLOW;
|
ID2Check = IDC_RADIO_YELLOW;
|
||||||
break;
|
break;
|
||||||
case NppDarkMode::FluentColor::defaultColor:
|
case FluentColor::defaultColor:
|
||||||
default:
|
default:
|
||||||
ID2Check = IDC_RADIO_DEFAULTCOLOR;
|
ID2Check = IDC_RADIO_DEFAULTCOLOR;
|
||||||
}
|
}
|
||||||
@ -827,7 +828,7 @@ intptr_t CALLBACK ToolbarSubDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM
|
|||||||
_pIconColorPicker->display();
|
_pIconColorPicker->display();
|
||||||
_pIconColorPicker->setColour(nppGUI._tbIconInfo._tbCustomColor);
|
_pIconColorPicker->setColour(nppGUI._tbIconInfo._tbCustomColor);
|
||||||
|
|
||||||
if (toolbarStatus == TB_STANDARD)
|
if (nppGUITbInfo._tbIconSet == TB_STANDARD)
|
||||||
{
|
{
|
||||||
::SendMessage(_hSelf, NPPM_INTERNAL_CHANGETOOLBARCOLORABLESTATE, 0, 0);
|
::SendMessage(_hSelf, NPPM_INTERNAL_CHANGETOOLBARCOLORABLESTATE, 0, 0);
|
||||||
}
|
}
|
||||||
@ -839,10 +840,9 @@ intptr_t CALLBACK ToolbarSubDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM
|
|||||||
{
|
{
|
||||||
bool enableColor = !isCheckedOrNot(IDC_RADIO_STANDARD);
|
bool enableColor = !isCheckedOrNot(IDC_RADIO_STANDARD);
|
||||||
|
|
||||||
::EnableWindow(::GetDlgItem(_hSelf, IDC_TOOLBAR_GB_COLORIZATION), enableColor);
|
|
||||||
::EnableWindow(::GetDlgItem(_hSelf, IDC_RADIO_COMPLETE), enableColor);
|
::EnableWindow(::GetDlgItem(_hSelf, IDC_RADIO_COMPLETE), enableColor);
|
||||||
::EnableWindow(::GetDlgItem(_hSelf, IDC_RADIO_PARTIAL), enableColor);
|
::EnableWindow(::GetDlgItem(_hSelf, IDC_RADIO_PARTIAL), enableColor);
|
||||||
::EnableWindow(::GetDlgItem(_hSelf, IDC_TOOLBAR_GB_COLORCHOICE), enableColor);
|
|
||||||
::EnableWindow(::GetDlgItem(_hSelf, IDC_RADIO_RED), enableColor);
|
::EnableWindow(::GetDlgItem(_hSelf, IDC_RADIO_RED), enableColor);
|
||||||
::EnableWindow(::GetDlgItem(_hSelf, IDC_RADIO_GREEN), enableColor);
|
::EnableWindow(::GetDlgItem(_hSelf, IDC_RADIO_GREEN), enableColor);
|
||||||
::EnableWindow(::GetDlgItem(_hSelf, IDC_RADIO_BLUE), enableColor);
|
::EnableWindow(::GetDlgItem(_hSelf, IDC_RADIO_BLUE), enableColor);
|
||||||
@ -856,11 +856,29 @@ intptr_t CALLBACK ToolbarSubDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM
|
|||||||
|
|
||||||
::EnableWindow(_pIconColorPicker->getHSelf(), enableColor);
|
::EnableWindow(_pIconColorPicker->getHSelf(), enableColor);
|
||||||
|
|
||||||
|
const bool usePrevDarkMode = static_cast<bool>(wParam) ? !NppDarkMode::isEnabled() : NppDarkMode::isEnabled();
|
||||||
|
|
||||||
if (enableColor)
|
if (enableColor)
|
||||||
{
|
{
|
||||||
_pIconColorPicker->setColour(nppGUI._tbIconInfo._tbCustomColor);
|
const auto& tbIconInfo = NppDarkMode::getToolbarIconInfo(usePrevDarkMode);
|
||||||
_pIconColorPicker->redraw();
|
_pIconColorPicker->setColour(tbIconInfo._tbCustomColor);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
COLORREF disabledColor = usePrevDarkMode ? NppDarkMode::getDlgBackgroundColor() : ::GetSysColor(COLOR_3DFACE);
|
||||||
|
_pIconColorPicker->setColour(disabledColor);
|
||||||
|
}
|
||||||
|
|
||||||
|
_pIconColorPicker->redraw();
|
||||||
|
|
||||||
|
if (NppDarkMode::isEnabled())
|
||||||
|
{
|
||||||
|
::EnableWindow(::GetDlgItem(_hSelf, IDC_TOOLBAR_GB_COLORCHOICE), enableColor);
|
||||||
|
::EnableWindow(::GetDlgItem(_hSelf, IDC_TOOLBAR_GB_COLORIZATION), enableColor);
|
||||||
|
redrawDlgItem(IDC_TOOLBAR_GB_COLORCHOICE);
|
||||||
|
redrawDlgItem(IDC_TOOLBAR_GB_COLORIZATION);
|
||||||
|
}
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -943,7 +961,7 @@ intptr_t CALLBACK ToolbarSubDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM
|
|||||||
|
|
||||||
case IDC_RADIO_CUSTOMCOLOR:
|
case IDC_RADIO_CUSTOMCOLOR:
|
||||||
{
|
{
|
||||||
NppDarkMode::FluentColor c = NppDarkMode::FluentColor::custom;
|
FluentColor c = FluentColor::custom;
|
||||||
NppDarkMode::setToolbarFluentColor(c);
|
NppDarkMode::setToolbarFluentColor(c);
|
||||||
nppGUI._tbIconInfo._tbColor = c;
|
nppGUI._tbIconInfo._tbColor = c;
|
||||||
UINT msg = getToolbarIconSetMsg(nullptr);
|
UINT msg = getToolbarIconSetMsg(nullptr);
|
||||||
@ -953,7 +971,7 @@ intptr_t CALLBACK ToolbarSubDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM
|
|||||||
|
|
||||||
case IDC_RADIO_ACCENTCOLOR:
|
case IDC_RADIO_ACCENTCOLOR:
|
||||||
{
|
{
|
||||||
NppDarkMode::FluentColor c = NppDarkMode::FluentColor::accent;
|
FluentColor c = FluentColor::accent;
|
||||||
NppDarkMode::setToolbarFluentColor(c);
|
NppDarkMode::setToolbarFluentColor(c);
|
||||||
nppGUI._tbIconInfo._tbColor = c;
|
nppGUI._tbIconInfo._tbColor = c;
|
||||||
UINT msg = getToolbarIconSetMsg(nullptr);
|
UINT msg = getToolbarIconSetMsg(nullptr);
|
||||||
@ -963,7 +981,7 @@ intptr_t CALLBACK ToolbarSubDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM
|
|||||||
|
|
||||||
case IDC_RADIO_RED:
|
case IDC_RADIO_RED:
|
||||||
{
|
{
|
||||||
NppDarkMode::FluentColor c = NppDarkMode::FluentColor::red;
|
FluentColor c = FluentColor::red;
|
||||||
NppDarkMode::setToolbarFluentColor(c);
|
NppDarkMode::setToolbarFluentColor(c);
|
||||||
nppGUI._tbIconInfo._tbColor = c;
|
nppGUI._tbIconInfo._tbColor = c;
|
||||||
UINT msg = getToolbarIconSetMsg(nullptr);
|
UINT msg = getToolbarIconSetMsg(nullptr);
|
||||||
@ -973,7 +991,7 @@ intptr_t CALLBACK ToolbarSubDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM
|
|||||||
|
|
||||||
case IDC_RADIO_GREEN:
|
case IDC_RADIO_GREEN:
|
||||||
{
|
{
|
||||||
NppDarkMode::FluentColor c = NppDarkMode::FluentColor::green;
|
FluentColor c = FluentColor::green;
|
||||||
NppDarkMode::setToolbarFluentColor(c);
|
NppDarkMode::setToolbarFluentColor(c);
|
||||||
nppGUI._tbIconInfo._tbColor = c;
|
nppGUI._tbIconInfo._tbColor = c;
|
||||||
UINT msg = getToolbarIconSetMsg(nullptr);
|
UINT msg = getToolbarIconSetMsg(nullptr);
|
||||||
@ -983,7 +1001,7 @@ intptr_t CALLBACK ToolbarSubDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM
|
|||||||
|
|
||||||
case IDC_RADIO_BLUE:
|
case IDC_RADIO_BLUE:
|
||||||
{
|
{
|
||||||
NppDarkMode::FluentColor c = NppDarkMode::FluentColor::blue;
|
FluentColor c = FluentColor::blue;
|
||||||
NppDarkMode::setToolbarFluentColor(c);
|
NppDarkMode::setToolbarFluentColor(c);
|
||||||
nppGUI._tbIconInfo._tbColor = c;
|
nppGUI._tbIconInfo._tbColor = c;
|
||||||
UINT msg = getToolbarIconSetMsg(nullptr);
|
UINT msg = getToolbarIconSetMsg(nullptr);
|
||||||
@ -993,7 +1011,7 @@ intptr_t CALLBACK ToolbarSubDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM
|
|||||||
|
|
||||||
case IDC_RADIO_PURPLE:
|
case IDC_RADIO_PURPLE:
|
||||||
{
|
{
|
||||||
NppDarkMode::FluentColor c = NppDarkMode::FluentColor::purple;
|
FluentColor c = FluentColor::purple;
|
||||||
NppDarkMode::setToolbarFluentColor(c);
|
NppDarkMode::setToolbarFluentColor(c);
|
||||||
nppGUI._tbIconInfo._tbColor = c;
|
nppGUI._tbIconInfo._tbColor = c;
|
||||||
UINT msg = getToolbarIconSetMsg(nullptr);
|
UINT msg = getToolbarIconSetMsg(nullptr);
|
||||||
@ -1003,7 +1021,7 @@ intptr_t CALLBACK ToolbarSubDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM
|
|||||||
|
|
||||||
case IDC_RADIO_CYAN:
|
case IDC_RADIO_CYAN:
|
||||||
{
|
{
|
||||||
NppDarkMode::FluentColor c = NppDarkMode::FluentColor::cyan;
|
FluentColor c = FluentColor::cyan;
|
||||||
NppDarkMode::setToolbarFluentColor(c);
|
NppDarkMode::setToolbarFluentColor(c);
|
||||||
nppGUI._tbIconInfo._tbColor = c;
|
nppGUI._tbIconInfo._tbColor = c;
|
||||||
UINT msg = getToolbarIconSetMsg(nullptr);
|
UINT msg = getToolbarIconSetMsg(nullptr);
|
||||||
@ -1013,7 +1031,7 @@ intptr_t CALLBACK ToolbarSubDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM
|
|||||||
|
|
||||||
case IDC_RADIO_OLIVE:
|
case IDC_RADIO_OLIVE:
|
||||||
{
|
{
|
||||||
NppDarkMode::FluentColor c = NppDarkMode::FluentColor::olive;
|
FluentColor c = FluentColor::olive;
|
||||||
NppDarkMode::setToolbarFluentColor(c);
|
NppDarkMode::setToolbarFluentColor(c);
|
||||||
nppGUI._tbIconInfo._tbColor = c;
|
nppGUI._tbIconInfo._tbColor = c;
|
||||||
UINT msg = getToolbarIconSetMsg(nullptr);
|
UINT msg = getToolbarIconSetMsg(nullptr);
|
||||||
@ -1023,7 +1041,7 @@ intptr_t CALLBACK ToolbarSubDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM
|
|||||||
|
|
||||||
case IDC_RADIO_YELLOW:
|
case IDC_RADIO_YELLOW:
|
||||||
{
|
{
|
||||||
NppDarkMode::FluentColor c = NppDarkMode::FluentColor::yellow;
|
FluentColor c = FluentColor::yellow;
|
||||||
NppDarkMode::setToolbarFluentColor(c);
|
NppDarkMode::setToolbarFluentColor(c);
|
||||||
nppGUI._tbIconInfo._tbColor = c;
|
nppGUI._tbIconInfo._tbColor = c;
|
||||||
UINT msg = getToolbarIconSetMsg(nullptr);
|
UINT msg = getToolbarIconSetMsg(nullptr);
|
||||||
@ -1033,10 +1051,9 @@ intptr_t CALLBACK ToolbarSubDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM
|
|||||||
|
|
||||||
case IDC_RADIO_DEFAULTCOLOR:
|
case IDC_RADIO_DEFAULTCOLOR:
|
||||||
{
|
{
|
||||||
NppDarkMode::FluentColor c = NppDarkMode::FluentColor::defaultColor;
|
FluentColor c = FluentColor::defaultColor;
|
||||||
NppDarkMode::setToolbarFluentColor(c);
|
NppDarkMode::setToolbarFluentColor(c);
|
||||||
nppGUI._tbIconInfo._tbColor = c;
|
nppGUI._tbIconInfo._tbColor = c;
|
||||||
|
|
||||||
UINT msg = getToolbarIconSetMsg(nullptr);
|
UINT msg = getToolbarIconSetMsg(nullptr);
|
||||||
::SendMessage(::GetParent(_hParent), msg, TRUE, 0);
|
::SendMessage(::GetParent(_hParent), msg, TRUE, 0);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
@ -1083,7 +1100,7 @@ intptr_t CALLBACK ToolbarSubDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM
|
|||||||
setChecked(IDC_RADIO_ACCENTCOLOR, false);
|
setChecked(IDC_RADIO_ACCENTCOLOR, false);
|
||||||
setChecked(IDC_RADIO_DEFAULTCOLOR, false);
|
setChecked(IDC_RADIO_DEFAULTCOLOR, false);
|
||||||
|
|
||||||
NppDarkMode::FluentColor colorType = NppDarkMode::FluentColor::custom;
|
FluentColor colorType = FluentColor::custom;
|
||||||
NppDarkMode::setToolbarFluentColor(colorType);
|
NppDarkMode::setToolbarFluentColor(colorType);
|
||||||
nppGUI._tbIconInfo._tbColor = colorType;
|
nppGUI._tbIconInfo._tbColor = colorType;
|
||||||
UINT msg = getToolbarIconSetMsg(nullptr);
|
UINT msg = getToolbarIconSetMsg(nullptr);
|
||||||
@ -1096,7 +1113,7 @@ intptr_t CALLBACK ToolbarSubDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM
|
|||||||
{
|
{
|
||||||
if (reinterpret_cast<HWND>(lParam) == _pIconColorPicker->getHSelf())
|
if (reinterpret_cast<HWND>(lParam) == _pIconColorPicker->getHSelf())
|
||||||
{
|
{
|
||||||
NppDarkMode::FluentColor colorType = NppDarkMode::FluentColor::custom;
|
FluentColor colorType = FluentColor::custom;
|
||||||
NppDarkMode::setToolbarFluentColor(colorType);
|
NppDarkMode::setToolbarFluentColor(colorType);
|
||||||
nppGUI._tbIconInfo._tbColor = colorType;
|
nppGUI._tbIconInfo._tbColor = colorType;
|
||||||
|
|
||||||
|
@ -291,7 +291,7 @@ bool TreeView::setImageList(const std::vector<int>& imageIds, int imgSize)
|
|||||||
int dpiImgSize = DPIManagerV2::scale(imgSize, _hParent);
|
int dpiImgSize = DPIManagerV2::scale(imgSize, _hParent);
|
||||||
|
|
||||||
NppParameters& nppParam = NppParameters::getInstance();
|
NppParameters& nppParam = NppParameters::getInstance();
|
||||||
const bool useStdIcons = nppParam.getNppGUI()._toolBarStatus == TB_STANDARD;
|
const bool useStdIcons = nppParam.getNppGUI()._tbIconInfo._tbIconSet == TB_STANDARD;
|
||||||
|
|
||||||
if (_hImaLst != nullptr)
|
if (_hImaLst != nullptr)
|
||||||
{
|
{
|
||||||
@ -334,7 +334,7 @@ bool TreeView::setImageList(const std::vector<int>& imageIds, int imgSize)
|
|||||||
std::vector<int> TreeView::getImageIds(std::vector<int> stdIds, std::vector<int> darkIds, std::vector<int> lightIds)
|
std::vector<int> TreeView::getImageIds(std::vector<int> stdIds, std::vector<int> darkIds, std::vector<int> lightIds)
|
||||||
{
|
{
|
||||||
NppParameters& nppParam = NppParameters::getInstance();
|
NppParameters& nppParam = NppParameters::getInstance();
|
||||||
const bool useStdIcons = nppParam.getNppGUI()._toolBarStatus == TB_STANDARD;
|
const bool useStdIcons = nppParam.getNppGUI()._tbIconInfo._tbIconSet == TB_STANDARD;
|
||||||
if (useStdIcons)
|
if (useStdIcons)
|
||||||
{
|
{
|
||||||
return stdIds;
|
return stdIds;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user