X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/409c9842c71df526bcfbf1cf5ce80067b09d4d97..2d4957f2401a8814f90cda21ef945d99bc74596e:/include/wx/os2/spinctrl.h diff --git a/include/wx/os2/spinctrl.h b/include/wx/os2/spinctrl.h index c6bfbf2889..5a0983870b 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(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,33 +27,103 @@ 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 = -1 + ,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 = -1 + ,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; - 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")); + 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 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; + + // + // The handler for wxSpinButton events + // + void OnSpinChange(wxSpinEvent& rEvent); + void OnChar(wxKeyEvent& rEvent); + void OnSetFocus(wxFocusEvent& rEvent); - WXHWND m_hwndBuddy; + WXHWND m_hWndBuddy; + static wxArraySpins m_svAllSpins; +private: DECLARE_DYNAMIC_CLASS(wxSpinCtrl) -}; + DECLARE_EVENT_TABLE() +}; // end of CLASS wxSpinCtrl #endif // _WX_MSW_SPINCTRL_H_