if (!pPopup->GetMenuItemInfo(ID_CLOSE_OTHER_TABS, &mii, FALSE))
{
pPopup->AppendMenu(MF_SEPARATOR, 0, _T(""));
+ pPopup->AppendMenu(MF_STRING, ID_TABBAR_AUTO_MAXWIDTH, LoadResString(IDS_TABBAR_AUTO_MAXWIDTH).c_str());
+ pPopup->AppendMenu(MF_SEPARATOR, 0, _T(""));
pPopup->AppendMenu(MF_STRING, ID_CLOSE_OTHER_TABS, LoadResString(IDS_CLOSE_OTHER_TABS).c_str());
pPopup->AppendMenu(MF_STRING, ID_CLOSE_RIGHT_TABS, LoadResString(IDS_CLOSE_RIGHT_TABS).c_str());
pPopup->AppendMenu(MF_STRING, ID_CLOSE_LEFT_TABS, LoadResString(IDS_CLOSE_LEFT_TABS).c_str());
}
+ pPopup->CheckMenuItem(ID_TABBAR_AUTO_MAXWIDTH, m_bAutoMaxWidth ? MF_CHECKED : MF_UNCHECKED);
// invoke context menu
int command = pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON | TPM_RETURNCMD, point.x, point.y,
this);
}
break;
}
+ case ID_TABBAR_AUTO_MAXWIDTH:
+ m_bAutoMaxWidth = !m_bAutoMaxWidth;
+ UpdateTabs();
+ break;
default:
pMDIChild->SendMessage(WM_SYSCOMMAND, command);
}
}
}
- int nMaxTitleLength = static_cast<int>(MDITABBAR_MAXTITLELENGTH - (MDIFrameList.GetCount() - 1) * 6);
+ int nMaxTitleLength;
+ if (m_bAutoMaxWidth)
+ nMaxTitleLength = static_cast<int>(MDITABBAR_MAXTITLELENGTH - (MDIFrameList.GetCount() - 1) * 6);
+ else
+ nMaxTitleLength = MDITABBAR_MAXTITLELENGTH;
if (nMaxTitleLength < MDITABBAR_MINTITLELENGTH)
nMaxTitleLength = MDITABBAR_MINTITLELENGTH;
bool m_bMouseTracking;
bool m_bCloseButtonDown;
CRect m_rcCurrentCloseButtom;
+ bool m_bAutoMaxWidth;
public:
- CMDITabBar() : m_bInSelchange(FALSE), m_pMainFrame(NULL), m_bMouseTracking(false), m_bCloseButtonDown(false) {}
+ CMDITabBar() : m_bInSelchange(FALSE), m_pMainFrame(NULL), m_bMouseTracking(false), m_bCloseButtonDown(false), m_bAutoMaxWidth(true) {}
virtual ~CMDITabBar() {}
BOOL Create(CMDIFrameWnd* pParentWnd);
void UpdateTabs();
+ bool GetAutoMaxWidth() const { return m_bAutoMaxWidth; }
+ void SetAutoMaxWidth(bool bAutoMaxWidth) { m_bAutoMaxWidth = bAutoMaxWidth; }
virtual void OnUpdateCmdUI(CFrameWnd* pTarget, BOOL bDisableIfNoHndler) {}
virtual CSize CalcFixedLayout(BOOL bStretch, BOOL bHorz);
CMainFrame::~CMainFrame()
{
+ GetOptionsMgr()->SaveOption(OPT_TABBAR_AUTO_MAXWIDTH, m_wndTabBar.GetAutoMaxWidth());
sd_Close();
}
TRACE0("Failed to create tab bar\n");
return -1; // fail to create
}
+ m_wndTabBar.SetAutoMaxWidth(GetOptionsMgr()->GetBool(OPT_TABBAR_AUTO_MAXWIDTH));
+
if (GetOptionsMgr()->GetBool(OPT_SHOW_TABBAR) == false)
CMDIFrameWnd::ShowControlBar(&m_wndTabBar, false, 0);
IDS_CLOSE_LEFT_TABS "Close &Left Tabs"
IDS_CLOSE_RIGHT_TABS "Close R&ight Tabs"
IDS_CLOSE_OTHER_TABS "Close &Other Tabs"
+ IDS_TABBAR_AUTO_MAXWIDTH "Enable &Auto Max Width"
END
STRINGTABLE
// Startup options
const TCHAR OPT_SHOW_SELECT_FILES_AT_STARTUP[] = _T("Settings/ShowFileDialog");
+// MDI Tab Bar
+const TCHAR OPT_TABBAR_AUTO_MAXWIDTH[] = _T("Settings/TabBarAutoMaxWidth");
+
// Font options
const TCHAR OPT_FONT_FILECMP[] = _T("Font/");
const TCHAR OPT_FONT_DIRCMP[] = _T("FontDirCompare/");
m_pOptions->InitOption(OPT_PLUGINS_ENABLED, true);
+ m_pOptions->InitOption(OPT_TABBAR_AUTO_MAXWIDTH, true);
+
Options::DiffOptions::SetDefaults();
Options::DiffColors::SetDefaults();
Options::Font::SetDefaults();
#define ID_NO_MRU 33208
#define ID_MRU_FIRST 33209
#define ID_MRU_LAST 33217
+#define ID_TABBAR_AUTO_MAXWIDTH 33218
+#define IDS_TABBAR_AUTO_MAXWIDTH 33219
// Next default values for new objects
//
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_3D_CONTROLS 1
#define _APS_NEXT_RESOURCE_VALUE 239
-#define _APS_NEXT_COMMAND_VALUE 33218
+#define _APS_NEXT_COMMAND_VALUE 33220
#define _APS_NEXT_CONTROL_VALUE 1357
#define _APS_NEXT_SYMED_VALUE 114
#endif