]> git.saurik.com Git - wxWidgets.git/blobdiff - src/xrc/xh_spin.cpp
use popen() instead of wxExecute(), it works inside wxYield() unlike the latter
[wxWidgets.git] / src / xrc / xh_spin.cpp
index 3940024ef0de86633d08e35bb1a19e9c52e6c892..616537b27cd0e8c2654b64b4fe860c42b16d8cc3 100644 (file)
@@ -7,8 +7,8 @@
 // Copyright:   (c) 2000 Bob Mitchell and Verant Interactive
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 // Copyright:   (c) 2000 Bob Mitchell and Verant Interactive
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
-#ifdef __GNUG__
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
 #pragma implementation "xh_spin.h"
 #endif
 
 #pragma implementation "xh_spin.h"
 #endif
 
     #pragma hdrstop
 #endif
 
     #pragma hdrstop
 #endif
 
+#if wxUSE_XRC
+
 #include "wx/xrc/xh_spin.h"
 #include "wx/xrc/xh_spin.h"
-#include "wx/spinctrl.h"
 
 #if wxUSE_SPINBTN
 
 
 #if wxUSE_SPINBTN
 
-wxSpinButtonXmlHandler::wxSpinButtonXmlHandler() 
-: wxXmlResourceHandler() 
+#include "wx/spinbutt.h"
+
+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()
     AddWindowStyles();
 }
 
 wxObject *wxSpinButtonXmlHandler::DoCreateResource()
-{ 
-    wxSpinButton *control = wxStaticCast(m_instance, wxSpinButton);
-
-    if (!control)
-       control = new wxSpinButton;
+{
+    XRC_MAKE_INSTANCE(control, wxSpinButton)
 
     control->Create(m_parentAsWindow,
                     GetID(),
 
     control->Create(m_parentAsWindow,
                     GetID(),
@@ -47,16 +49,14 @@ wxObject *wxSpinButtonXmlHandler::DoCreateResource()
                     GetStyle(wxT("style"), wxSP_VERTICAL | wxSP_ARROW_KEYS),
                     GetName());
 
                     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) );
+    control->SetValue(GetLong( wxT("value"), wxSP_DEFAULT_VALUE));
+    control->SetRange(GetLong( wxT("min"), wxSP_DEFAULT_MIN),
+                      GetLong(wxT("max"), wxSP_DEFAULT_MAX));
     SetupWindow(control);
     SetupWindow(control);
-    
+
     return control;
 }
 
     return control;
 }
 
-
-
 bool wxSpinButtonXmlHandler::CanHandle(wxXmlNode *node)
 {
     return IsOfClass(node, wxT("wxSpinButton"));
 bool wxSpinButtonXmlHandler::CanHandle(wxXmlNode *node)
 {
     return IsOfClass(node, wxT("wxSpinButton"));
@@ -66,38 +66,43 @@ bool wxSpinButtonXmlHandler::CanHandle(wxXmlNode *node)
 
 #if wxUSE_SPINCTRL
 
 
 #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);
 }
 
 wxObject *wxSpinCtrlXmlHandler::DoCreateResource()
 }
 
 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),
+                    GetLong(wxT("min"), wxSP_DEFAULT_MIN),
+                    GetLong(wxT("max"), wxSP_DEFAULT_MAX),
+                    GetLong(wxT("value"), wxSP_DEFAULT_VALUE),
+                    GetName());
 
     SetupWindow(control);
 
     SetupWindow(control);
-    
+
     return control;
 }
 
     return control;
 }
 
-
-
 bool wxSpinCtrlXmlHandler::CanHandle(wxXmlNode *node)
 {
     return IsOfClass(node, wxT("wxSpinCtrl"));
 }
 
 #endif // wxUSE_SPINCTRL
 bool wxSpinCtrlXmlHandler::CanHandle(wxXmlNode *node)
 {
     return IsOfClass(node, wxT("wxSpinCtrl"));
 }
 
 #endif // wxUSE_SPINCTRL
+
+#endif // wxUSE_XRC