+ const wxString& name = wxT("wxSpinCtrl"));
+
+ // a wxTextCtrl-like method (but we can't have GetValue returning wxString
+ // because the base class already has one returning int!)
+ void SetValue(const wxString& text);
+
+ // another wxTextCtrl-like method
+ void SetSelection(long from, long to);
+
+ // wxSpinCtrlBase methods
+ virtual int GetBase() const;
+ virtual bool SetBase(int base);
+
+
+ // implementation only from now on
+ // -------------------------------
+
+ virtual ~wxSpinCtrl();
+
+ virtual void SetValue(int val);
+ virtual int GetValue() const;
+ virtual void SetRange(int minVal, int maxVal);
+ virtual bool SetFont(const wxFont &font);
+ virtual void SetFocus();
+
+ virtual bool Enable(bool enable = true);
+ virtual bool Show(bool show = true);
+
+ virtual bool Reparent(wxWindowBase *newParent);
+
+ // wxSpinButton doesn't accept focus, but we do
+ virtual bool AcceptsFocus() const { return wxWindow::AcceptsFocus(); }
+
+ // we're like wxTextCtrl and not (default) wxButton
+ virtual wxVisualAttributes GetDefaultAttributes() const
+ {
+ return GetClassDefaultAttributes(GetWindowVariant());
+ }
+
+ static wxVisualAttributes
+ GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL)
+ {
+ return GetCompositeControlsDefaultAttributes(variant);
+ }
+
+ // for internal use only
+
+ // get the subclassed window proc of the buddy text
+ WXFARPROC GetBuddyWndProc() const { return m_wndProcBuddy; }
+
+ // return the spinctrl object whose buddy is the given window or NULL
+ static wxSpinCtrl *GetSpinForTextCtrl(WXHWND hwndBuddy);
+
+ // process a WM_COMMAND generated by the buddy text control
+ bool ProcessTextCommand(WXWORD cmd, WXWORD id);
+
+ // recognize buddy window as part of this control at wx level
+ virtual bool ContainsHWND(WXHWND hWnd) const { return hWnd == m_hwndBuddy; }