Make "Show close/pin button on each inactive tab" optional

Fix #15912, fix #16035, close #16059
This commit is contained in:
Don Ho 2025-01-13 07:06:35 +01:00
parent 26c3008525
commit 8fde4bd8aa
10 changed files with 205 additions and 103 deletions

View File

@ -926,6 +926,7 @@ bool Notepad_plus::saveGUIParams()
(TabBarPlus::isDbClk2Close() ? TAB_DBCLK2CLOSE : 0) | \
(TabBarPlus::isVertical() ? TAB_VERTICAL : 0) | \
(TabBarPlus::isMultiLine() ? TAB_MULTILINE : 0) |\
(nppGUI._tabStatus & TAB_INACTIVETABSHOWBUTTON) | \
(nppGUI._tabStatus & TAB_HIDE) | \
(nppGUI._tabStatus & TAB_QUITONEMPTY) | \
(nppGUI._tabStatus & TAB_ALTICONS);

View File

@ -327,24 +327,28 @@ IDR_FILEBROWSER BITMAP "icons/standard/toolbar/fileBrowser.bm
IDR_FILEMONITORING BITMAP "icons/standard/toolbar/monitoring.bmp"
IDR_CLOSETAB ICON "icons/standard/tabbar/closeTabButton.ico"
IDR_CLOSETAB_INACT ICON "icons/standard/tabbar/empty.ico"
IDR_CLOSETAB_INACT ICON "icons/standard/tabbar/closeTabButton_hoverOnTab.ico"
IDR_CLOSETAB_INACT_EMPTY ICON "icons/standard/tabbar/empty.ico"
IDR_CLOSETAB_HOVERIN ICON "icons/standard/tabbar/closeTabButton_hoverIn.ico"
IDR_CLOSETAB_HOVERONTAB ICON "icons/standard/tabbar/closeTabButton_hoverOnTab.ico"
IDR_CLOSETAB_PUSH ICON "icons/standard/tabbar/closeTabButton_push.ico"
IDR_CLOSETAB_DM ICON "icons/dark/tabbar/closeTabButton.ico"
IDR_CLOSETAB_INACT_DM ICON "icons/dark/tabbar/empty.ico"
IDR_CLOSETAB_INACT_DM ICON "icons/dark/tabbar/closeTabButton.ico"
IDR_CLOSETAB_INACT_EMPTY_DM ICON "icons/dark/tabbar/empty.ico"
IDR_CLOSETAB_HOVERIN_DM ICON "icons/dark/tabbar/closeTabButton_hoverIn.ico"
IDR_CLOSETAB_HOVERONTAB_DM ICON "icons/dark/tabbar/closeTabButton_hoverOnTab.ico"
IDR_CLOSETAB_PUSH_DM ICON "icons/dark/tabbar/closeTabButton_push.ico"
IDR_PINTAB ICON "icons/standard/tabbar/pinTabButton.ico"
IDR_PINTAB_INACT ICON "icons/standard/tabbar/empty.ico"
IDR_PINTAB_INACT ICON "icons/standard/tabbar/pinTabButton.ico"
IDR_PINTAB_INACT_EMPTY ICON "icons/standard/tabbar/empty.ico"
IDR_PINTAB_HOVERIN ICON "icons/standard/tabbar/pinTabButton_pinned.ico"
IDR_PINTAB_HOVERONTAB ICON "icons/standard/tabbar/pinTabButton.ico"
IDR_PINTAB_PINNED ICON "icons/standard/tabbar/pinTabButton_pinned.ico"
IDR_PINTAB_PINNEDHOVERIN ICON "icons/standard/tabbar/pinTabButton.ico"
IDR_PINTAB_DM ICON "icons/dark/tabbar/pinTabButton.ico"
IDR_PINTAB_INACT_DM ICON "icons/dark/tabbar/empty.ico"
IDR_PINTAB_INACT_DM ICON "icons/dark/tabbar/pinTabButton.ico"
IDR_PINTAB_INACT_EMPTY_DM ICON "icons/dark/tabbar/empty.ico"
IDR_PINTAB_HOVERIN_DM ICON "icons/dark/tabbar/pinTabButton_pinned.ico"
IDR_PINTAB_HOVERONTAB_DM ICON "icons/dark/tabbar/pinTabButton.ico"
IDR_PINTAB_PINNED_DM ICON "icons/dark/tabbar/pinTabButton_pinned.ico"

View File

@ -4088,6 +4088,19 @@ LRESULT Notepad_plus::process(HWND hwnd, UINT message, WPARAM wParam, LPARAM lPa
return TRUE;
}
case NPPM_INTERNAL_DRAWINACTIVETABBARBUTTON:
{
::SendMessage(_mainDocTab.getHSelf(), NPPM_INTERNAL_REFRESHDARKMODE, 0, 0);
::SendMessage(_subDocTab.getHSelf(), NPPM_INTERNAL_REFRESHDARKMODE, 0, 0);
::SendMessage(_pPublicInterface->getHSelf(), WM_SIZE, 0, 0);
_mainDocTab.refresh();
_subDocTab.refresh();
return TRUE;
}
default:
{
if (message == WDN_NOTIFY)

View File

@ -4932,6 +4932,17 @@ void NppParameters::feedGUIParameters(TiXmlNode *node)
_nppGUI._tabStatus |= TAB_PINBUTTON;
}
val = element->Attribute(L"buttonsOninactiveTabs");
if (val)
{
if (!lstrcmp(val, L"yes"))
_nppGUI._tabStatus |= TAB_INACTIVETABSHOWBUTTON;
else if (!lstrcmp(val, L"no"))
_nppGUI._tabStatus |= 0;
else
isFailed = true;
}
val = element->Attribute(L"doubleClick2Close");
if (val)
{
@ -7282,6 +7293,9 @@ void NppParameters::createXmlTreeFromGUIParams()
pStr = (_nppGUI._tabStatus & TAB_PINBUTTON) ? L"yes" : L"no";
GUIConfigElement->SetAttribute(L"pinButton", pStr);
pStr = (_nppGUI._tabStatus & TAB_INACTIVETABSHOWBUTTON) ? L"yes" : L"no";
GUIConfigElement->SetAttribute(L"buttonsOninactiveTabs", pStr);
pStr = (_nppGUI._tabStatus & TAB_DBCLK2CLOSE) ? L"yes" : L"no";
GUIConfigElement->SetAttribute(L"doubleClick2Close", pStr);

View File

@ -64,18 +64,19 @@ const int UDD_DOCKED = 2; // 0000 0010
// 2 : 0000 0010 hide & docked
// 3 : 0000 0011 show & docked
const int TAB_DRAWTOPBAR = 1; //0000 0000 0001
const int TAB_DRAWINACTIVETAB = 2; //0000 0000 0010
const int TAB_DRAGNDROP = 4; //0000 0000 0100
const int TAB_REDUCE = 8; //0000 0000 1000
const int TAB_CLOSEBUTTON = 16; //0000 0001 0000
const int TAB_DBCLK2CLOSE = 32; //0000 0010 0000
const int TAB_VERTICAL = 64; //0000 0100 0000
const int TAB_MULTILINE = 128; //0000 1000 0000
const int TAB_HIDE = 256; //0001 0000 0000
const int TAB_QUITONEMPTY = 512; //0010 0000 0000
const int TAB_ALTICONS = 1024; //0100 0000 0000
const int TAB_PINBUTTON = 2048; //1000 0000 0000
const int TAB_DRAWTOPBAR = 1; // 0000 0000 0000 0001
const int TAB_DRAWINACTIVETAB = 2; // 0000 0000 0000 0010
const int TAB_DRAGNDROP = 4; // 0000 0000 0000 0100
const int TAB_REDUCE = 8; // 0000 0000 0000 1000
const int TAB_CLOSEBUTTON = 16; // 0000 0000 0001 0000
const int TAB_DBCLK2CLOSE = 32; // 0000 0000 0010 0000
const int TAB_VERTICAL = 64; // 0000 0000 0100 0000
const int TAB_MULTILINE = 128; // 0000 0000 1000 0000
const int TAB_HIDE = 256; // 0000 0001 0000 0000
const int TAB_QUITONEMPTY = 512; // 0000 0010 0000 0000
const int TAB_ALTICONS = 1024; // 0000 0100 0000 0000
const int TAB_PINBUTTON = 2048; // 0000 1000 0000 0000
const int TAB_INACTIVETABSHOWBUTTON = 4096; // 0001 0000 0000 0000
const bool activeText = true;
const bool activeNumeric = false;

View File

@ -38,33 +38,38 @@ IDD_PREFERENCE_SUB_GENRAL DIALOGEX 115, 10, 460, 205
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
GROUPBOX "Localization",IDC_LOCALIZATION_GB_STATIC,27,0,186,36,BS_CENTER
COMBOBOX IDC_COMBO_LOCALIZATION,60,14,125,80,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
GROUPBOX "Status Bar",IDC_STATUSBAR_GB_STATIC,27,39,186,31,BS_CENTER
CONTROL "Hide",IDC_CHECK_HIDESTATUSBAR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,33,52,174,10
GROUPBOX "Toolbar",IDC_TOOLBAR_GB_STATIC,27,75,186,91,BS_CENTER
CONTROL "Hide",IDC_CHECK_HIDE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,33,84,100,10
CONTROL "Fluent UI: small",IDC_RADIO_SMALLICON,"Button",BS_AUTORADIOBUTTON,33,100,174,10
CONTROL "Fluent UI: large",IDC_RADIO_BIGICON,"Button",BS_AUTORADIOBUTTON,33,113,174,10
CONTROL "Filled Fluent UI: small",IDC_RADIO_SMALLICON2,"Button",BS_AUTORADIOBUTTON,33,126,174,10
CONTROL "Filled Fluent UI: large",IDC_RADIO_BIGICON2,"Button",BS_AUTORADIOBUTTON,33,139,174,10
CONTROL "Standard icons: small",IDC_RADIO_STANDARD,"Button",BS_AUTORADIOBUTTON,33,152,174,10
GROUPBOX "Tab Bar",IDC_TABBAR_GB_STATIC,223,0,177,166,BS_CENTER
CONTROL "Hide",IDC_CHECK_TAB_HIDE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,229,8,100,10
CONTROL "Multi-line",IDC_CHECK_TAB_MULTILINE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,229,21,164,10
CONTROL "Vertical",IDC_CHECK_TAB_VERTICAL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,229,34,164,10
CONTROL "Reduce",IDC_CHECK_REDUCE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,229,47,164,10
CONTROL "Alternate icons",IDC_CHECK_TAB_ALTICONS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,229,60,164,10
CONTROL "Lock (no drag and drop)",IDC_CHECK_LOCK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,229,73,164,10
CONTROL "Change inactive tab color",IDC_CHECK_DRAWINACTIVE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,229,86,164,10
CONTROL "Draw a coloured bar on active tab",IDC_CHECK_ORANGE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,229,99,164,10
CONTROL "Show close button",IDC_CHECK_ENABLETABCLOSE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,229,112,164,10
CONTROL "Enable pin tab feature", IDC_CHECK_ENABLETABPIN,"Button", BS_AUTOCHECKBOX | WS_TABSTOP, 229, 125, 164, 10
CONTROL "Double click to close document",IDC_CHECK_DBCLICK2CLOSE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,229,138,164,10
CONTROL "Exit on close the last tab",IDC_CHECK_TAB_LAST_EXIT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,229,151,164,10
GROUPBOX "Menu",IDC_MENU_GB_STATIC,27,168,373,34,BS_CENTER
CONTROL "Hide menu bar (use Alt or F10 key to toggle)",IDC_CHECK_HIDEMENUBAR, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,33,176,218,10
CONTROL "Hide right shortcuts + ? ? from the menu bar (Need to restart Notepad++)",IDC_CHECK_HIDERIGHTSHORTCUTSOFMENUBAR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,33,189,350,10
GROUPBOX "Localization",IDC_LOCALIZATION_GB_STATIC,39,0,186,36,BS_CENTER
COMBOBOX IDC_COMBO_LOCALIZATION,72,14,125,80,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
GROUPBOX "Menu",IDC_MENU_GB_STATIC,39,39,186,34,BS_CENTER
CONTROL "Hide (use Alt or F10 key to toggle)",IDC_CHECK_HIDEMENUBAR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,45,47,174,10
CONTROL "Hide right shortcuts ▼ ✕",IDC_CHECK_HIDERIGHTSHORTCUTSOFMENUBAR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,45,60,174,10
GROUPBOX "Toolbar",IDC_TOOLBAR_GB_STATIC,39,75,186,91,BS_CENTER
CONTROL "Hide",IDC_CHECK_HIDE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,45,84,100,10
CONTROL "Fluent UI: small",IDC_RADIO_SMALLICON,"Button",BS_AUTORADIOBUTTON,45,100,174,10
CONTROL "Fluent UI: large",IDC_RADIO_BIGICON,"Button",BS_AUTORADIOBUTTON,45,113,174,10
CONTROL "Filled Fluent UI: small",IDC_RADIO_SMALLICON2,"Button",BS_AUTORADIOBUTTON,45,126,174,10
CONTROL "Filled Fluent UI: large",IDC_RADIO_BIGICON2,"Button",BS_AUTORADIOBUTTON,45,139,174,10
CONTROL "Standard icons: small",IDC_RADIO_STANDARD,"Button",BS_AUTORADIOBUTTON,45,152,174,10
GROUPBOX "Status Bar",IDC_STATUSBAR_GB_STATIC,39,169,186,26,BS_CENTER
CONTROL "Hide",IDC_CHECK_HIDESTATUSBAR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,45,179,174,10
GROUPBOX "Tab Bar",IDC_TABBAR_GB_STATIC,235,0,177,195,BS_CENTER
CONTROL "Hide",IDC_CHECK_TAB_HIDE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,241,15,100,10
CONTROL "Multi-line",IDC_CHECK_TAB_MULTILINE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,241,28,164,10
CONTROL "Vertical",IDC_CHECK_TAB_VERTICAL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,241,41,164,10
CONTROL "Reduce",IDC_CHECK_REDUCE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,241,54,164,10
CONTROL "Alternate icons",IDC_CHECK_TAB_ALTICONS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,241,67,164,10
CONTROL "Lock (no drag and drop)",IDC_CHECK_LOCK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,241,80,164,10
CONTROL "Change inactive tab color",IDC_CHECK_DRAWINACTIVE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,241,93,164,10
CONTROL "Draw a coloured bar on active tab",IDC_CHECK_ORANGE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,241,106,164,10
CONTROL "Show close button",IDC_CHECK_ENABLETABCLOSE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,241,119,164,10
CONTROL "Enable pin tab feature",IDC_CHECK_ENABLETABPIN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,241,132,164,10
CONTROL "Show buttons on inactive tabs",IDC_CHECK_INACTTABDRAWBUTTON,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,241,144,164,10
CONTROL "Double click to close document",IDC_CHECK_DBCLICK2CLOSE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,241,157,164,10
CONTROL "Exit on close the last tab",IDC_CHECK_TAB_LAST_EXIT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,241,170,164,10
END
IDD_PREFERENCE_SUB_EDITING DIALOGEX 115, 10, 460, 205

View File

@ -575,7 +575,7 @@ intptr_t CALLBACK GeneralSubDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM
{
case WM_INITDIALOG :
{
const NppGUI & nppGUI = nppParam.getNppGUI();
NppGUI & nppGUI = nppParam.getNppGUI();
toolBarStatusType tbStatus = nppGUI._toolBarStatus;
int tabBarStatus = nppGUI._tabStatus;
bool showTool = nppGUI._toolbarShow;
@ -609,8 +609,22 @@ intptr_t CALLBACK GeneralSubDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM
::SendDlgItemMessage(_hSelf, IDC_CHECK_LOCK, BM_SETCHECK, !(tabBarStatus & TAB_DRAGNDROP), 0);
::SendDlgItemMessage(_hSelf, IDC_CHECK_ORANGE, BM_SETCHECK, tabBarStatus & TAB_DRAWTOPBAR, 0);
::SendDlgItemMessage(_hSelf, IDC_CHECK_DRAWINACTIVE, BM_SETCHECK, tabBarStatus & TAB_DRAWINACTIVETAB, 0);
::SendDlgItemMessage(_hSelf, IDC_CHECK_ENABLETABCLOSE, BM_SETCHECK, tabBarStatus & TAB_CLOSEBUTTON, 0);
::SendDlgItemMessage(_hSelf, IDC_CHECK_ENABLETABPIN, BM_SETCHECK, tabBarStatus & TAB_PINBUTTON, 0);
bool showCloseButton = tabBarStatus & TAB_CLOSEBUTTON;
bool enablePinButton = tabBarStatus & TAB_PINBUTTON;
bool showButtonOnInactiveTabs = tabBarStatus & TAB_INACTIVETABSHOWBUTTON;
::SendDlgItemMessage(_hSelf, IDC_CHECK_ENABLETABCLOSE, BM_SETCHECK, showCloseButton, 0);
::SendDlgItemMessage(_hSelf, IDC_CHECK_ENABLETABPIN, BM_SETCHECK, enablePinButton, 0);
::SendDlgItemMessage(_hSelf, IDC_CHECK_INACTTABDRAWBUTTON, BM_SETCHECK, showButtonOnInactiveTabs, 0);
if (!(showCloseButton || enablePinButton))
{
nppGUI._tabStatus &= ~TAB_INACTIVETABSHOWBUTTON;
::SendDlgItemMessage(_hSelf, IDC_CHECK_INACTTABDRAWBUTTON, BM_SETCHECK, FALSE, 0);
::EnableWindow(::GetDlgItem(_hSelf, IDC_CHECK_INACTTABDRAWBUTTON), FALSE);
}
::SendDlgItemMessage(_hSelf, IDC_CHECK_DBCLICK2CLOSE, BM_SETCHECK, tabBarStatus & TAB_DBCLK2CLOSE, 0);
::SendDlgItemMessage(_hSelf, IDC_CHECK_TAB_VERTICAL, BM_SETCHECK, tabBarStatus & TAB_VERTICAL, 0);
::SendDlgItemMessage(_hSelf, IDC_CHECK_TAB_MULTILINE, BM_SETCHECK, tabBarStatus & TAB_MULTILINE, 0);
@ -754,12 +768,35 @@ intptr_t CALLBACK GeneralSubDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM
return TRUE;
case IDC_CHECK_ENABLETABCLOSE:
::SendMessage(::GetParent(_hParent), NPPM_INTERNAL_DRAWTABBARCLOSEBUTTON, 0, 0);
return TRUE;
case IDC_CHECK_ENABLETABPIN:
::SendMessage(::GetParent(_hParent), NPPM_INTERNAL_DRAWTABBARPINBUTTON, 0, 0);
{
::SendMessage(::GetParent(_hParent), wParam == IDC_CHECK_ENABLETABCLOSE ? NPPM_INTERNAL_DRAWTABBARCLOSEBUTTON : NPPM_INTERNAL_DRAWTABBARPINBUTTON, 0, 0);
bool showCloseButton = isCheckedOrNot(IDC_CHECK_ENABLETABCLOSE);
bool enablePinButton = isCheckedOrNot(IDC_CHECK_ENABLETABPIN);
if (!(showCloseButton || enablePinButton))
{
nppParam.getNppGUI()._tabStatus &= ~TAB_INACTIVETABSHOWBUTTON;
::SendDlgItemMessage(_hSelf, IDC_CHECK_INACTTABDRAWBUTTON, BM_SETCHECK, FALSE, 0);
}
::EnableWindow(::GetDlgItem(_hSelf, IDC_CHECK_INACTTABDRAWBUTTON), showCloseButton || enablePinButton);
return TRUE;
}
case IDC_CHECK_INACTTABDRAWBUTTON:
{
const bool isChecked = isCheckedOrNot(IDC_CHECK_INACTTABDRAWBUTTON);
NppGUI& nppgui = nppParam.getNppGUI();
if (isChecked)
nppgui._tabStatus |= TAB_INACTIVETABSHOWBUTTON;
else
nppgui._tabStatus &= ~TAB_INACTIVETABSHOWBUTTON;
::SendMessage(::GetParent(_hParent), NPPM_INTERNAL_DRAWINACTIVETABBARBUTTON, 0, 0);
return TRUE;
}
case IDC_CHECK_DBCLICK2CLOSE :
::SendMessage(::GetParent(_hParent), NPPM_INTERNAL_TABDBCLK2CLOSE, 0, 0);

View File

@ -36,7 +36,7 @@
#define IDC_CHECK_LOCK (IDD_PREFERENCE_SUB_GENRAL + 8)
#define IDC_CHECK_DRAWINACTIVE (IDD_PREFERENCE_SUB_GENRAL + 9)
#define IDC_CHECK_ORANGE (IDD_PREFERENCE_SUB_GENRAL + 10)
//#define IDC_CHECK_SHOWSTATUSBAR (IDD_PREFERENCE_SUB_GENRAL + 11)
#define IDC_CHECK_INACTTABDRAWBUTTON (IDD_PREFERENCE_SUB_GENRAL + 11)
#define IDC_CHECK_ENABLETABCLOSE (IDD_PREFERENCE_SUB_GENRAL + 12)
#define IDC_CHECK_DBCLICK2CLOSE (IDD_PREFERENCE_SUB_GENRAL + 13)
#define IDC_CHECK_ENABLEDOCSWITCHER (IDD_PREFERENCE_SUB_GENRAL + 14)

View File

@ -521,15 +521,27 @@ void TabBarPlus::setCloseBtnImageList()
int iconSize = 0;
std::vector<int> ids;
NppParameters& nppParam = NppParameters::getInstance();
bool showInactiveTabButtons = nppParam.getNppGUI()._tabStatus & TAB_INACTIVETABSHOWBUTTON;
if (NppDarkMode::isEnabled())
{
iconSize = g_TabCloseBtnSize_DM;
if (showInactiveTabButtons)
ids = { IDR_CLOSETAB_DM, IDR_CLOSETAB_INACT_DM, IDR_CLOSETAB_HOVERIN_DM, IDR_CLOSETAB_HOVERONTAB_DM, IDR_CLOSETAB_PUSH_DM };
else
ids = { IDR_CLOSETAB_DM, IDR_CLOSETAB_INACT_EMPTY_DM, IDR_CLOSETAB_HOVERIN_DM, IDR_CLOSETAB_HOVERONTAB_DM, IDR_CLOSETAB_PUSH_DM };
}
else
{
iconSize = g_TabCloseBtnSize;
if (showInactiveTabButtons)
ids = { IDR_CLOSETAB, IDR_CLOSETAB_INACT, IDR_CLOSETAB_HOVERIN, IDR_CLOSETAB_HOVERONTAB, IDR_CLOSETAB_PUSH };
else
ids = { IDR_CLOSETAB, IDR_CLOSETAB_INACT_EMPTY, IDR_CLOSETAB_HOVERIN, IDR_CLOSETAB_HOVERONTAB, IDR_CLOSETAB_PUSH };
}
if (_hCloseBtnImgLst != nullptr)
@ -560,15 +572,26 @@ void TabBarPlus::setPinBtnImageList()
int iconSize = 0;
std::vector<int> ids;
NppParameters& nppParam = NppParameters::getInstance();
bool showInactiveTabButtons = nppParam.getNppGUI()._tabStatus & TAB_INACTIVETABSHOWBUTTON;
if (NppDarkMode::isEnabled())
{
iconSize = g_TabPinBtnSize_DM;
if (showInactiveTabButtons)
ids = { IDR_PINTAB_DM, IDR_PINTAB_INACT_DM, IDR_PINTAB_HOVERIN_DM, IDR_PINTAB_HOVERONTAB_DM, IDR_PINTAB_PINNED_DM, IDR_PINTAB_PINNEDHOVERIN_DM };
else
ids = { IDR_PINTAB_DM, IDR_PINTAB_INACT_EMPTY_DM, IDR_PINTAB_HOVERIN_DM, IDR_PINTAB_HOVERONTAB_DM, IDR_PINTAB_PINNED_DM, IDR_PINTAB_PINNEDHOVERIN_DM };
}
else
{
iconSize = g_TabPinBtnSize;
if (showInactiveTabButtons)
ids = { IDR_PINTAB, IDR_PINTAB_INACT, IDR_PINTAB_HOVERIN, IDR_PINTAB_HOVERONTAB, IDR_PINTAB_PINNED, IDR_PINTAB_PINNEDHOVERIN };
else
ids = { IDR_PINTAB, IDR_PINTAB_INACT_EMPTY, IDR_PINTAB_HOVERIN, IDR_PINTAB_HOVERONTAB, IDR_PINTAB_PINNED, IDR_PINTAB_PINNEDHOVERIN };
}
if (_hPinBtnImgLst != nullptr)

View File

@ -371,54 +371,58 @@
#define IDR_FILEBROWSER 1529
#define IDR_CLOSETAB 1530
#define IDR_CLOSETAB_INACT 1531
#define IDR_CLOSETAB_HOVERIN 1532
#define IDR_CLOSETAB_HOVERONTAB 1533
#define IDR_CLOSETAB_PUSH 1534
#define IDR_FUNC_LIST_ICO 1535
#define IDR_DOCMAP_ICO 1536
#define IDR_PROJECTPANEL_ICO 1537
#define IDR_CLIPBOARDPANEL_ICO 1538
#define IDR_ASCIIPANEL_ICO 1539
#define IDR_DOCSWITCHER_ICO 1540
#define IDR_FILEBROWSER_ICO 1541
#define IDR_FILEMONITORING 1542
#define IDR_CLOSETAB_DM 1543
#define IDR_CLOSETAB_INACT_DM 1544
#define IDR_CLOSETAB_HOVERIN_DM 1545
#define IDR_CLOSETAB_HOVERONTAB_DM 1546
#define IDR_CLOSETAB_PUSH_DM 1547
#define IDR_DOCLIST 1548
#define IDR_DOCLIST_ICO 1549
#define IDR_CLOSETAB_INACT_EMPTY 1532
#define IDR_CLOSETAB_HOVERIN 1533
#define IDR_CLOSETAB_HOVERONTAB 1534
#define IDR_CLOSETAB_PUSH 1535
#define IDR_FUNC_LIST_ICO 1536
#define IDR_DOCMAP_ICO 1537
#define IDR_PROJECTPANEL_ICO 1538
#define IDR_CLIPBOARDPANEL_ICO 1539
#define IDR_ASCIIPANEL_ICO 1540
#define IDR_DOCSWITCHER_ICO 1541
#define IDR_FILEBROWSER_ICO 1542
#define IDR_FILEMONITORING 1543
#define IDR_CLOSETAB_DM 1544
#define IDR_CLOSETAB_INACT_DM 1545
#define IDR_CLOSETAB_INACT_EMPTY_DM 1546
#define IDR_CLOSETAB_HOVERIN_DM 1547
#define IDR_CLOSETAB_HOVERONTAB_DM 1548
#define IDR_CLOSETAB_PUSH_DM 1549
#define IDR_DOCLIST 1550
#define IDR_DOCLIST_ICO 1551
#define IDR_FILEBROWSER_ICO2 1550
#define IDR_FILEBROWSER_ICO_DM 1551
#define IDR_FUNC_LIST_ICO2 1552
#define IDR_FUNC_LIST_ICO_DM 1553
#define IDR_DOCMAP_ICO2 1554
#define IDR_DOCMAP_ICO_DM 1555
#define IDR_DOCLIST_ICO2 1556
#define IDR_DOCLIST_ICO_DM 1557
#define IDR_PROJECTPANEL_ICO2 1558
#define IDR_PROJECTPANEL_ICO_DM 1559
#define IDR_CLIPBOARDPANEL_ICO2 1560
#define IDR_CLIPBOARDPANEL_ICO_DM 1561
#define IDR_ASCIIPANEL_ICO2 1562
#define IDR_ASCIIPANEL_ICO_DM 1563
#define IDR_FIND_RESULT_ICO2 1564
#define IDR_FIND_RESULT_ICO_DM 1565
#define IDR_FILEBROWSER_ICO2 1552
#define IDR_FILEBROWSER_ICO_DM 1553
#define IDR_FUNC_LIST_ICO2 1554
#define IDR_FUNC_LIST_ICO_DM 1555
#define IDR_DOCMAP_ICO2 1556
#define IDR_DOCMAP_ICO_DM 1557
#define IDR_DOCLIST_ICO2 1558
#define IDR_DOCLIST_ICO_DM 1559
#define IDR_PROJECTPANEL_ICO2 1560
#define IDR_PROJECTPANEL_ICO_DM 1561
#define IDR_CLIPBOARDPANEL_ICO2 1562
#define IDR_CLIPBOARDPANEL_ICO_DM 1563
#define IDR_ASCIIPANEL_ICO2 1564
#define IDR_ASCIIPANEL_ICO_DM 1565
#define IDR_FIND_RESULT_ICO2 1566
#define IDR_FIND_RESULT_ICO_DM 1567
#define IDR_PINTAB 1566
#define IDR_PINTAB_INACT 1567
#define IDR_PINTAB_HOVERIN 1568
#define IDR_PINTAB_HOVERONTAB 1569
#define IDR_PINTAB_PINNED 1570
#define IDR_PINTAB_PINNEDHOVERIN 1571
#define IDR_PINTAB_DM 1572
#define IDR_PINTAB_INACT_DM 1573
#define IDR_PINTAB_HOVERIN_DM 1574
#define IDR_PINTAB_HOVERONTAB_DM 1575
#define IDR_PINTAB_PINNED_DM 1576
#define IDR_PINTAB_PINNEDHOVERIN_DM 1577
#define IDR_PINTAB 1568
#define IDR_PINTAB_INACT 1569
#define IDR_PINTAB_INACT_EMPTY 1570
#define IDR_PINTAB_HOVERIN 1571
#define IDR_PINTAB_HOVERONTAB 1572
#define IDR_PINTAB_PINNED 1573
#define IDR_PINTAB_PINNEDHOVERIN 1574
#define IDR_PINTAB_DM 1575
#define IDR_PINTAB_INACT_DM 1576
#define IDR_PINTAB_INACT_EMPTY_DM 1577
#define IDR_PINTAB_HOVERIN_DM 1578
#define IDR_PINTAB_HOVERONTAB_DM 1579
#define IDR_PINTAB_PINNED_DM 1580
#define IDR_PINTAB_PINNEDHOVERIN_DM 1581
#define ID_MACRO 20000
// O .
@ -714,7 +718,7 @@
#define NPPM_INTERNAL_DOCMODIFIEDBYREPLACEALL (NOTEPADPLUS_USER_INTERNAL + 79)
#define NPPM_INTERNAL_DRAWTABBARPINBUTTON (NOTEPADPLUS_USER_INTERNAL + 80)
#define NPPM_INTERNAL_DRAWTABBARCLOSEBUTTON (NOTEPADPLUS_USER_INTERNAL + 81)
//#define NPPM_INTERNAL_REFRESHTABAR (NOTEPADPLUS_USER_INTERNAL + 82)
#define NPPM_INTERNAL_DRAWINACTIVETABBARBUTTON (NOTEPADPLUS_USER_INTERNAL + 82)
#define NPPM_INTERNAL_REDUCETABBAR (NOTEPADPLUS_USER_INTERNAL + 83)
#define NPPM_INTERNAL_LOCKTABBAR (NOTEPADPLUS_USER_INTERNAL + 84)
#define NPPM_INTERNAL_DRAWINACIVETAB (NOTEPADPLUS_USER_INTERNAL + 85)