1/////////////////////////////////////////////////////////////////////////////
2// Name:        xh_spin.cpp
3// Purpose:     XRC resource for wxSpinButton
4// Author:      Bob Mitchell
5// Created:     2000/03/21
6// RCS-ID:      $Id: xh_spin.cpp 41590 2006-10-03 14:53:40Z VZ $
7// Copyright:   (c) 2000 Bob Mitchell and Verant Interactive
8// Licence:     wxWindows licence
9/////////////////////////////////////////////////////////////////////////////
10
11// For compilers that support precompilation, includes "wx.h".
12#include "wx/wxprec.h"
13
14#ifdef __BORLANDC__
15    #pragma hdrstop
16#endif
17
18#if wxUSE_XRC
19
20#include "wx/xrc/xh_spin.h"
21
22#if wxUSE_SPINBTN
23
24#include "wx/spinbutt.h"
25
26IMPLEMENT_DYNAMIC_CLASS(wxSpinButtonXmlHandler, wxXmlResourceHandler)
27
28wxSpinButtonXmlHandler::wxSpinButtonXmlHandler()
29: wxXmlResourceHandler()
30{
31    XRC_ADD_STYLE(wxSP_HORIZONTAL);
32    XRC_ADD_STYLE(wxSP_VERTICAL);
33    XRC_ADD_STYLE(wxSP_ARROW_KEYS);
34    XRC_ADD_STYLE(wxSP_WRAP);
35    AddWindowStyles();
36}
37
38wxObject *wxSpinButtonXmlHandler::DoCreateResource()
39{
40    XRC_MAKE_INSTANCE(control, wxSpinButton)
41
42    control->Create(m_parentAsWindow,
43                    GetID(),
44                    GetPosition(), GetSize(),
45                    GetStyle(wxT("style"), wxSP_VERTICAL | wxSP_ARROW_KEYS),
46                    GetName());
47
48    control->SetValue(GetLong( wxT("value"), wxSP_DEFAULT_VALUE));
49    control->SetRange(GetLong( wxT("min"), wxSP_DEFAULT_MIN),
50                      GetLong(wxT("max"), wxSP_DEFAULT_MAX));
51    SetupWindow(control);
52
53    return control;
54}
55
56bool wxSpinButtonXmlHandler::CanHandle(wxXmlNode *node)
57{
58    return IsOfClass(node, wxT("wxSpinButton"));
59}
60
61#endif // wxUSE_SPINBTN
62
63#if wxUSE_SPINCTRL
64
65#include "wx/spinctrl.h"
66
67IMPLEMENT_DYNAMIC_CLASS(wxSpinCtrlXmlHandler, wxXmlResourceHandler)
68
69wxSpinCtrlXmlHandler::wxSpinCtrlXmlHandler()
70: wxXmlResourceHandler()
71{
72    XRC_ADD_STYLE(wxSP_HORIZONTAL);
73    XRC_ADD_STYLE(wxSP_VERTICAL);
74    XRC_ADD_STYLE(wxSP_ARROW_KEYS);
75    XRC_ADD_STYLE(wxSP_WRAP);
76}
77
78wxObject *wxSpinCtrlXmlHandler::DoCreateResource()
79{
80    XRC_MAKE_INSTANCE(control, wxSpinCtrl)
81
82    control->Create(m_parentAsWindow,
83                    GetID(),
84                    GetText(wxT("value")),
85                    GetPosition(), GetSize(),
86                    GetStyle(wxT("style"), wxSP_ARROW_KEYS),
87                    GetLong(wxT("min"), wxSP_DEFAULT_MIN),
88                    GetLong(wxT("max"), wxSP_DEFAULT_MAX),
89                    GetLong(wxT("value"), wxSP_DEFAULT_VALUE),
90                    GetName());
91
92    SetupWindow(control);
93
94    return control;
95}
96
97bool wxSpinCtrlXmlHandler::CanHandle(wxXmlNode *node)
98{
99    return IsOfClass(node, wxT("wxSpinCtrl"));
100}
101
102#endif // wxUSE_SPINCTRL
103
104#endif // wxUSE_XRC
105