45 lines
1.1 KiB
C
45 lines
1.1 KiB
C
|
#pragma once
|
||
|
#include <qwidget.h>
|
||
|
#include "Settings.h"
|
||
|
|
||
|
#ifdef USE_QEXTWIDGETS
|
||
|
#include "../../qextwidgets/qtabwidgetex.h"
|
||
|
#endif
|
||
|
|
||
|
#include "../mischelpers_global.h"
|
||
|
|
||
|
class MISCHELPERS_EXPORT CTabPanel : public QWidget
|
||
|
{
|
||
|
Q_OBJECT
|
||
|
public:
|
||
|
CTabPanel(QWidget* parent = 0);
|
||
|
virtual ~CTabPanel();
|
||
|
|
||
|
virtual int GetTabCount() { return m_AllTabs.size(); }
|
||
|
virtual QString GetTabLabel(int Index) { if (Index >= m_AllTabs.size()) return ""; return m_AllTabs[Index].Name; }
|
||
|
virtual void ShowTab(int Index, bool bShow);
|
||
|
virtual bool IsTabVisible(int Index) { if (Index >= m_AllTabs.size()) return ""; return m_AllTabs[Index].bVisible; }
|
||
|
|
||
|
protected:
|
||
|
virtual void InitializeTabs() = 0;
|
||
|
virtual void AddTab(QWidget* pWidget, const QString& Name);
|
||
|
virtual void RebuildTabs(const int ActiveTab, const QStringList& VisibleTabs);
|
||
|
virtual void SaveTabs(int& ActiveTab, QStringList& VisibleTabs);
|
||
|
|
||
|
QVBoxLayout* m_pMainLayout;
|
||
|
|
||
|
#ifdef USE_QEXTWIDGETS
|
||
|
QTabWidgetEx* m_pTabs;
|
||
|
#else
|
||
|
QTabWidget* m_pTabs;
|
||
|
#endif
|
||
|
struct STab
|
||
|
{
|
||
|
QString Name;
|
||
|
QWidget* pWidget;
|
||
|
bool bVisible;
|
||
|
};
|
||
|
QVector<STab> m_AllTabs;
|
||
|
};
|
||
|
|