Each book control should say what its default orientation. Use this info
if no alignment style, otherwise assertion will happen in GetPageRect. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39587 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -118,6 +118,9 @@ public:
|
|||||||
// calculate the size of the control from the size of its page
|
// calculate the size of the control from the size of its page
|
||||||
virtual wxSize CalcSizeFromPage(const wxSize& sizePage) const = 0;
|
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
|
// get/set size of area between book control area and page area
|
||||||
unsigned int GetInternalBorder() const { return m_internalBorder; }
|
unsigned int GetInternalBorder() const { return m_internalBorder; }
|
||||||
void SetInternalBorder(unsigned int border) { m_internalBorder = border; }
|
void SetInternalBorder(unsigned int border) { m_internalBorder = border; }
|
||||||
@@ -127,7 +130,7 @@ public:
|
|||||||
int GetControlMargin() const { return m_controlMargin; }
|
int GetControlMargin() const { return m_controlMargin; }
|
||||||
|
|
||||||
// returns true if we have wxBK_TOP or wxBK_BOTTOM style
|
// 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
|
// set/get option to shrink to fit current page
|
||||||
void SetFitToCurrentPage(bool fit) { m_fitToCurrentPage = fit; }
|
void SetFitToCurrentPage(bool fit) { m_fitToCurrentPage = fit; }
|
||||||
|
@@ -268,7 +268,11 @@ wxRect wxBookCtrlBase::GetPageRect() const
|
|||||||
|
|
||||||
wxPoint pt;
|
wxPoint pt;
|
||||||
wxRect rectPage(pt, GetClientSize());
|
wxRect rectPage(pt, GetClientSize());
|
||||||
switch ( GetWindowStyle() & wxBK_ALIGN_MASK )
|
long style = GetWindowStyle();
|
||||||
|
if ( !HasFlag(wxBK_ALIGN_MASK) )
|
||||||
|
style = GetDefaultAlignment();
|
||||||
|
|
||||||
|
switch ( style )
|
||||||
{
|
{
|
||||||
default:
|
default:
|
||||||
wxFAIL_MSG( _T("unexpected alignment") );
|
wxFAIL_MSG( _T("unexpected alignment") );
|
||||||
|
Reference in New Issue
Block a user