| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 | 
							- ///////////////////////////////////////////////////////////////////////////////
 
- // Name:        wx/univ/spinbutt.h
 
- // Purpose:     universal version of wxSpinButton
 
- // Author:      Vadim Zeitlin
 
- // Modified by:
 
- // Created:     21.01.01
 
- // Copyright:   (c) 2001 SciTech Software, Inc. (www.scitechsoft.com)
 
- // Licence:     wxWindows licence
 
- ///////////////////////////////////////////////////////////////////////////////
 
- #ifndef _WX_UNIV_SPINBUTT_H_
 
- #define _WX_UNIV_SPINBUTT_H_
 
- #include "wx/univ/scrarrow.h"
 
- // ----------------------------------------------------------------------------
 
- // wxSpinButton
 
- // ----------------------------------------------------------------------------
 
- // actions supported by this control
 
- #define wxACTION_SPIN_INC    wxT("inc")
 
- #define wxACTION_SPIN_DEC    wxT("dec")
 
- class WXDLLIMPEXP_CORE wxSpinButton : public wxSpinButtonBase,
 
-                                  public wxControlWithArrows
 
- {
 
- public:
 
-     wxSpinButton();
 
-     wxSpinButton(wxWindow *parent,
 
-                  wxWindowID id = wxID_ANY,
 
-                  const wxPoint& pos = wxDefaultPosition,
 
-                  const wxSize& size = wxDefaultSize,
 
-                  long style = wxSP_VERTICAL | wxSP_ARROW_KEYS,
 
-                  const wxString& name = wxSPIN_BUTTON_NAME);
 
-     bool Create(wxWindow *parent,
 
-                 wxWindowID id = wxID_ANY,
 
-                 const wxPoint& pos = wxDefaultPosition,
 
-                 const wxSize& size = wxDefaultSize,
 
-                 long style = wxSP_VERTICAL | wxSP_ARROW_KEYS,
 
-                 const wxString& name = wxSPIN_BUTTON_NAME);
 
-     // implement wxSpinButtonBase methods
 
-     virtual int GetValue() const;
 
-     virtual void SetValue(int val);
 
-     virtual void SetRange(int minVal, int maxVal);
 
-     // implement wxControlWithArrows methods
 
-     virtual wxRenderer *GetRenderer() const { return m_renderer; }
 
-     virtual wxWindow *GetWindow() { return this; }
 
-     virtual bool IsVertical() const { return wxSpinButtonBase::IsVertical(); }
 
-     virtual int GetArrowState(wxScrollArrows::Arrow arrow) const;
 
-     virtual void SetArrowFlag(wxScrollArrows::Arrow arrow, int flag, bool set);
 
-     virtual bool OnArrow(wxScrollArrows::Arrow arrow);
 
-     virtual wxScrollArrows::Arrow HitTestArrow(const wxPoint& pt) const;
 
-     // for wxStdSpinButtonInputHandler
 
-     const wxScrollArrows& GetArrows() { return m_arrows; }
 
-     virtual bool PerformAction(const wxControlAction& action,
 
-                                long numArg = 0,
 
-                                const wxString& strArg = wxEmptyString);
 
-     static wxInputHandler *GetStdInputHandler(wxInputHandler *handlerDef);
 
-     virtual wxInputHandler *DoGetStdInputHandler(wxInputHandler *handlerDef)
 
-     {
 
-         return GetStdInputHandler(handlerDef);
 
-     }
 
- protected:
 
-     virtual wxSize DoGetBestClientSize() const;
 
-     virtual void DoDraw(wxControlRenderer *renderer);
 
-     virtual wxBorder GetDefaultBorder() const { return wxBORDER_NONE; }
 
-     // the common part of all ctors
 
-     void Init();
 
-     // normalize the value to fit into min..max range
 
-     int NormalizeValue(int value) const;
 
-     // change the value by +1/-1 and send the event, return true if value was
 
-     // changed
 
-     bool ChangeValue(int inc);
 
-     // get the rectangles for our 2 arrows
 
-     void CalcArrowRects(wxRect *rect1, wxRect *rect2) const;
 
-     // the current controls value
 
-     int m_value;
 
- private:
 
-     // the object which manages our arrows
 
-     wxScrollArrows m_arrows;
 
-     // the state (combination of wxCONTROL_XXX flags) of the arrows
 
-     int m_arrowsState[wxScrollArrows::Arrow_Max];
 
-     DECLARE_DYNAMIC_CLASS(wxSpinButton)
 
- };
 
- // ----------------------------------------------------------------------------
 
- // wxStdSpinButtonInputHandler: manages clicks on them (use arrows like
 
- // wxStdScrollBarInputHandler) and processes keyboard events too
 
- // ----------------------------------------------------------------------------
 
- class WXDLLIMPEXP_CORE wxStdSpinButtonInputHandler : public wxStdInputHandler
 
- {
 
- public:
 
-     wxStdSpinButtonInputHandler(wxInputHandler *inphand);
 
-     virtual bool HandleKey(wxInputConsumer *consumer,
 
-                            const wxKeyEvent& event,
 
-                            bool pressed);
 
-     virtual bool HandleMouse(wxInputConsumer *consumer,
 
-                              const wxMouseEvent& event);
 
-     virtual bool HandleMouseMove(wxInputConsumer *consumer,
 
-                                  const wxMouseEvent& event);
 
- };
 
- #endif // _WX_UNIV_SPINBUTT_H_
 
 
  |