X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/409c9842c71df526bcfbf1cf5ce80067b09d4d97..1d421f0c396c4b29cc2e7a867845284a4108d3c0:/include/wx/os2/spinctrl.h?ds=sidebyside diff --git a/include/wx/os2/spinctrl.h b/include/wx/os2/spinctrl.h index c6bfbf2889..8e7feec3a4 100644 --- a/include/wx/os2/spinctrl.h +++ b/include/wx/os2/spinctrl.h @@ -13,9 +13,12 @@ #define _WX_MSW_SPINCTRL_H_ #include "wx/spinbutt.h" // the base class +#include "wx/dynarray.h" +class WXDLLEXPORT wxSpinCtrl; +WX_DEFINE_EXPORTED_ARRAY_PTR(wxSpinCtrl *, wxArraySpins); // ---------------------------------------------------------------------------- -// Under Win32 and OS2 PM, wxSpinCtrl is a wxSpinButton with a buddy +// Under Win32 and OS2 PM, wxSpinCtrl is a wxSpinButton with a buddy // text window whose contents is automatically updated when the spin // control is clicked. // ---------------------------------------------------------------------------- @@ -24,34 +27,102 @@ class WXDLLEXPORT wxSpinCtrl : public wxSpinButton { public: wxSpinCtrl() { } - - wxSpinCtrl(wxWindow *parent, - wxWindowID id = -1, - 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, pos, size, style, min, max, initial, name); + Create(pParent, vId, rsValue, rPos, rSize, lStyle, nMin, nMax, nInitial, rsName); } + 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& rsText); + + // + // implementation only from now on + // ------------------------------- + // + virtual bool Enable(bool bEnable = true); + + virtual int GetValue(void) const; + + virtual bool SetFont(const wxFont &rFont); + virtual void SetFocus(void); + + inline virtual void SetValue(int nVal) { wxSpinButton::SetValue(nVal); } - bool Create(wxWindow *parent, - wxWindowID id = -1, - 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 SetSelection(long lFrom, long lTo); + + virtual bool Show(bool bShow = true); + + // + // wxSpinButton doesn't accept focus, but we do + // + inline virtual bool AcceptsFocus(void) const { return false; } + + // + // 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: - void DoMoveWindow(int x, int y, int width, int height); + 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; - WXHWND m_hwndBuddy; + // + // 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_ - -