Applied #11755: wxBitmapToggleButton Xml Handler
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64317 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -23,6 +23,10 @@ public:
|
|||||||
wxToggleButtonXmlHandler();
|
wxToggleButtonXmlHandler();
|
||||||
virtual wxObject *DoCreateResource();
|
virtual wxObject *DoCreateResource();
|
||||||
virtual bool CanHandle(wxXmlNode *node);
|
virtual bool CanHandle(wxXmlNode *node);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual void DoCreateToggleButton(wxObject *control);
|
||||||
|
virtual void DoCreateBitmapToggleButton(wxObject *control);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // wxUSE_XRC && wxUSE_TOGGLEBTN
|
#endif // wxUSE_XRC && wxUSE_TOGGLEBTN
|
||||||
|
@@ -33,25 +33,74 @@ wxToggleButtonXmlHandler::wxToggleButtonXmlHandler()
|
|||||||
|
|
||||||
wxObject *wxToggleButtonXmlHandler::DoCreateResource()
|
wxObject *wxToggleButtonXmlHandler::DoCreateResource()
|
||||||
{
|
{
|
||||||
XRC_MAKE_INSTANCE(control, wxToggleButton)
|
|
||||||
|
|
||||||
control->Create(m_parentAsWindow,
|
wxObject *control = m_instance;
|
||||||
GetID(),
|
|
||||||
GetText(wxT("label")),
|
|
||||||
GetPosition(), GetSize(),
|
|
||||||
GetStyle(),
|
|
||||||
wxDefaultValidator,
|
|
||||||
GetName());
|
|
||||||
|
|
||||||
control->SetValue(GetBool( wxT("checked")));
|
#if !defined(__WXUNIVERSAL__) && !defined(__WXMOTIF__) && !defined(__WXPALMOS__) && !defined(__WXPM__)
|
||||||
SetupWindow(control);
|
|
||||||
|
if (m_class == wxT("wxBitmapToggleButton"))
|
||||||
|
{
|
||||||
|
if (!control)
|
||||||
|
control = new wxBitmapToggleButton;
|
||||||
|
|
||||||
|
DoCreateBitmapToggleButton(control);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
if (!control)
|
||||||
|
control = new wxToggleButton;
|
||||||
|
|
||||||
|
DoCreateToggleButton(control);
|
||||||
|
}
|
||||||
|
|
||||||
|
SetupWindow(wxDynamicCast(control, wxWindow));
|
||||||
|
|
||||||
return control;
|
return control;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxToggleButtonXmlHandler::CanHandle(wxXmlNode *node)
|
bool wxToggleButtonXmlHandler::CanHandle(wxXmlNode *node)
|
||||||
{
|
{
|
||||||
return IsOfClass(node, wxT("wxToggleButton"));
|
return (
|
||||||
|
IsOfClass(node, wxT("wxToggleButton")) ||
|
||||||
|
IsOfClass(node, wxT("wxBitmapToggleButton"))
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxToggleButtonXmlHandler::DoCreateToggleButton(wxObject *control)
|
||||||
|
{
|
||||||
|
wxToggleButton *button = wxDynamicCast(control, wxToggleButton);
|
||||||
|
|
||||||
|
wxString label = GetText(wxT("label"));
|
||||||
|
|
||||||
|
button->Create(m_parentAsWindow,
|
||||||
|
GetID(),
|
||||||
|
#if defined(__WXUNIVERSAL__)
|
||||||
|
!label.empty() ? label : GetBitmap(wxT("bitmap"), wxART_BUTTON),
|
||||||
|
#else
|
||||||
|
label,
|
||||||
|
#endif
|
||||||
|
GetPosition(), GetSize(),
|
||||||
|
GetStyle(),
|
||||||
|
wxDefaultValidator,
|
||||||
|
GetName());
|
||||||
|
|
||||||
|
button->SetValue(GetBool( wxT("checked")));
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxToggleButtonXmlHandler::DoCreateBitmapToggleButton(wxObject *control)
|
||||||
|
{
|
||||||
|
wxBitmapToggleButton *button = wxDynamicCast(control, wxBitmapToggleButton);
|
||||||
|
|
||||||
|
button->Create(m_parentAsWindow,
|
||||||
|
GetID(),
|
||||||
|
GetBitmap(wxT("bitmap"), wxART_BUTTON),
|
||||||
|
GetPosition(), GetSize(),
|
||||||
|
GetStyle(),
|
||||||
|
wxDefaultValidator,
|
||||||
|
GetName());
|
||||||
|
|
||||||
|
button->SetValue(GetBool( wxT("checked")));
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // wxUSE_XRC && wxUSE_TOGGLEBTN
|
#endif // wxUSE_XRC && wxUSE_TOGGLEBTN
|
||||||
|
Reference in New Issue
Block a user