// Modified by:
// RCS-ID: $Id$
// Copyright: (c) Stefan Csomor
-// Licence: wxWidgets licence
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_NOTEBOOK_H_
#define _WX_NOTEBOOK_H_
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-#pragma interface "notebook.h"
-#endif
-
// ----------------------------------------------------------------------------
// headers
// ----------------------------------------------------------------------------
// wxNotebook
// ----------------------------------------------------------------------------
-// @@@ this class should really derive from wxTabCtrl, but the interface is not
-// exactly the same, so I can't do it right now and instead we reimplement
-// part of wxTabCtrl here
class wxNotebook : public wxNotebookBase
{
public:
wxNotebook();
// the same arguments as for wxControl (@@@ any special styles?)
wxNotebook(wxWindow *parent,
- wxWindowID id,
+ wxWindowID id,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = 0,
- const wxString& name = wxT("notebook"));
+ const wxString& name = wxNotebookNameStr);
// Create() function
bool Create(wxWindow *parent,
- wxWindowID id,
+ wxWindowID id,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = 0,
- const wxString& name = wxT("notebook"));
+ const wxString& name = wxNotebookNameStr);
// dtor
- ~wxNotebook();
+ virtual ~wxNotebook();
// accessors
// ---------
// set the currently selected page, return the index of the previously
// selected one (or -1 on error)
// NB: this function will _not_ generate wxEVT_NOTEBOOK_PAGE_xxx events
- int SetSelection(size_t nPage);
+ int SetSelection(size_t nPage) { return DoSetSelection(nPage, SetSelection_SendEvent); }
// get the currently selected page
int GetSelection() const { return m_nSelection; }
+ // changes selected page without sending events
+ int ChangeSelection(size_t nPage) { return DoSetSelection(nPage); }
+
// set/get the title of a page
bool SetPageText(size_t nPage, const wxString& strText);
wxString GetPageText(size_t nPage) const;
virtual void SetPadding(const wxSize& padding);
// sets the size of the tabs (assumes all tabs are the same size)
virtual void SetTabSize(const wxSize& sz);
-
- // calculate size for wxNotebookSizer
+
+ // hit test
+ virtual int HitTest(const wxPoint& pt, long *flags = NULL) const;
+
+ // calculate size for wxNotebookSizer
wxSize CalcSizeFromPage(const wxSize& sizePage) const;
wxRect GetPageRect() const ;
-/*
- // get number of pages in the dialog
- int GetPageCount() const;
-
- // cycle thru the tabs
- void AdvanceSelection(bool bForward = TRUE);
-
- // currently it's always 1 because wxGTK doesn't support multi-row
- // tab controls
- int GetRowCount() const;
-*/
// operations
// ----------
// remove all pages
bool InsertPage(size_t nPage,
wxNotebookPage *pPage,
const wxString& strText,
- bool bSelect = FALSE,
+ bool bSelect = false,
int imageId = -1);
-/*
- // get the panel which represents the given page
- wxNotebookPage *GetPage(int nPage) { return m_aPages[nPage]; }
-*/
+
// callbacks
// ---------
void OnSize(wxSizeEvent& event);
// --------------
#if wxUSE_CONSTRAINTS
- virtual void SetConstraintSizes(bool recurse = TRUE);
+ virtual void SetConstraintSizes(bool recurse = true);
virtual bool DoPhase(int nPhase);
#endif
// base class virtuals
// -------------------
virtual void Command(wxCommandEvent& event);
+ virtual wxInt32 MacControlHit(WXEVENTHANDLERREF handler, WXEVENTREF event);
+
protected:
- virtual wxSize DoGetBestSize() const ;
virtual wxNotebookPage *DoRemovePage(size_t page) ;
- virtual wxInt32 MacControlHit( WXEVENTHANDLERREF handler , WXEVENTREF event ) ;
// common part of all ctors
void Init();
void ChangePage(int nOldSel, int nSel); // change pages
void MacSetupTabs();
+ int DoSetSelection(size_t nPage, int flags = 0);
+
// the icon indices
wxArrayInt m_images;