1 /////////////////////////////////////////////////////////////////////////////
2 // Name:        wx/gtk1/spinctrl.h
3 // Purpose:     wxSpinCtrl class
4 // Author:      Robert Roebling
5 // Modified by:
6 // Copyright:   (c) Robert Roebling
7 // Licence:     wxWindows licence
8 /////////////////////////////////////////////////////////////////////////////
9 
10 #ifndef __GTKSPINCTRLH__
11 #define __GTKSPINCTRLH__
12 
13 #include "wx/defs.h"
14 
15 #if wxUSE_SPINCTRL
16 
17 #include "wx/control.h"
18 
19 //-----------------------------------------------------------------------------
20 // wxSpinCtrl
21 //-----------------------------------------------------------------------------
22 
23 class WXDLLIMPEXP_CORE wxSpinCtrl : public wxControl
24 {
25 public:
wxSpinCtrl()26     wxSpinCtrl() {}
27     wxSpinCtrl(wxWindow *parent,
28                wxWindowID id = -1,
29                const wxString& value = wxEmptyString,
30                const wxPoint& pos = wxDefaultPosition,
31                const wxSize& size = wxDefaultSize,
32                long style = wxSP_ARROW_KEYS,
33                int min = 0, int max = 100, int initial = 0,
34                const wxString& name = wxT("wxSpinCtrl"))
35     {
36         Create(parent, id, value, pos, size, style, min, max, initial, name);
37     }
38 
39     bool Create(wxWindow *parent,
40                 wxWindowID id = -1,
41                 const wxString& value = wxEmptyString,
42                 const wxPoint& pos = wxDefaultPosition,
43                 const wxSize& size = wxDefaultSize,
44                 long style = wxSP_ARROW_KEYS,
45                 int min = 0, int max = 100, int initial = 0,
46                 const wxString& name = wxT("wxSpinCtrl"));
47 
48     void SetValue(const wxString& text);
49     void SetSelection(long from, long to);
50 
51     virtual int GetValue() const;
52     virtual void SetValue( int value );
53     virtual void SetRange( int minVal, int maxVal );
54     virtual int GetMin() const;
55     virtual int GetMax() const;
56 
57     static wxVisualAttributes
58     GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
59 
60     // implementation
61     void OnChar( wxKeyEvent &event );
62 
63     bool IsOwnGtkWindow( GdkWindow *window );
64     void GtkDisableEvents();
65     void GtkEnableEvents();
66 
67     GtkAdjustment  *m_adjust;
68     float           m_oldPos;
69 
GetBase()70     virtual int GetBase() const { return m_base; }
71     virtual bool SetBase(int base);
72 
73  protected:
74     virtual wxSize DoGetBestSize() const;
75 
76     // Widgets that use the style->base colour for the BG colour should
77     // override this and return true.
UseGTKStyleBase()78     virtual bool UseGTKStyleBase() const { return true; }
79 
80 private:
81     // Common part of all ctors.
Init()82     void Init()
83     {
84         m_base = 10;
85     }
86 
87     int m_base;
88 
89     DECLARE_DYNAMIC_CLASS(wxSpinCtrl)
90     DECLARE_EVENT_TABLE()
91 };
92 
93 #endif
94     // wxUSE_SPINCTRL
95 
96 #endif
97     // __GTKSPINCTRLH__
98