class WXDLLIMPEXP_RIBBON wxRibbonControl : public wxControl
{
public:
- wxRibbonControl() { m_art = NULL; }
+ wxRibbonControl() { Init(); }
wxRibbonControl(wxWindow *parent, wxWindowID id,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize, long style = 0,
const wxValidator& validator = wxDefaultValidator,
- const wxString& name = wxControlNameStr);
+ const wxString& name = wxControlNameStr)
+ {
+ Init();
+
+ Create(parent, id, pos, size, style, validator, name);
+ }
+
+ bool Create(wxWindow *parent, wxWindowID id,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize, long style = 0,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxControlNameStr);
virtual void SetArtProvider(wxRibbonArtProvider* art);
wxRibbonArtProvider* GetArtProvider() const {return m_art;}
virtual wxSize DoGetNextLargerSize(wxOrientation direction,
wxSize relative_to) const;
+private:
+ void Init() { m_art = NULL; }
+
#ifndef SWIG
DECLARE_CLASS(wxRibbonControl)
#endif
wxRibbonButtonBar::wxRibbonButtonBar()
{
m_layouts_valid = false;
+ CommonInit (0);
}
wxRibbonButtonBar::wxRibbonButtonBar(wxWindow* parent,
IMPLEMENT_CLASS(wxRibbonControl, wxControl)
-wxRibbonControl::wxRibbonControl(wxWindow *parent, wxWindowID id,
+bool wxRibbonControl::Create(wxWindow *parent, wxWindowID id,
const wxPoint& pos,
const wxSize& size, long style,
const wxValidator& validator,
const wxString& name)
- : wxControl(parent, id, pos, size, style, validator, name)
{
- m_art = NULL;
+ if ( !wxControl::Create(parent, id, pos, size, style, validator, name) )
+ return false;
wxRibbonControl *ribbon_parent = wxDynamicCast(parent, wxRibbonControl);
if(ribbon_parent)
{
m_art = ribbon_parent->GetArtProvider();
}
+
+ return true;
}
void wxRibbonControl::SetArtProvider(wxRibbonArtProvider* art)
{
wxSize new_size = evt.GetSize();
- wxMemoryDC temp_dc;
- wxRect invalid_rect = m_art->GetPageBackgroundRedrawArea(temp_dc, this, m_old_size, new_size);
- Refresh(true, &invalid_rect);
+ if (m_art)
+ {
+ wxMemoryDC temp_dc;
+ wxRect invalid_rect = m_art->GetPageBackgroundRedrawArea(temp_dc, this, m_old_size, new_size);
+ Refresh(true, &invalid_rect);
+ }
m_old_size = new_size;
EVT_SIZE(wxRibbonPanel::OnSize)
END_EVENT_TABLE()
-wxRibbonPanel::wxRibbonPanel()
+wxRibbonPanel::wxRibbonPanel() : m_expanded_dummy(NULL), m_expanded_panel(NULL)
{
}