X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3e7fb41b4bf5836a5571321619cfaaedf6844361..7344108e8a129a3f9b4df5ab0f98a1713db03b89:/include/wx/os2/spinctrl.h diff --git a/include/wx/os2/spinctrl.h b/include/wx/os2/spinctrl.h index b71c6bc271..18c478c72f 100644 --- a/include/wx/os2/spinctrl.h +++ b/include/wx/os2/spinctrl.h @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: msw/spinctrl.h +// Name: wx/os2/spinctrl.h // Purpose: wxSpinCtrl class declaration for Win32 // Author: David Webster // Modified by: @@ -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 @@ -20,40 +23,106 @@ // control is clicked. // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxSpinCtrl : public wxSpinButton +class WXDLLIMPEXP_CORE 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 = wxT("wxSpinCtrl") + ) { - Create(parent, id, value, 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 = 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& 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 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")); + 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_ - -