3f66f6a5b3
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
150 lines
4.7 KiB
C++
150 lines
4.7 KiB
C++
///////////////////////////////////////////////////////////////////////////////
|
|
// Name: wx/mousestate.h
|
|
// Purpose: Declaration of wxMouseState class
|
|
// Author: Vadim Zeitlin
|
|
// Created: 2008-09-19 (extracted from wx/utils.h)
|
|
// Copyright: (c) 2008 Vadim Zeitlin <vadim@wxwidgets.org>
|
|
// Licence: wxWindows licence
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _WX_MOUSESTATE_H_
|
|
#define _WX_MOUSESTATE_H_
|
|
|
|
#include "wx/gdicmn.h" // for wxPoint
|
|
#include "wx/kbdstate.h"
|
|
|
|
// the symbolic names for the mouse buttons
|
|
enum wxMouseButton
|
|
{
|
|
wxMOUSE_BTN_ANY = -1,
|
|
wxMOUSE_BTN_NONE = 0,
|
|
wxMOUSE_BTN_LEFT = 1,
|
|
wxMOUSE_BTN_MIDDLE = 2,
|
|
wxMOUSE_BTN_RIGHT = 3,
|
|
wxMOUSE_BTN_AUX1 = 4,
|
|
wxMOUSE_BTN_AUX2 = 5,
|
|
wxMOUSE_BTN_MAX
|
|
};
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// wxMouseState contains the information about mouse position, buttons and also
|
|
// key modifiers
|
|
// ----------------------------------------------------------------------------
|
|
|
|
// wxMouseState is used to hold information about button and modifier state
|
|
// and is what is returned from wxGetMouseState.
|
|
class WXDLLIMPEXP_CORE wxMouseState : public wxKeyboardState
|
|
{
|
|
public:
|
|
wxMouseState()
|
|
: m_leftDown(false), m_middleDown(false), m_rightDown(false),
|
|
m_aux1Down(false), m_aux2Down(false),
|
|
m_x(0), m_y(0)
|
|
{
|
|
}
|
|
|
|
// default copy ctor, assignment operator and dtor are ok
|
|
|
|
|
|
// accessors for the mouse position
|
|
wxCoord GetX() const { return m_x; }
|
|
wxCoord GetY() const { return m_y; }
|
|
wxPoint GetPosition() const { return wxPoint(m_x, m_y); }
|
|
void GetPosition(wxCoord *x, wxCoord *y) const
|
|
{
|
|
if ( x )
|
|
*x = m_x;
|
|
if ( y )
|
|
*y = m_y;
|
|
}
|
|
|
|
// this overload is for compatibility only
|
|
void GetPosition(long *x, long *y) const
|
|
{
|
|
if ( x )
|
|
*x = m_x;
|
|
if ( y )
|
|
*y = m_y;
|
|
}
|
|
|
|
// accessors for the pressed buttons
|
|
bool LeftIsDown() const { return m_leftDown; }
|
|
bool MiddleIsDown() const { return m_middleDown; }
|
|
bool RightIsDown() const { return m_rightDown; }
|
|
bool Aux1IsDown() const { return m_aux1Down; }
|
|
bool Aux2IsDown() const { return m_aux2Down; }
|
|
|
|
bool ButtonIsDown(wxMouseButton but) const
|
|
{
|
|
switch ( but )
|
|
{
|
|
case wxMOUSE_BTN_ANY:
|
|
return LeftIsDown() || MiddleIsDown() || RightIsDown() ||
|
|
Aux1IsDown() || Aux2IsDown();
|
|
|
|
case wxMOUSE_BTN_LEFT:
|
|
return LeftIsDown();
|
|
|
|
case wxMOUSE_BTN_MIDDLE:
|
|
return MiddleIsDown();
|
|
|
|
case wxMOUSE_BTN_RIGHT:
|
|
return RightIsDown();
|
|
|
|
case wxMOUSE_BTN_AUX1:
|
|
return Aux1IsDown();
|
|
|
|
case wxMOUSE_BTN_AUX2:
|
|
return Aux2IsDown();
|
|
|
|
case wxMOUSE_BTN_NONE:
|
|
case wxMOUSE_BTN_MAX:
|
|
break;
|
|
}
|
|
|
|
wxFAIL_MSG(wxS("invalid parameter"));
|
|
return false;
|
|
}
|
|
|
|
|
|
// these functions are mostly used by wxWidgets itself
|
|
void SetX(wxCoord x) { m_x = x; }
|
|
void SetY(wxCoord y) { m_y = y; }
|
|
void SetPosition(wxPoint pos) { m_x = pos.x, m_y = pos.y; }
|
|
|
|
void SetLeftDown(bool down) { m_leftDown = down; }
|
|
void SetMiddleDown(bool down) { m_middleDown = down; }
|
|
void SetRightDown(bool down) { m_rightDown = down; }
|
|
void SetAux1Down(bool down) { m_aux1Down = down; }
|
|
void SetAux2Down(bool down) { m_aux2Down = down; }
|
|
|
|
// this mostly makes sense in the derived classes such as wxMouseEvent
|
|
void SetState(const wxMouseState& state) { *this = state; }
|
|
|
|
// these functions are for compatibility only, they were used in 2.8
|
|
// version of wxMouseState but their names are confusing as wxMouseEvent
|
|
// has methods with the same names which do something quite different so
|
|
// don't use them any more
|
|
#if WXWIN_COMPATIBILITY_2_8
|
|
wxDEPRECATED_INLINE(bool LeftDown() const, return LeftIsDown(); )
|
|
wxDEPRECATED_INLINE(bool MiddleDown() const, return MiddleIsDown(); )
|
|
wxDEPRECATED_INLINE(bool RightDown() const, return RightIsDown(); )
|
|
#endif // WXWIN_COMPATIBILITY_2_8
|
|
|
|
// for compatibility reasons these variables are public as the code using
|
|
// wxMouseEvent often uses them directly -- however they should not be
|
|
// accessed directly in this class, use the accessors above instead
|
|
// private:
|
|
bool m_leftDown : 1;
|
|
bool m_middleDown : 1;
|
|
bool m_rightDown : 1;
|
|
bool m_aux1Down : 1;
|
|
bool m_aux2Down : 1;
|
|
|
|
wxCoord m_x,
|
|
m_y;
|
|
};
|
|
|
|
#endif // _WX_MOUSESTATE_H_
|
|
|