]> git.saurik.com Git - wxWidgets.git/commitdiff
Add wxAuiToolBar::Create().
authorVadim Zeitlin <vadim@wxwidgets.org>
Sat, 27 Oct 2012 01:27:19 +0000 (01:27 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sat, 27 Oct 2012 01:27:19 +0000 (01:27 +0000)
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

include/wx/aui/auibar.h
interface/wx/aui/auibar.h
src/aui/auibar.cpp

index 8f28232d340cbe07c1ea9d771719281ce7a0254b..9eb7fc6eae89a8321c59972e5ec2240fa3c9eb1c 100644 (file)
@@ -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),
index 303a14ba0f0b96a0b39181092b9355b4ee239d25..e02e3cd785a6e7ce29588f7ad70327622a13e800 100644 (file)
@@ -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);
index b18adb34405325034cf7a7ad5756771eb9418472..b145f100afb76ccd285404af1824725264eb848b 100644 (file)
@@ -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()
 {