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
{
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),

View 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);

View 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()
{