diff --git a/PowerEditor/src/Notepad_plus.cpp b/PowerEditor/src/Notepad_plus.cpp index 58e58df1d..b4d9a85dd 100644 --- a/PowerEditor/src/Notepad_plus.cpp +++ b/PowerEditor/src/Notepad_plus.cpp @@ -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); diff --git a/PowerEditor/src/Notepad_plus.rc b/PowerEditor/src/Notepad_plus.rc index 79abde309..20b89421d 100644 --- a/PowerEditor/src/Notepad_plus.rc +++ b/PowerEditor/src/Notepad_plus.rc @@ -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" diff --git a/PowerEditor/src/NppBigSwitch.cpp b/PowerEditor/src/NppBigSwitch.cpp index 5466bd529..5fe414fd3 100644 --- a/PowerEditor/src/NppBigSwitch.cpp +++ b/PowerEditor/src/NppBigSwitch.cpp @@ -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) diff --git a/PowerEditor/src/Parameters.cpp b/PowerEditor/src/Parameters.cpp index aedc7f297..91bed4c82 100644 --- a/PowerEditor/src/Parameters.cpp +++ b/PowerEditor/src/Parameters.cpp @@ -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); diff --git a/PowerEditor/src/Parameters.h b/PowerEditor/src/Parameters.h index fb5e97a23..a63938ee6 100644 --- a/PowerEditor/src/Parameters.h +++ b/PowerEditor/src/Parameters.h @@ -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; diff --git a/PowerEditor/src/WinControls/Preference/preference.rc b/PowerEditor/src/WinControls/Preference/preference.rc index dfcc5594a..1a7e73dd8 100644 --- a/PowerEditor/src/WinControls/Preference/preference.rc +++ b/PowerEditor/src/WinControls/Preference/preference.rc @@ -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 diff --git a/PowerEditor/src/WinControls/Preference/preferenceDlg.cpp b/PowerEditor/src/WinControls/Preference/preferenceDlg.cpp index 93b0b8fca..ba6fc0e45 100644 --- a/PowerEditor/src/WinControls/Preference/preferenceDlg.cpp +++ b/PowerEditor/src/WinControls/Preference/preferenceDlg.cpp @@ -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); @@ -753,13 +767,36 @@ intptr_t CALLBACK GeneralSubDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM ::SendMessage(::GetParent(_hParent), NPPM_INTERNAL_DRAWINACIVETAB, 0, 0); return TRUE; - case IDC_CHECK_ENABLETABCLOSE : - ::SendMessage(::GetParent(_hParent), NPPM_INTERNAL_DRAWTABBARCLOSEBUTTON, 0, 0); - return TRUE; - + case IDC_CHECK_ENABLETABCLOSE: 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); diff --git a/PowerEditor/src/WinControls/Preference/preference_rc.h b/PowerEditor/src/WinControls/Preference/preference_rc.h index 0c03d7006..c1ba8d7d3 100644 --- a/PowerEditor/src/WinControls/Preference/preference_rc.h +++ b/PowerEditor/src/WinControls/Preference/preference_rc.h @@ -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) diff --git a/PowerEditor/src/WinControls/TabBar/TabBar.cpp b/PowerEditor/src/WinControls/TabBar/TabBar.cpp index 6607736e0..3aec5e74e 100644 --- a/PowerEditor/src/WinControls/TabBar/TabBar.cpp +++ b/PowerEditor/src/WinControls/TabBar/TabBar.cpp @@ -521,15 +521,27 @@ void TabBarPlus::setCloseBtnImageList() int iconSize = 0; std::vector ids; + NppParameters& nppParam = NppParameters::getInstance(); + bool showInactiveTabButtons = nppParam.getNppGUI()._tabStatus & TAB_INACTIVETABSHOWBUTTON; + if (NppDarkMode::isEnabled()) { iconSize = g_TabCloseBtnSize_DM; - ids = { IDR_CLOSETAB_DM, IDR_CLOSETAB_INACT_DM, IDR_CLOSETAB_HOVERIN_DM, IDR_CLOSETAB_HOVERONTAB_DM, IDR_CLOSETAB_PUSH_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; - ids = { IDR_CLOSETAB, IDR_CLOSETAB_INACT, IDR_CLOSETAB_HOVERIN, IDR_CLOSETAB_HOVERONTAB, IDR_CLOSETAB_PUSH }; + + 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 ids; + NppParameters& nppParam = NppParameters::getInstance(); + bool showInactiveTabButtons = nppParam.getNppGUI()._tabStatus & TAB_INACTIVETABSHOWBUTTON; + if (NppDarkMode::isEnabled()) { iconSize = g_TabPinBtnSize_DM; - ids = { IDR_PINTAB_DM, IDR_PINTAB_INACT_DM, IDR_PINTAB_HOVERIN_DM, IDR_PINTAB_HOVERONTAB_DM, IDR_PINTAB_PINNED_DM, IDR_PINTAB_PINNEDHOVERIN_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; - ids = { IDR_PINTAB, IDR_PINTAB_INACT, IDR_PINTAB_HOVERIN, IDR_PINTAB_HOVERONTAB, IDR_PINTAB_PINNED, IDR_PINTAB_PINNEDHOVERIN }; + + 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) diff --git a/PowerEditor/src/resource.h b/PowerEditor/src/resource.h index b0f57fe07..c78409321 100644 --- a/PowerEditor/src/resource.h +++ b/PowerEditor/src/resource.h @@ -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)