X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a5569657a0667008c72459f3ec09d7750eb7343a..333e57d578e9e0fb6555452b5a53698ffd85ee69:/include/wx/os2/spinctrl.h diff --git a/include/wx/os2/spinctrl.h b/include/wx/os2/spinctrl.h index 7423d7e2aa..c28c645ef3 100644 --- a/include/wx/os2/spinctrl.h +++ b/include/wx/os2/spinctrl.h @@ -13,6 +13,9 @@ #define _WX_MSW_SPINCTRL_H_ #include "wx/spinbutt.h" // the base class +#include "wx/dynarray.h" +class WXDLLIMPEXP_FWD_CORE wxSpinCtrl; +WX_DEFINE_EXPORTED_ARRAY_PTR(wxSpinCtrl *, wxArraySpins); // ---------------------------------------------------------------------------- // Under Win32 and OS2 PM, wxSpinCtrl is a wxSpinButton with a buddy @@ -24,56 +27,102 @@ class WXDLLEXPORT wxSpinCtrl : public wxSpinButton { 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")) + wxSpinCtrl( wxWindow* pParent + ,wxWindowID vId = wxID_ANY + ,const wxString& rsValue = wxEmptyString + ,const wxPoint& rPos = wxDefaultPosition + ,const wxSize& rSize = wxDefaultSize + ,long lStyle = wxSP_ARROW_KEYS + ,int nMin = 0 + ,int nMax = 100 + ,int nInitial = 0 + ,const wxString& rsName = _T("wxSpinCtrl") + ) { - Create(parent, id, value, pos, size, style, min, max, initial, name); + Create(pParent, vId, rsValue, rPos, rSize, lStyle, nMin, nMax, nInitial, rsName); } - - 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")); - - // a wxTextCtrl-like method (but we can't have GetValue returning wxString + virtual ~wxSpinCtrl(); + + bool Create(wxWindow* pParent + ,wxWindowID vId = wxID_ANY + ,const wxString& rsValue = wxEmptyString + ,const wxPoint& rPos = wxDefaultPosition + ,const wxSize& rSize = wxDefaultSize + ,long lStyle = wxSP_ARROW_KEYS + ,int nMin = 0 + ,int nMax = 100 + ,int nInitial = 0 + ,const wxString& rsName = _T("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); + // + void SetValue(const wxString& rsText); + // // implementation only from now on // ------------------------------- + // + virtual bool Enable(bool bEnable = true); - virtual void SetValue(int val) { wxSpinButton::SetValue(val); } - virtual int GetValue() const; - virtual bool SetFont(const wxFont &font); + virtual int GetValue(void) const; - virtual bool Enable(bool enable = TRUE); - virtual bool Show(bool show = TRUE); -protected: - void DoMoveWindow(int x, int y, int width, int height); + virtual bool SetFont(const wxFont &rFont); + virtual void SetFocus(void); + + inline virtual void SetValue(int nVal) { wxSpinButton::SetValue(nVal); } + + void SetSelection(long lFrom, long lTo); - virtual wxSize DoGetBestSize() const; + virtual bool Show(bool bShow = true); - // the handler for wxSpinButton events - void OnSpinChange(wxSpinEvent& event); + // + // wxSpinButton doesn't accept focus, but we do + // + inline virtual bool AcceptsFocus(void) const { return false; } - WXHWND m_hwndBuddy; + // + // Return the spinctrl object whose buddy is the given window or NULL + // Doesn't really do much under OS/2 + // + static wxSpinCtrl* GetSpinForTextCtrl(WXHWND hWndBuddy); + + // + // Process a WM_COMMAND generated by the buddy text control + // + bool ProcessTextCommand( WXWORD wCmd + ,WXWORD wId + ); + +protected: + virtual void DoGetPosition( int* nlX + ,int* nlY + ) const; + void DoMoveWindow( int nX + ,int nY + ,int nWidth + ,int nHeight + ); + virtual wxSize DoGetBestSize(void) const; + virtual void DoGetSize( int* pnWidth + ,int* pnHeight + ) const; + + // + // The handler for wxSpinButton events + // + void OnSpinChange(wxSpinEvent& rEvent); + void OnChar(wxKeyEvent& rEvent); + void OnSetFocus(wxFocusEvent& rEvent); + + WXHWND m_hWndBuddy; + static wxArraySpins m_svAllSpins; private: DECLARE_DYNAMIC_CLASS(wxSpinCtrl) DECLARE_EVENT_TABLE() -}; +}; // end of CLASS wxSpinCtrl #endif // _WX_MSW_SPINCTRL_H_ - -