wxWidgets/include/wx/univ/spinbutt.h
Vadim Zeitlin 3f66f6a5b3 Remove all lines containing cvs/svn "$Id$" keyword.
This keyword is not expanded by Git which means it's not replaced with the
correct revision value in the releases made using git-based scripts and it's
confusing to have lines with unexpanded "$Id$" in the released files. As
expanding them with Git is not that simple (it could be done with git archive
and export-subst attribute) and there are not many benefits in having them in
the first place, just remove all these lines.

If nothing else, this will make an eventual transition to Git simpler.

Closes #14487.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74602 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-26 16:02:46 +00:00

122 lines
4.4 KiB
C++

///////////////////////////////////////////////////////////////////////////////
// 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_