home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / wxos2240.zip / wxWindows-2.4.0 / include / wx / os2 / spinctrl.h < prev    next >
C/C++ Source or Header  |  2002-08-30  |  5KB  |  130 lines

  1. /////////////////////////////////////////////////////////////////////////////
  2. // Name:        msw/spinctrl.h
  3. // Purpose:     wxSpinCtrl class declaration for Win32
  4. // Author:      David Webster
  5. // Modified by:
  6. // Created:     10/15/99
  7. // RCS-ID:      $Id: SPINCTRL.H,v 1.5 2002/08/30 21:20:42 DW Exp $
  8. // Copyright:   (c) David Webster
  9. // Licence:     wxWindows licence
  10. /////////////////////////////////////////////////////////////////////////////
  11.  
  12. #ifndef _WX_MSW_SPINCTRL_H_
  13. #define _WX_MSW_SPINCTRL_H_
  14.  
  15. #include "wx/spinbutt.h"    // the base class
  16. #include "wx/dynarray.h"
  17. class WXDLLEXPORT wxSpinCtrl;
  18. WX_DEFINE_EXPORTED_ARRAY(wxSpinCtrl *, wxArraySpins);
  19.  
  20. // ----------------------------------------------------------------------------
  21. // Under Win32 and OS2 PM, wxSpinCtrl is a wxSpinButton with a buddy
  22. // text window whose contents is automatically updated when the spin
  23. // control is clicked.
  24. // ----------------------------------------------------------------------------
  25.  
  26. class WXDLLEXPORT wxSpinCtrl : public wxSpinButton
  27. {
  28. public:
  29.     wxSpinCtrl() { }
  30.     wxSpinCtrl( wxWindow*       pParent
  31.                ,wxWindowID      vId = -1
  32.                ,const wxString& rsValue = wxEmptyString
  33.                ,const wxPoint&  rPos = wxDefaultPosition
  34.                ,const wxSize&   rSize = wxDefaultSize
  35.                ,long            lStyle = wxSP_ARROW_KEYS
  36.                ,int             nMin = 0
  37.                ,int             nMax = 100
  38.                ,int             nInitial = 0
  39.                ,const wxString& rsName = _T("wxSpinCtrl")
  40.               )
  41.     {
  42.         Create(pParent, vId, rsValue, rPos, rSize, lStyle, nMin, nMax, nInitial, rsName);
  43.     }
  44.     virtual ~wxSpinCtrl();
  45.  
  46.     bool Create(wxWindow*       pParent
  47.                ,wxWindowID      vId = -1
  48.                ,const wxString& rsValue = wxEmptyString
  49.                ,const wxPoint&  rPos = wxDefaultPosition
  50.                ,const wxSize&   rSize = wxDefaultSize
  51.                ,long            lStyle = wxSP_ARROW_KEYS
  52.                ,int             nMin = 0
  53.                ,int             nMax = 100
  54.                ,int             nInitial = 0
  55.                ,const wxString& rsName = _T("wxSpinCtrl")
  56.               );
  57.  
  58.     //
  59.     // A wxTextCtrl-like method (but we can't have GetValue returning wxString
  60.     // because the base class already has one returning int!)
  61.     //
  62.     void SetValue(const wxString& rsText);
  63.  
  64.     //
  65.     // implementation only from now on
  66.     // -------------------------------
  67.     //
  68.     virtual        bool Enable(bool bEnable = TRUE);
  69.  
  70.            virtual int  GetValue(void) const;
  71.  
  72.            virtual bool SetFont(const wxFont &rFont);
  73.            virtual void SetFocus(void);
  74.     inline virtual void SetValue(int nVal) { wxSpinButton::SetValue(nVal); }
  75.                    void SetSelection( long lFrom
  76.                                      ,long lTo
  77.                                     );
  78.  
  79.            virtual bool Show(bool bShow = TRUE);
  80.  
  81.     //
  82.     // wxSpinButton doesn't accept focus, but we do
  83.     //
  84.     inline virtual bool AcceptsFocus(void) const { return FALSE; }
  85.  
  86.     //
  87.     // Return the spinctrl object whose buddy is the given window or NULL
  88.     // Doesn't really do much under OS/2
  89.     //
  90.     static wxSpinCtrl*  GetSpinForTextCtrl(WXHWND hWndBuddy);
  91.  
  92.     //
  93.     // Process a WM_COMMAND generated by the buddy text control
  94.     //
  95.     bool ProcessTextCommand( WXWORD wCmd
  96.                             ,WXWORD wId
  97.                            );
  98.  
  99. protected:
  100.     virtual void          DoGetPosition( int* nlX
  101.                                         ,int* nlY
  102.                                        ) const;
  103.     void                  DoMoveWindow( int nX
  104.                                        ,int nY
  105.                                        ,int nWidth
  106.                                        ,int nHeight
  107.                                       );
  108.     virtual wxSize        DoGetBestSize(void) const;
  109.     virtual void          DoGetSize( int* pnWidth
  110.                                     ,int* pnHeight
  111.                                    ) const;
  112.  
  113.     //
  114.     // The handler for wxSpinButton events
  115.     //
  116.     void OnSpinChange(wxSpinEvent& rEvent);
  117.     void OnChar(wxKeyEvent& rEvent);
  118.  
  119.     WXHWND                          m_hWndBuddy;
  120.     static wxArraySpins             m_svAllSpins;
  121.  
  122. private:
  123.     DECLARE_DYNAMIC_CLASS(wxSpinCtrl)
  124.     DECLARE_EVENT_TABLE()
  125. }; // end of CLASS wxSpinCtrl
  126.  
  127. #endif // _WX_MSW_SPINCTRL_H_
  128.  
  129.  
  130.