]> git.saurik.com Git - wxWidgets.git/commitdiff
wxGTK::wxSpinCtrl API synchronised with wxMSW
authorVadim Zeitlin <vadim@wxwidgets.org>
Thu, 28 Oct 1999 13:04:45 +0000 (13:04 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Thu, 28 Oct 1999 13:04:45 +0000 (13:04 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4243 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/gtk/spinctrl.h
include/wx/gtk1/spinctrl.h
src/gtk/spinctrl.cpp
src/gtk1/spinctrl.cpp

index b3a0d0cdd66493b6e1c82b1c166425ba9ba177f3..c2afe4645c16493b46af40b78460e26423b8c51e 100644 (file)
@@ -16,7 +16,7 @@
 #endif
 
 //-----------------------------------------------------------------------------
-// wxSpinButton
+// wxSpinCtrl
 //-----------------------------------------------------------------------------
 
 class wxSpinCtrl : public wxControl
@@ -25,29 +25,34 @@ public:
     wxSpinCtrl() {}
     wxSpinCtrl(wxWindow *parent,
                wxWindowID id = -1,
+               const wxString& value = wxEmptyString,
                const wxPoint& pos = wxDefaultPosition,
                const wxSize& size = wxDefaultSize,
                long style = wxSP_ARROW_KEYS,
                int min = 0, int max = 100, int initial = 0,
                const wxString& name = _T("wxSpinCtrl"))
     {
-        Create(parent, id, pos, size, style, min, max, initial, name);
+        Create(parent, id, value, pos, size, style, min, max, initial, name);
     }
 
     bool Create(wxWindow *parent,
                 wxWindowID id = -1,
+                const wxString& value = wxEmptyString,
                 const wxPoint& pos = wxDefaultPosition,
                 const wxSize& size = wxDefaultSize,
                 long style = wxSP_ARROW_KEYS,
                 int min = 0, int max = 100, int initial = 0,
                 const wxString& name = _T("wxSpinCtrl"));
 
+    void SetValue(const wxString& text);
+
     virtual int GetValue() const;
     virtual void SetValue( int value );
     virtual void SetRange( int minVal, int maxVal );
     virtual int GetMin() const;
     virtual int GetMax() const;
 
+    // implementation
     bool IsOwnGtkWindow( GdkWindow *window );
     void ApplyWidgetStyle();
 
index b3a0d0cdd66493b6e1c82b1c166425ba9ba177f3..c2afe4645c16493b46af40b78460e26423b8c51e 100644 (file)
@@ -16,7 +16,7 @@
 #endif
 
 //-----------------------------------------------------------------------------
-// wxSpinButton
+// wxSpinCtrl
 //-----------------------------------------------------------------------------
 
 class wxSpinCtrl : public wxControl
@@ -25,29 +25,34 @@ public:
     wxSpinCtrl() {}
     wxSpinCtrl(wxWindow *parent,
                wxWindowID id = -1,
+               const wxString& value = wxEmptyString,
                const wxPoint& pos = wxDefaultPosition,
                const wxSize& size = wxDefaultSize,
                long style = wxSP_ARROW_KEYS,
                int min = 0, int max = 100, int initial = 0,
                const wxString& name = _T("wxSpinCtrl"))
     {
-        Create(parent, id, pos, size, style, min, max, initial, name);
+        Create(parent, id, value, pos, size, style, min, max, initial, name);
     }
 
     bool Create(wxWindow *parent,
                 wxWindowID id = -1,
+                const wxString& value = wxEmptyString,
                 const wxPoint& pos = wxDefaultPosition,
                 const wxSize& size = wxDefaultSize,
                 long style = wxSP_ARROW_KEYS,
                 int min = 0, int max = 100, int initial = 0,
                 const wxString& name = _T("wxSpinCtrl"));
 
+    void SetValue(const wxString& text);
+
     virtual int GetValue() const;
     virtual void SetValue( int value );
     virtual void SetRange( int minVal, int maxVal );
     virtual int GetMin() const;
     virtual int GetMax() const;
 
+    // implementation
     bool IsOwnGtkWindow( GdkWindow *window );
     void ApplyWidgetStyle();
 
index bf19e510026d5f3e0873b61229d7bd5f8425aa8b..7b40f4ccbea4bb90353206055d76b99cadb5977a 100644 (file)
@@ -86,10 +86,11 @@ static void gtk_spinctrl_callback( GtkWidget *WXUNUSED(widget), wxSpinCtrl *win
 IMPLEMENT_DYNAMIC_CLASS(wxSpinCtrl,wxControl)
 
 bool wxSpinCtrl::Create(wxWindow *parent, wxWindowID id,
-                          const wxPoint& pos,  const wxSize& size,
-                          long style,
-                          int min, int max, int initial,
-                          const wxString& name)
+                        const wxString& value,
+                        const wxPoint& pos,  const wxSize& size,
+                        long style,
+                        int min, int max, int initial,
+                        const wxString& name)
 {
     m_needParent = TRUE;
 
@@ -123,6 +124,8 @@ bool wxSpinCtrl::Create(wxWindow *parent, wxWindowID id,
 
     SetBackgroundColour( parent->GetBackgroundColour() );
 
+    SetValue( value );
+
     Show( TRUE );
 
     return TRUE;
@@ -149,6 +152,23 @@ int wxSpinCtrl::GetValue() const
     return (int)ceil(m_adjust->value);
 }
 
+void wxSpinCtrl::SetValue( const wxString& value )
+{
+    wxCHECK_RET( (m_widget != NULL), wxT("invalid spin button") );
+
+    int n;
+    if ( (wxSscanf(value, wxT("%d"), &n) == 1) )
+    {
+        // a number - set it
+        SetValue(n);
+    }
+    else
+    {
+        // invalid number - set text as is (wxMSW compatible)
+        gtk_entry_set_text( GTK_ENTRY(m_widget), value.c_str() );
+    }
+}
+
 void wxSpinCtrl::SetValue( int value )
 {
     wxCHECK_RET( (m_widget != NULL), wxT("invalid spin button") );
index bf19e510026d5f3e0873b61229d7bd5f8425aa8b..7b40f4ccbea4bb90353206055d76b99cadb5977a 100644 (file)
@@ -86,10 +86,11 @@ static void gtk_spinctrl_callback( GtkWidget *WXUNUSED(widget), wxSpinCtrl *win
 IMPLEMENT_DYNAMIC_CLASS(wxSpinCtrl,wxControl)
 
 bool wxSpinCtrl::Create(wxWindow *parent, wxWindowID id,
-                          const wxPoint& pos,  const wxSize& size,
-                          long style,
-                          int min, int max, int initial,
-                          const wxString& name)
+                        const wxString& value,
+                        const wxPoint& pos,  const wxSize& size,
+                        long style,
+                        int min, int max, int initial,
+                        const wxString& name)
 {
     m_needParent = TRUE;
 
@@ -123,6 +124,8 @@ bool wxSpinCtrl::Create(wxWindow *parent, wxWindowID id,
 
     SetBackgroundColour( parent->GetBackgroundColour() );
 
+    SetValue( value );
+
     Show( TRUE );
 
     return TRUE;
@@ -149,6 +152,23 @@ int wxSpinCtrl::GetValue() const
     return (int)ceil(m_adjust->value);
 }
 
+void wxSpinCtrl::SetValue( const wxString& value )
+{
+    wxCHECK_RET( (m_widget != NULL), wxT("invalid spin button") );
+
+    int n;
+    if ( (wxSscanf(value, wxT("%d"), &n) == 1) )
+    {
+        // a number - set it
+        SetValue(n);
+    }
+    else
+    {
+        // invalid number - set text as is (wxMSW compatible)
+        gtk_entry_set_text( GTK_ENTRY(m_widget), value.c_str() );
+    }
+}
+
 void wxSpinCtrl::SetValue( int value )
 {
     wxCHECK_RET( (m_widget != NULL), wxT("invalid spin button") );