// calculate the size of the control from the size of its page
virtual wxSize CalcSizeFromPage(const wxSize& sizePage) const = 0;
+ // get the default alignment
+ virtual int GetDefaultAlignment() const { return wxBK_TOP; }
+
// get/set size of area between book control area and page area
unsigned int GetInternalBorder() const { return m_internalBorder; }
void SetInternalBorder(unsigned int border) { m_internalBorder = border; }
int GetControlMargin() const { return m_controlMargin; }
// returns true if we have wxBK_TOP or wxBK_BOTTOM style
- bool IsVertical() const { return HasFlag(wxBK_BOTTOM | wxBK_TOP); }
+ bool IsVertical() const { return HasFlag(wxBK_ALIGN_MASK) ? HasFlag(wxBK_BOTTOM | wxBK_TOP) : (0 != (GetDefaultAlignment() & (wxBK_BOTTOM | wxBK_TOP))); }
// set/get option to shrink to fit current page
void SetFitToCurrentPage(bool fit) { m_fitToCurrentPage = fit; }
wxPoint pt;
wxRect rectPage(pt, GetClientSize());
- switch ( GetWindowStyle() & wxBK_ALIGN_MASK )
+ long style = GetWindowStyle();
+ if ( !HasFlag(wxBK_ALIGN_MASK) )
+ style = GetDefaultAlignment();
+
+ switch ( style )
{
default:
wxFAIL_MSG( _T("unexpected alignment") );