From 926395e16b8ee7a2988078e9cf6ea5c7e88500e0 Mon Sep 17 00:00:00 2001 From: Julian Smart Date: Tue, 6 Jun 2006 11:05:22 +0000 Subject: [PATCH] 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 --- include/wx/bookctrl.h | 5 ++++- src/common/bookctrl.cpp | 6 +++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/include/wx/bookctrl.h b/include/wx/bookctrl.h index 4cea68ba31..d1dfe04f50 100644 --- a/include/wx/bookctrl.h +++ b/include/wx/bookctrl.h @@ -118,6 +118,9 @@ public: // 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; } @@ -127,7 +130,7 @@ public: 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; } diff --git a/src/common/bookctrl.cpp b/src/common/bookctrl.cpp index 0d86e64008..e8539c12f4 100644 --- a/src/common/bookctrl.cpp +++ b/src/common/bookctrl.cpp @@ -268,7 +268,11 @@ wxRect wxBookCtrlBase::GetPageRect() const 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") ); -- 2.45.2