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
This commit is contained in:
Vadim Zeitlin
2012-10-27 01:27:19 +00:00
parent cf8ccdb270
commit 46e6720278
3 changed files with 59 additions and 20 deletions

View File

@@ -439,14 +439,26 @@ protected:
class WXDLLIMPEXP_AUI wxAuiToolBar : public wxControl class WXDLLIMPEXP_AUI wxAuiToolBar : public wxControl
{ {
public: public:
wxAuiToolBar() { Init(); }
wxAuiToolBar(wxWindow* parent, wxAuiToolBar(wxWindow* parent,
wxWindowID id = -1, wxWindowID id = wxID_ANY,
const wxPoint& position = wxDefaultPosition, const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize, 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(); 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); void SetWindowStyleFlag(long style);
long GetWindowStyleFlag() const; long GetWindowStyleFlag() const;
@@ -581,6 +593,7 @@ public:
virtual void UpdateWindowUI(long flags = wxUPDATE_UI_NONE); virtual void UpdateWindowUI(long flags = wxUPDATE_UI_NONE);
protected: protected:
void Init();
virtual void OnCustomRender(wxDC& WXUNUSED(dc), virtual void OnCustomRender(wxDC& WXUNUSED(dc),
const wxAuiToolBarItem& WXUNUSED(item), const wxAuiToolBarItem& WXUNUSED(item),

View File

@@ -596,11 +596,32 @@ public:
class wxAuiToolBar : public wxControl class wxAuiToolBar : public wxControl
{ {
public: public:
/**
Default constructor, use Create() later.
@since 2.9.5
*/
wxAuiToolBar();
/**
Constructor creating and initializing the object.
*/
wxAuiToolBar(wxWindow* parent, wxAuiToolBar(wxWindow* parent,
wxWindowID id = -1, wxWindowID id = wxID_ANY,
const wxPoint& position = wxDefaultPosition, const wxPoint& position = wxDefaultPosition,
const wxSize& size = wxDefaultSize, const wxSize& size = wxDefaultSize,
long style = wxAUI_TB_DEFAULT_STYLE); 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(); virtual ~wxAuiToolBar();
void SetWindowStyleFlag(long style); void SetWindowStyleFlag(long style);

View File

@@ -798,17 +798,7 @@ BEGIN_EVENT_TABLE(wxAuiToolBar, wxControl)
EVT_SET_CURSOR(wxAuiToolBar::OnSetCursor) EVT_SET_CURSOR(wxAuiToolBar::OnSetCursor)
END_EVENT_TABLE() END_EVENT_TABLE()
void wxAuiToolBar::Init()
wxAuiToolBar::wxAuiToolBar(wxWindow* parent,
wxWindowID id,
const wxPoint& position,
const wxSize& size,
long style)
: wxControl(parent,
id,
position,
size,
style | wxBORDER_NONE)
{ {
m_sizer = new wxBoxSizer(wxHORIZONTAL); m_sizer = new wxBoxSizer(wxHORIZONTAL);
m_buttonWidth = -1; m_buttonWidth = -1;
@@ -824,15 +814,29 @@ wxAuiToolBar::wxAuiToolBar(wxWindow* parent,
m_gripperSizerItem = NULL; m_gripperSizerItem = NULL;
m_overflowSizerItem = NULL; m_overflowSizerItem = NULL;
m_dragging = false; 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); m_orientation = GetOrientation(style);
if (m_orientation == wxBOTH) if (m_orientation == wxBOTH)
{ {
m_orientation = wxHORIZONTAL; 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); SetMargins(5, 5, 2, 2);
SetFont(*wxNORMAL_FONT); SetFont(*wxNORMAL_FONT);
SetArtFlags(); SetArtFlags();
@@ -840,8 +844,9 @@ wxAuiToolBar::wxAuiToolBar(wxWindow* parent,
if (style & wxAUI_TB_HORZ_LAYOUT) if (style & wxAUI_TB_HORZ_LAYOUT)
SetToolTextOrientation(wxAUI_TBTOOL_TEXT_RIGHT); SetToolTextOrientation(wxAUI_TBTOOL_TEXT_RIGHT);
SetBackgroundStyle(wxBG_STYLE_CUSTOM); SetBackgroundStyle(wxBG_STYLE_CUSTOM);
}
return true;
}
wxAuiToolBar::~wxAuiToolBar() wxAuiToolBar::~wxAuiToolBar()
{ {