mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-29 00:59:44 -06:00
Import r67258 of the wxWidgets trunk, which I expect will before
long become wxWidgets 2.9.2, which in turn is expected to be the last 2.9 release before the 3.0 stable release. Since the full wxWidgets distribution is rather large, I have imported only the parts that we use, on a subdirectory basis: art include/wx/*.* include/wx/aui include/wx/cocoa include/wx/generic include/wx/gtk include/wx/meta include/wx/msw include/wx/osx include/wx/persist include/wx/private include/wx/protocol include/wx/unix src/aui src/common src/generic src/gtk src/msw src/osx src/unix git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7380 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
147
Externals/wxWidgets3/include/wx/mousestate.h
vendored
Normal file
147
Externals/wxWidgets3/include/wx/mousestate.h
vendored
Normal file
@ -0,0 +1,147 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Name: wx/mousestate.h
|
||||
// Purpose: Declaration of wxMouseState class
|
||||
// Author: Vadim Zeitlin
|
||||
// Created: 2008-09-19 (extracted from wx/utils.h)
|
||||
// RCS-ID: $Id: mousestate.h 65379 2010-08-22 22:15:07Z VZ $
|
||||
// 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 )
|
||||
{
|
||||
default:
|
||||
wxFAIL_MSG(wxT("invalid parameter in wxMouseState::ButtonIsDown"));
|
||||
// fall through
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 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
|
||||
#ifdef 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_
|
||||
|
Reference in New Issue
Block a user