+ virtual wxSize DoGetBestSize() const;
+ virtual wxSize DoGetSizeFromTextSize(int xlen, int ylen = -1) const;
+ virtual void DoGetSize(int *width, int *height) const;
+ virtual void DoGetClientSize(int *x, int *y) const;
+#if wxUSE_TOOLTIPS
+ virtual void DoSetToolTip( wxToolTip *tip );
+#endif // wxUSE_TOOLTIPS
+
+ virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result);
+ virtual bool MSWOnScroll(int orientation, WXWORD wParam,
+ WXWORD pos, WXHWND control);
+
+ // handle processing of special keys
+ void OnChar(wxKeyEvent& event);
+ void OnSetFocus(wxFocusEvent& event);
+ void OnKillFocus(wxFocusEvent& event);
+
+ // generate spin control update event with the given value
+ void SendSpinUpdate(int value);
+
+ // called to ensure that the value is in the correct range
+ virtual void NormalizeValue();
+
+
+ // the value of the control before the latest change (which might not have
+ // changed anything in fact -- this is why we need this field)
+ int m_oldValue;
+
+ // the data for the "buddy" text ctrl
+ WXHWND m_hwndBuddy;
+ WXFARPROC m_wndProcBuddy;
+
+ // Block text update event after SetValue()
+ bool m_blockEvent;
+
+private:
+ // Common part of all ctors.
+ void Init();
+
+ // Adjust the text control style depending on whether we need to enter only
+ // digits or may need to enter something else (e.g. "-" sign, "x"
+ // hexadecimal prefix, ...) in it.
+ void UpdateBuddyStyle();