// Created: 01/02/97
// RCS-ID: $Id$
// Copyright: (c)
-// Licence: wxWindows licence
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef __TABGH_G__
#define __TABGH_G__
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(__APPLE__)
#pragma interface "tabg.h"
#endif
* A wxTabControl is the internal and visual representation
* of the tab.
*/
-
+
class WXDLLEXPORT wxTabControl: public wxObject
{
DECLARE_DYNAMIC_CLASS(wxTabControl)
public:
wxTabControl(wxTabView *v = (wxTabView *) NULL);
~wxTabControl(void);
-
+
virtual void OnDraw(wxDC& dc, bool lastInRow);
- inline void SetLabel(const wxString& str) { m_controlLabel = str; }
- inline wxString GetLabel(void) const { return m_controlLabel; }
-
- inline void SetFont(wxFont *f) { m_labelFont = f; }
- inline wxFont *GetFont(void) const { return m_labelFont; }
-
- inline void SetSelected(bool sel) { m_isSelected = sel; }
- inline bool IsSelected(void) const { return m_isSelected; }
-
- inline void SetPosition(int x, int y) { m_offsetX = x; m_offsetY = y; }
- inline void SetSize(int x, int y) { m_width = x; m_height = y; }
-
- inline void SetRowPosition(int r) { m_rowPosition = r; }
- inline int GetRowPosition() const { return m_rowPosition; }
- inline void SetColPosition(int c) { m_colPosition = c; }
- inline int GetColPosition() const { return m_colPosition; }
-
- inline int GetX(void) const { return m_offsetX; }
- inline int GetY(void) const { return m_offsetY; }
- inline int GetWidth(void) const { return m_width; }
- inline int GetHeight(void) const { return m_height; }
-
- inline int GetId(void) const { return m_id; }
- inline void SetId(int i) { m_id = i; }
-
+ void SetLabel(const wxString& str) { m_controlLabel = str; }
+ wxString GetLabel(void) const { return m_controlLabel; }
+
+ void SetFont(const wxFont& f) { m_labelFont = f; }
+ wxFont *GetFont(void) const { return (wxFont*) & m_labelFont; }
+
+ void SetSelected(bool sel) { m_isSelected = sel; }
+ bool IsSelected(void) const { return m_isSelected; }
+
+ void SetPosition(int x, int y) { m_offsetX = x; m_offsetY = y; }
+ void SetSize(int x, int y) { m_width = x; m_height = y; }
+
+ void SetRowPosition(int r) { m_rowPosition = r; }
+ int GetRowPosition() const { return m_rowPosition; }
+ void SetColPosition(int c) { m_colPosition = c; }
+ int GetColPosition() const { return m_colPosition; }
+
+ int GetX(void) const { return m_offsetX; }
+ int GetY(void) const { return m_offsetY; }
+ int GetWidth(void) const { return m_width; }
+ int GetHeight(void) const { return m_height; }
+
+ int GetId(void) const { return m_id; }
+ void SetId(int i) { m_id = i; }
+
virtual bool HitTest(int x, int y) const ;
protected:
wxTabView* m_view;
wxString m_controlLabel;
bool m_isSelected;
- wxFont* m_labelFont;
+ wxFont m_labelFont;
int m_offsetX; // Offsets from top-left of tab view area (the area below the tabs)
int m_offsetY;
int m_width;
int m_rowPosition; // Position in row from 0
int m_colPosition; // Position in col from 0
};
-
+
/*
* Each wxTabLayer is a list of tabs. E.g. there
* are 3 layers in the MS Word Options dialog.
*/
-
+
class WXDLLEXPORT wxTabLayer: public wxList
{
DECLARE_DYNAMIC_CLASS(wxTabLayer)
- public:
- wxTabLayer(void)
- {
- }
};
/*
// Automatically positions tabs
wxTabControl *AddTab(int id, const wxString& label, wxTabControl *existingTab = (wxTabControl *) NULL);
+
+ // Remove the tab without deleting the window
+ bool RemoveTab(int id);
void ClearTabs(bool deleteTabs = TRUE);
+ bool SetTabText(int id, const wxString& label);
+ wxString GetTabText(int id) const;
+
// Layout tabs (optional, e.g. if resizing window)
- void Layout(void);
+ void LayoutTabs();
// Draw all tabs
virtual void Draw(wxDC& dc);
inline wxPen *GetBackgroundPen(void) const { return m_backgroundPen; }
inline wxBrush *GetBackgroundBrush(void) const { return m_backgroundBrush; }
- inline void SetViewRect(const wxRectangle& rect) { m_tabViewRect = rect; }
+ inline void SetViewRect(const wxRect& rect) { m_tabViewRect = rect; }
inline wxRect GetViewRect(void) const { return m_tabViewRect; }
// Calculate tab width to fit to view, and optionally adjust the view
inline void SetVerticalTabTextSpacing(int s) { m_tabVerticalTextSpacing = s; }
inline int GetVerticalTabTextSpacing() const { return m_tabVerticalTextSpacing; }
- inline wxFont *GetTabFont() const { return m_tabFont; }
- inline void SetTabFont(wxFont *f) { m_tabFont = f; }
+ inline wxFont *GetTabFont() const { return (wxFont*) & m_tabFont; }
+ inline void SetTabFont(const wxFont& f) { m_tabFont = f; }
- inline wxFont *GetSelectedTabFont() const { return m_tabSelectedFont; }
- inline void SetSelectedTabFont(wxFont *f) { m_tabSelectedFont = f; }
+ inline wxFont *GetSelectedTabFont() const { return (wxFont*) & m_tabSelectedFont; }
+ inline void SetSelectedTabFont(const wxFont& f) { m_tabSelectedFont = f; }
// Find the node and the column at which this control is positioned.
wxNode *FindTabNodeAndColumn(wxTabControl *control, int *col) const ;
wxPen* m_backgroundPen;
wxBrush* m_backgroundBrush;
- wxFont* m_tabFont;
- wxFont* m_tabSelectedFont;
+ wxFont m_tabFont;
+ wxFont m_tabSelectedFont;
int m_noTabs;