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();
|
||||
virtual wxObject *DoCreateResource();
|
||||
virtual bool CanHandle(wxXmlNode *node);
|
||||
|
||||
protected:
|
||||
virtual void DoCreateToggleButton(wxObject *control);
|
||||
virtual void DoCreateBitmapToggleButton(wxObject *control);
|
||||
};
|
||||
|
||||
#endif // wxUSE_XRC && wxUSE_TOGGLEBTN
|
||||
|
@@ -33,25 +33,74 @@ wxToggleButtonXmlHandler::wxToggleButtonXmlHandler()
|
||||
|
||||
wxObject *wxToggleButtonXmlHandler::DoCreateResource()
|
||||
{
|
||||
XRC_MAKE_INSTANCE(control, wxToggleButton)
|
||||
|
||||
control->Create(m_parentAsWindow,
|
||||
GetID(),
|
||||
GetText(wxT("label")),
|
||||
GetPosition(), GetSize(),
|
||||
GetStyle(),
|
||||
wxDefaultValidator,
|
||||
GetName());
|
||||
wxObject *control = m_instance;
|
||||
|
||||
control->SetValue(GetBool( wxT("checked")));
|
||||
SetupWindow(control);
|
||||
#if !defined(__WXUNIVERSAL__) && !defined(__WXMOTIF__) && !defined(__WXPALMOS__) && !defined(__WXPM__)
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
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
|
||||
|
Reference in New Issue
Block a user