From: Vadim Zeitlin Date: Sat, 27 Oct 2012 01:27:19 +0000 (+0000) Subject: Add wxAuiToolBar::Create(). X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/46e672027809a31d87ed41c1a4e8ca5ef52c3220?hp=cf8ccdb270af889f19ae7a57d77b721e250b2ad4 Add wxAuiToolBar::Create(). Implement two-step creation of wxAuiToolBar to allow doing it from XRC. See #13520. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72785 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/include/wx/aui/auibar.h b/include/wx/aui/auibar.h index 8f28232d34..9eb7fc6eae 100644 --- a/include/wx/aui/auibar.h +++ b/include/wx/aui/auibar.h @@ -439,14 +439,26 @@ protected: class WXDLLIMPEXP_AUI wxAuiToolBar : public wxControl { public: + wxAuiToolBar() { Init(); } wxAuiToolBar(wxWindow* parent, - wxWindowID id = -1, - const wxPoint& position = wxDefaultPosition, + wxWindowID id = wxID_ANY, + const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxAUI_TB_DEFAULT_STYLE); + long style = wxAUI_TB_DEFAULT_STYLE) + { + Init(); + Create(parent, id, pos, size, style); + } + virtual ~wxAuiToolBar(); + bool Create(wxWindow* parent, + wxWindowID id = wxID_ANY, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = 0); + void SetWindowStyleFlag(long style); long GetWindowStyleFlag() const; @@ -581,6 +593,7 @@ public: virtual void UpdateWindowUI(long flags = wxUPDATE_UI_NONE); protected: + void Init(); virtual void OnCustomRender(wxDC& WXUNUSED(dc), const wxAuiToolBarItem& WXUNUSED(item), diff --git a/interface/wx/aui/auibar.h b/interface/wx/aui/auibar.h index 303a14ba0f..e02e3cd785 100644 --- a/interface/wx/aui/auibar.h +++ b/interface/wx/aui/auibar.h @@ -596,11 +596,32 @@ public: class wxAuiToolBar : public wxControl { public: + /** + Default constructor, use Create() later. + + @since 2.9.5 + */ + wxAuiToolBar(); + + /** + Constructor creating and initializing the object. + */ wxAuiToolBar(wxWindow* parent, - wxWindowID id = -1, + wxWindowID id = wxID_ANY, const wxPoint& position = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxAUI_TB_DEFAULT_STYLE); + + /** + Really create wxAuiToolBar created using default constructor. + + @since 2.9.5 + */ + bool Create(wxWindow* parent, + wxWindowID id = wxID_ANY, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxAUI_TB_DEFAULT_STYLE); virtual ~wxAuiToolBar(); void SetWindowStyleFlag(long style); diff --git a/src/aui/auibar.cpp b/src/aui/auibar.cpp index b18adb3440..b145f100af 100644 --- a/src/aui/auibar.cpp +++ b/src/aui/auibar.cpp @@ -798,17 +798,7 @@ BEGIN_EVENT_TABLE(wxAuiToolBar, wxControl) EVT_SET_CURSOR(wxAuiToolBar::OnSetCursor) END_EVENT_TABLE() - -wxAuiToolBar::wxAuiToolBar(wxWindow* parent, - wxWindowID id, - const wxPoint& position, - const wxSize& size, - long style) - : wxControl(parent, - id, - position, - size, - style | wxBORDER_NONE) +void wxAuiToolBar::Init() { m_sizer = new wxBoxSizer(wxHORIZONTAL); m_buttonWidth = -1; @@ -824,15 +814,29 @@ wxAuiToolBar::wxAuiToolBar(wxWindow* parent, m_gripperSizerItem = NULL; m_overflowSizerItem = NULL; m_dragging = false; + m_gripperVisible = (m_style & wxAUI_TB_GRIPPER) ? true : false; + m_overflowVisible = (m_style & wxAUI_TB_OVERFLOW) ? true : false; + m_overflowState = 0; +} + +bool wxAuiToolBar::Create(wxWindow* parent, + wxWindowID id, + const wxPoint& pos, + const wxSize& size, + long style) +{ + style = style|wxBORDER_NONE; + + if (!wxControl::Create(parent, id, pos, size, style)) + return false; + + m_style = style; m_orientation = GetOrientation(style); if (m_orientation == wxBOTH) { m_orientation = wxHORIZONTAL; } - m_style = style | wxBORDER_NONE; - m_gripperVisible = (m_style & wxAUI_TB_GRIPPER) ? true : false; - m_overflowVisible = (m_style & wxAUI_TB_OVERFLOW) ? true : false; - m_overflowState = 0; + SetMargins(5, 5, 2, 2); SetFont(*wxNORMAL_FONT); SetArtFlags(); @@ -840,8 +844,9 @@ wxAuiToolBar::wxAuiToolBar(wxWindow* parent, if (style & wxAUI_TB_HORZ_LAYOUT) SetToolTextOrientation(wxAUI_TBTOOL_TEXT_RIGHT); SetBackgroundStyle(wxBG_STYLE_CUSTOM); -} + return true; +} wxAuiToolBar::~wxAuiToolBar() {