X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b5d6954b87d910969226ffade9714db7429211f3..07aaf32633ecf18ec3edfbb41793a112914792d0:/src/xrc/xh_spin.cpp diff --git a/src/xrc/xh_spin.cpp b/src/xrc/xh_spin.cpp index 3888c6daa3..d9b1f4ef77 100644 --- a/src/xrc/xh_spin.cpp +++ b/src/xrc/xh_spin.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: xh_spin.cpp +// Name: src/xrc/xh_spin.cpp // Purpose: XRC resource for wxSpinButton // Author: Bob Mitchell // Created: 2000/03/21 @@ -7,10 +7,6 @@ // Copyright: (c) 2000 Bob Mitchell and Verant Interactive // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "xh_spin.h" -#endif // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -19,40 +15,48 @@ #pragma hdrstop #endif +#if wxUSE_XRC + #include "wx/xrc/xh_spin.h" -#include "wx/spinctrl.h" #if wxUSE_SPINBTN -wxSpinButtonXmlHandler::wxSpinButtonXmlHandler() -: wxXmlResourceHandler() +#include "wx/spinbutt.h" + +static const long DEFAULT_VALUE = 0; +static const long DEFAULT_MIN = 0; +static const long DEFAULT_MAX = 100; + +IMPLEMENT_DYNAMIC_CLASS(wxSpinButtonXmlHandler, wxXmlResourceHandler) + +wxSpinButtonXmlHandler::wxSpinButtonXmlHandler() +: wxXmlResourceHandler() { - ADD_STYLE( wxSP_HORIZONTAL ); - ADD_STYLE( wxSP_VERTICAL ); - ADD_STYLE( wxSP_ARROW_KEYS ); - ADD_STYLE( wxSP_WRAP ); + XRC_ADD_STYLE(wxSP_HORIZONTAL); + XRC_ADD_STYLE(wxSP_VERTICAL); + XRC_ADD_STYLE(wxSP_ARROW_KEYS); + XRC_ADD_STYLE(wxSP_WRAP); AddWindowStyles(); } wxObject *wxSpinButtonXmlHandler::DoCreateResource() -{ - wxSpinButton *control = new wxSpinButton(m_parentAsWindow, - GetID(), - GetPosition(), GetSize(), - GetStyle( wxT("style"), wxSP_VERTICAL | wxSP_ARROW_KEYS ), - GetName() - ); - - control->SetValue( GetLong( wxT("value"), wxSP_DEFAULT_VALUE) ); - control->SetRange( GetLong( wxT("min"), wxSP_DEFAULT_MIN), - GetLong( wxT("max"), wxSP_DEFAULT_MAX) ); +{ + XRC_MAKE_INSTANCE(control, wxSpinButton) + + control->Create(m_parentAsWindow, + GetID(), + GetPosition(), GetSize(), + GetStyle(wxT("style"), wxSP_VERTICAL | wxSP_ARROW_KEYS), + GetName()); + + control->SetValue(GetLong( wxT("value"), DEFAULT_VALUE)); + control->SetRange(GetLong( wxT("min"), DEFAULT_MIN), + GetLong(wxT("max"), DEFAULT_MAX)); SetupWindow(control); - + return control; } - - bool wxSpinButtonXmlHandler::CanHandle(wxXmlNode *node) { return IsOfClass(node, wxT("wxSpinButton")); @@ -62,38 +66,50 @@ bool wxSpinButtonXmlHandler::CanHandle(wxXmlNode *node) #if wxUSE_SPINCTRL -wxSpinCtrlXmlHandler::wxSpinCtrlXmlHandler() -: wxXmlResourceHandler() +#include "wx/spinctrl.h" + +IMPLEMENT_DYNAMIC_CLASS(wxSpinCtrlXmlHandler, wxXmlResourceHandler) + +wxSpinCtrlXmlHandler::wxSpinCtrlXmlHandler() +: wxXmlResourceHandler() { - ADD_STYLE( wxSP_HORIZONTAL ); - ADD_STYLE( wxSP_VERTICAL ); - ADD_STYLE( wxSP_ARROW_KEYS ); - ADD_STYLE( wxSP_WRAP ); + XRC_ADD_STYLE(wxSP_HORIZONTAL); + XRC_ADD_STYLE(wxSP_VERTICAL); + XRC_ADD_STYLE(wxSP_ARROW_KEYS); + XRC_ADD_STYLE(wxSP_WRAP); + XRC_ADD_STYLE(wxALIGN_LEFT); + XRC_ADD_STYLE(wxALIGN_CENTER); + XRC_ADD_STYLE(wxALIGN_RIGHT); } wxObject *wxSpinCtrlXmlHandler::DoCreateResource() -{ - wxSpinCtrl *control = new wxSpinCtrl(m_parentAsWindow, - GetID(), - GetText(wxT("value")), - GetPosition(), GetSize(), - GetStyle( wxT("style"), wxSP_ARROW_KEYS ), - GetLong( wxT("min"), wxSP_DEFAULT_MIN), - GetLong( wxT("max"), wxSP_DEFAULT_MAX), - GetLong( wxT("value"), wxSP_DEFAULT_VALUE), - GetName() - ); +{ + XRC_MAKE_INSTANCE(control, wxSpinCtrl) + + control->Create(m_parentAsWindow, + GetID(), + GetText(wxT("value")), + GetPosition(), GetSize(), + GetStyle(wxT("style"), wxSP_ARROW_KEYS | wxALIGN_RIGHT), + GetLong(wxT("min"), DEFAULT_MIN), + GetLong(wxT("max"), DEFAULT_MAX), + GetLong(wxT("value"), DEFAULT_VALUE), + GetName()); + + const long base = GetLong(wxS("base"), 10); + if ( base != 10 ) + control->SetBase(base); SetupWindow(control); - + return control; } - - bool wxSpinCtrlXmlHandler::CanHandle(wxXmlNode *node) { return IsOfClass(node, wxT("wxSpinCtrl")); } #endif // wxUSE_SPINCTRL + +#endif // wxUSE_XRC