mirror of
https://github.com/vcmi/vcmi.git
synced 2025-01-12 02:28:11 +02:00
Minor code reorganization
This commit is contained in:
parent
ff1c94541f
commit
6012e0cb45
@ -30,7 +30,8 @@ set(client_SRCS
|
||||
gui/CGuiHandler.cpp
|
||||
gui/CIntObject.cpp
|
||||
gui/CursorHandler.cpp
|
||||
gui/InterfaceEventDispatcher.cpp
|
||||
gui/EventDispatcher.cpp
|
||||
gui/EventsReceiver.cpp
|
||||
gui/InterfaceObjectConfigurable.cpp
|
||||
gui/FramerateManager.cpp
|
||||
gui/NotificationHandler.cpp
|
||||
@ -164,8 +165,9 @@ set(client_HEADERS
|
||||
gui/CGuiHandler.h
|
||||
gui/CIntObject.h
|
||||
gui/CursorHandler.h
|
||||
gui/EventDispatcher.h
|
||||
gui/EventsReceiver.h
|
||||
gui/InterfaceObjectConfigurable.h
|
||||
gui/InterfaceEventDispatcher.h
|
||||
gui/FramerateManager.h
|
||||
gui/MouseButton.h
|
||||
gui/NotificationHandler.h
|
||||
|
@ -16,7 +16,7 @@
|
||||
#include "ShortcutHandler.h"
|
||||
#include "FramerateManager.h"
|
||||
#include "WindowHandler.h"
|
||||
#include "InterfaceEventDispatcher.h"
|
||||
#include "EventDispatcher.h"
|
||||
|
||||
#include "../CGameInfo.h"
|
||||
#include "../render/Colors.h"
|
||||
@ -80,7 +80,7 @@ SSetCaptureState::~SSetCaptureState()
|
||||
|
||||
void CGuiHandler::init()
|
||||
{
|
||||
eventDispatcherInstance = std::make_unique<InterfaceEventDispatcher>();
|
||||
eventDispatcherInstance = std::make_unique<EventDispatcher>();
|
||||
windowHandlerInstance = std::make_unique<WindowHandler>();
|
||||
screenHandlerInstance = std::make_unique<ScreenHandler>();
|
||||
shortcutsHandlerInstance = std::make_unique<ShortcutHandler>();
|
||||
@ -613,7 +613,7 @@ IScreenHandler & CGuiHandler::screenHandler()
|
||||
return *screenHandlerInstance;
|
||||
}
|
||||
|
||||
InterfaceEventDispatcher & CGuiHandler::eventDispatcher()
|
||||
EventDispatcher & CGuiHandler::eventDispatcher()
|
||||
{
|
||||
return *eventDispatcherInstance;
|
||||
}
|
||||
|
@ -30,7 +30,7 @@ class IUpdateable;
|
||||
class IShowActivatable;
|
||||
class IScreenHandler;
|
||||
class WindowHandler;
|
||||
class InterfaceEventDispatcher;
|
||||
class EventDispatcher;
|
||||
|
||||
// TODO: event handling need refactoring
|
||||
enum class EUserEvent
|
||||
@ -63,7 +63,7 @@ private:
|
||||
|
||||
std::unique_ptr<IScreenHandler> screenHandlerInstance;
|
||||
std::unique_ptr<FramerateManager> framerateManagerInstance;
|
||||
std::unique_ptr<InterfaceEventDispatcher> eventDispatcherInstance;
|
||||
std::unique_ptr<EventDispatcher> eventDispatcherInstance;
|
||||
|
||||
void handleCurrentEvent(SDL_Event ¤t);
|
||||
void convertTouchToMouse(SDL_Event * current);
|
||||
@ -89,7 +89,7 @@ public:
|
||||
|
||||
ShortcutHandler & shortcutsHandler();
|
||||
FramerateManager & framerateManager();
|
||||
InterfaceEventDispatcher & eventDispatcher();
|
||||
EventDispatcher & eventDispatcher();
|
||||
|
||||
/// Returns current logical screen dimensions
|
||||
/// May not match size of window if user has UI scaling different from 100%
|
||||
|
@ -11,7 +11,6 @@
|
||||
#include "CIntObject.h"
|
||||
|
||||
#include "CGuiHandler.h"
|
||||
#include "InterfaceEventDispatcher.h"
|
||||
#include "WindowHandler.h"
|
||||
#include "Shortcut.h"
|
||||
#include "../renderSDL/SDL_Extensions.h"
|
||||
@ -20,70 +19,6 @@
|
||||
|
||||
#include <SDL_pixels.h>
|
||||
|
||||
AEventsReceiver::AEventsReceiver()
|
||||
: activeState(0)
|
||||
, hoveredState(false)
|
||||
, strongInterestState(false)
|
||||
{
|
||||
}
|
||||
|
||||
bool AEventsReceiver::isHovered() const
|
||||
{
|
||||
return hoveredState;
|
||||
}
|
||||
|
||||
bool AEventsReceiver::isActive() const
|
||||
{
|
||||
return activeState;
|
||||
}
|
||||
|
||||
bool AEventsReceiver::isActive(int flags) const
|
||||
{
|
||||
return activeState & flags;
|
||||
}
|
||||
|
||||
bool AEventsReceiver::isMouseButtonPressed(MouseButton btn) const
|
||||
{
|
||||
return currentMouseState.count(btn) ? currentMouseState.at(btn) : false;
|
||||
}
|
||||
|
||||
void AEventsReceiver::setMoveEventStrongInterest(bool on)
|
||||
{
|
||||
strongInterestState = on;
|
||||
}
|
||||
|
||||
void AEventsReceiver::activateEvents(ui16 what)
|
||||
{
|
||||
assert((what & GENERAL) || (activeState & GENERAL));
|
||||
|
||||
activeState |= GENERAL;
|
||||
GH.eventDispatcher().handleElementActivate(this, what);
|
||||
}
|
||||
|
||||
void AEventsReceiver::deactivateEvents(ui16 what)
|
||||
{
|
||||
if (what & GENERAL)
|
||||
activeState &= ~GENERAL;
|
||||
GH.eventDispatcher().handleElementDeActivate(this, what & activeState);
|
||||
}
|
||||
|
||||
void AEventsReceiver::click(MouseButton btn, tribool down, bool previousState)
|
||||
{
|
||||
switch(btn)
|
||||
{
|
||||
default:
|
||||
case MouseButton::LEFT:
|
||||
clickLeft(down, previousState);
|
||||
break;
|
||||
case MouseButton::MIDDLE:
|
||||
clickMiddle(down, previousState);
|
||||
break;
|
||||
case MouseButton::RIGHT:
|
||||
clickRight(down, previousState);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
CIntObject::CIntObject(int used_, Point pos_):
|
||||
parent_m(nullptr),
|
||||
parent(parent_m),
|
||||
|
@ -9,17 +9,13 @@
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "MouseButton.h"
|
||||
#include "../render/Graphics.h"
|
||||
#include "../../lib/Rect.h"
|
||||
#include "EventsReceiver.h"
|
||||
|
||||
struct SDL_Surface;
|
||||
class CGuiHandler;
|
||||
class CPicture;
|
||||
class InterfaceEventDispatcher;
|
||||
enum class EShortcut;
|
||||
|
||||
using boost::logic::tribool;
|
||||
|
||||
class IUpdateable
|
||||
{
|
||||
@ -42,55 +38,6 @@ public:
|
||||
virtual ~IShowActivatable() = default;
|
||||
};
|
||||
|
||||
class AEventsReceiver
|
||||
{
|
||||
friend class InterfaceEventDispatcher;
|
||||
|
||||
ui16 activeState;
|
||||
std::map<MouseButton, bool> currentMouseState;
|
||||
|
||||
bool hoveredState; //for determining if object is hovered
|
||||
bool strongInterestState; //if true - report all mouse movements, if not - only when hovered
|
||||
|
||||
void click(MouseButton btn, tribool down, bool previousState);
|
||||
protected:
|
||||
void setMoveEventStrongInterest(bool on);
|
||||
|
||||
void activateEvents(ui16 what);
|
||||
void deactivateEvents(ui16 what);
|
||||
|
||||
virtual void clickLeft(tribool down, bool previousState) {}
|
||||
virtual void clickRight(tribool down, bool previousState) {}
|
||||
virtual void clickMiddle(tribool down, bool previousState) {}
|
||||
|
||||
virtual void textInputed(const std::string & enteredText) {}
|
||||
virtual void textEdited(const std::string & enteredText) {}
|
||||
|
||||
virtual void tick(uint32_t msPassed) {}
|
||||
virtual void wheelScrolled(bool down, bool in) {}
|
||||
virtual void mouseMoved(const Point & cursorPosition) {}
|
||||
virtual void hover(bool on) {}
|
||||
virtual void onDoubleClick() {}
|
||||
|
||||
virtual void keyPressed(EShortcut key) {}
|
||||
virtual void keyReleased(EShortcut key) {}
|
||||
|
||||
virtual bool captureThisKey(EShortcut key) = 0;
|
||||
virtual bool isInside(const Point & position) = 0;
|
||||
|
||||
public:
|
||||
AEventsReceiver();
|
||||
virtual ~AEventsReceiver() = default;
|
||||
|
||||
// These are the arguments that can be used to determine what kind of input the CIntObject will receive
|
||||
enum {LCLICK=1, RCLICK=2, HOVER=4, MOVE=8, KEYBOARD=16, TIME=32, GENERAL=64, WHEEL=128, DOUBLECLICK=256, TEXTINPUT=512, MCLICK=1024, ALL=0xffff};
|
||||
|
||||
bool isHovered() const;
|
||||
bool isActive() const;
|
||||
bool isActive(int flags) const;
|
||||
bool isMouseButtonPressed(MouseButton btn) const;
|
||||
};
|
||||
|
||||
// Base UI element
|
||||
class CIntObject : public IShowActivatable, public AEventsReceiver //interface object
|
||||
{
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* CGuiHandler.cpp, part of VCMI engine
|
||||
* EventDispatcher.cpp, part of VCMI engine
|
||||
*
|
||||
* Authors: listed in file AUTHORS in main folder
|
||||
*
|
||||
@ -8,23 +8,24 @@
|
||||
*
|
||||
*/
|
||||
#include "StdInc.h"
|
||||
#include "InterfaceEventDispatcher.h"
|
||||
#include "CIntObject.h"
|
||||
#include "CGuiHandler.h"
|
||||
#include "FramerateManager.h"
|
||||
#include "EventDispatcher.h"
|
||||
|
||||
void InterfaceEventDispatcher::allowEventHandling(bool enable)
|
||||
#include "EventsReceiver.h"
|
||||
#include "FramerateManager.h"
|
||||
#include "CGuiHandler.h"
|
||||
|
||||
void EventDispatcher::allowEventHandling(bool enable)
|
||||
{
|
||||
eventHandlingAllowed = enable;
|
||||
}
|
||||
|
||||
void InterfaceEventDispatcher::processList(const ui16 mask, const ui16 flag, CIntObjectList *lst, std::function<void (CIntObjectList *)> cb)
|
||||
void EventDispatcher::processList(const ui16 mask, const ui16 flag, CIntObjectList *lst, std::function<void (CIntObjectList *)> cb)
|
||||
{
|
||||
if (mask & flag)
|
||||
cb(lst);
|
||||
}
|
||||
|
||||
void InterfaceEventDispatcher::processLists(ui16 activityFlag, std::function<void (CIntObjectList *)> cb)
|
||||
void EventDispatcher::processLists(ui16 activityFlag, std::function<void (CIntObjectList *)> cb)
|
||||
{
|
||||
processList(AEventsReceiver::LCLICK,activityFlag,&lclickable,cb);
|
||||
processList(AEventsReceiver::RCLICK,activityFlag,&rclickable,cb);
|
||||
@ -38,7 +39,7 @@ void InterfaceEventDispatcher::processLists(ui16 activityFlag, std::function<voi
|
||||
processList(AEventsReceiver::TEXTINPUT,activityFlag,&textInterested,cb);
|
||||
}
|
||||
|
||||
void InterfaceEventDispatcher::handleElementActivate(AEventsReceiver * elem, ui16 activityFlag)
|
||||
void EventDispatcher::handleElementActivate(AEventsReceiver * elem, ui16 activityFlag)
|
||||
{
|
||||
processLists(activityFlag,[&](CIntObjectList * lst){
|
||||
lst->push_front(elem);
|
||||
@ -46,7 +47,7 @@ void InterfaceEventDispatcher::handleElementActivate(AEventsReceiver * elem, ui1
|
||||
elem->activeState |= activityFlag;
|
||||
}
|
||||
|
||||
void InterfaceEventDispatcher::handleElementDeActivate(AEventsReceiver * elem, ui16 activityFlag)
|
||||
void EventDispatcher::handleElementDeActivate(AEventsReceiver * elem, ui16 activityFlag)
|
||||
{
|
||||
processLists(activityFlag,[&](CIntObjectList * lst){
|
||||
auto hlp = std::find(lst->begin(),lst->end(),elem);
|
||||
@ -56,7 +57,7 @@ void InterfaceEventDispatcher::handleElementDeActivate(AEventsReceiver * elem, u
|
||||
elem->activeState &= ~activityFlag;
|
||||
}
|
||||
|
||||
void InterfaceEventDispatcher::dispatchTimer(uint32_t msPassed)
|
||||
void EventDispatcher::dispatchTimer(uint32_t msPassed)
|
||||
{
|
||||
CIntObjectList hlp = timeinterested;
|
||||
for (auto & elem : hlp)
|
||||
@ -66,7 +67,7 @@ void InterfaceEventDispatcher::dispatchTimer(uint32_t msPassed)
|
||||
}
|
||||
}
|
||||
|
||||
void InterfaceEventDispatcher::dispatchShortcutPressed(const std::vector<EShortcut> & shortcutsVector)
|
||||
void EventDispatcher::dispatchShortcutPressed(const std::vector<EShortcut> & shortcutsVector)
|
||||
{
|
||||
bool keysCaptured = false;
|
||||
|
||||
@ -88,7 +89,7 @@ void InterfaceEventDispatcher::dispatchShortcutPressed(const std::vector<EShortc
|
||||
}
|
||||
}
|
||||
|
||||
void InterfaceEventDispatcher::dispatchShortcutReleased(const std::vector<EShortcut> & shortcutsVector)
|
||||
void EventDispatcher::dispatchShortcutReleased(const std::vector<EShortcut> & shortcutsVector)
|
||||
{
|
||||
bool keysCaptured = false;
|
||||
|
||||
@ -110,7 +111,7 @@ void InterfaceEventDispatcher::dispatchShortcutReleased(const std::vector<EShort
|
||||
}
|
||||
}
|
||||
|
||||
InterfaceEventDispatcher::CIntObjectList & InterfaceEventDispatcher::getListForMouseButton(MouseButton button)
|
||||
EventDispatcher::CIntObjectList & EventDispatcher::getListForMouseButton(MouseButton button)
|
||||
{
|
||||
switch (button)
|
||||
{
|
||||
@ -124,7 +125,7 @@ InterfaceEventDispatcher::CIntObjectList & InterfaceEventDispatcher::getListForM
|
||||
throw std::runtime_error("Invalid mouse button in getListForMouseButton");
|
||||
}
|
||||
|
||||
void InterfaceEventDispatcher::dispatchMouseDoubleClick(const Point & position)
|
||||
void EventDispatcher::dispatchMouseDoubleClick(const Point & position)
|
||||
{
|
||||
bool doubleClicked = false;
|
||||
auto hlp = doubleClickInterested;
|
||||
@ -148,17 +149,17 @@ void InterfaceEventDispatcher::dispatchMouseDoubleClick(const Point & position)
|
||||
dispatchMouseButtonPressed(MouseButton::LEFT, position);
|
||||
}
|
||||
|
||||
void InterfaceEventDispatcher::dispatchMouseButtonPressed(const MouseButton & button, const Point & position)
|
||||
void EventDispatcher::dispatchMouseButtonPressed(const MouseButton & button, const Point & position)
|
||||
{
|
||||
handleMouseButtonClick(getListForMouseButton(button), button, true);
|
||||
}
|
||||
|
||||
void InterfaceEventDispatcher::dispatchMouseButtonReleased(const MouseButton & button, const Point & position)
|
||||
void EventDispatcher::dispatchMouseButtonReleased(const MouseButton & button, const Point & position)
|
||||
{
|
||||
handleMouseButtonClick(getListForMouseButton(button), button, false);
|
||||
}
|
||||
|
||||
void InterfaceEventDispatcher::handleMouseButtonClick(CIntObjectList & interestedObjs, MouseButton btn, bool isPressed)
|
||||
void EventDispatcher::handleMouseButtonClick(CIntObjectList & interestedObjs, MouseButton btn, bool isPressed)
|
||||
{
|
||||
auto hlp = interestedObjs;
|
||||
for(auto & i : hlp)
|
||||
@ -183,7 +184,7 @@ void InterfaceEventDispatcher::handleMouseButtonClick(CIntObjectList & intereste
|
||||
}
|
||||
}
|
||||
|
||||
void InterfaceEventDispatcher::dispatchMouseScrolled(const Point & distance, const Point & position)
|
||||
void EventDispatcher::dispatchMouseScrolled(const Point & distance, const Point & position)
|
||||
{
|
||||
CIntObjectList hlp = wheelInterested;
|
||||
for(auto i = hlp.begin(); i != hlp.end() && eventHandlingAllowed; i++)
|
||||
@ -194,7 +195,7 @@ void InterfaceEventDispatcher::dispatchMouseScrolled(const Point & distance, con
|
||||
}
|
||||
}
|
||||
|
||||
void InterfaceEventDispatcher::dispatchTextInput(const std::string & text)
|
||||
void EventDispatcher::dispatchTextInput(const std::string & text)
|
||||
{
|
||||
for(auto it : textInterested)
|
||||
{
|
||||
@ -202,7 +203,7 @@ void InterfaceEventDispatcher::dispatchTextInput(const std::string & text)
|
||||
}
|
||||
}
|
||||
|
||||
void InterfaceEventDispatcher::dispatchTextEditing(const std::string & text)
|
||||
void EventDispatcher::dispatchTextEditing(const std::string & text)
|
||||
{
|
||||
for(auto it : textInterested)
|
||||
{
|
||||
@ -210,7 +211,7 @@ void InterfaceEventDispatcher::dispatchTextEditing(const std::string & text)
|
||||
}
|
||||
}
|
||||
|
||||
void InterfaceEventDispatcher::dispatchMouseMoved(const Point & position)
|
||||
void EventDispatcher::dispatchMouseMoved(const Point & position)
|
||||
{
|
||||
//sending active, hovered hoverable objects hover() call
|
||||
CIntObjectList hlp;
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* CGuiHandler.h, part of VCMI engine
|
||||
* EventDispatcher.h, part of VCMI engine
|
||||
*
|
||||
* Authors: listed in file AUTHORS in main folder
|
||||
*
|
||||
@ -17,7 +17,7 @@ class AEventsReceiver;
|
||||
enum class MouseButton;
|
||||
enum class EShortcut;
|
||||
|
||||
class InterfaceEventDispatcher
|
||||
class EventDispatcher
|
||||
{
|
||||
using CIntObjectList = std::list<AEventsReceiver *>;
|
||||
|
79
client/gui/EventsReceiver.cpp
Normal file
79
client/gui/EventsReceiver.cpp
Normal file
@ -0,0 +1,79 @@
|
||||
/*
|
||||
* EventsReceiver.cpp, part of VCMI engine
|
||||
*
|
||||
* Authors: listed in file AUTHORS in main folder
|
||||
*
|
||||
* License: GNU General Public License v2.0 or later
|
||||
* Full text of license available in license.txt file, in main folder
|
||||
*
|
||||
*/
|
||||
#include "StdInc.h"
|
||||
#include "EventsReceiver.h"
|
||||
|
||||
#include "MouseButton.h"
|
||||
#include "CGuiHandler.h"
|
||||
#include "EventDispatcher.h"
|
||||
|
||||
AEventsReceiver::AEventsReceiver()
|
||||
: activeState(0)
|
||||
, hoveredState(false)
|
||||
, strongInterestState(false)
|
||||
{
|
||||
}
|
||||
|
||||
bool AEventsReceiver::isHovered() const
|
||||
{
|
||||
return hoveredState;
|
||||
}
|
||||
|
||||
bool AEventsReceiver::isActive() const
|
||||
{
|
||||
return activeState;
|
||||
}
|
||||
|
||||
bool AEventsReceiver::isActive(int flags) const
|
||||
{
|
||||
return activeState & flags;
|
||||
}
|
||||
|
||||
bool AEventsReceiver::isMouseButtonPressed(MouseButton btn) const
|
||||
{
|
||||
return currentMouseState.count(btn) ? currentMouseState.at(btn) : false;
|
||||
}
|
||||
|
||||
void AEventsReceiver::setMoveEventStrongInterest(bool on)
|
||||
{
|
||||
strongInterestState = on;
|
||||
}
|
||||
|
||||
void AEventsReceiver::activateEvents(ui16 what)
|
||||
{
|
||||
assert((what & GENERAL) || (activeState & GENERAL));
|
||||
|
||||
activeState |= GENERAL;
|
||||
GH.eventDispatcher().handleElementActivate(this, what);
|
||||
}
|
||||
|
||||
void AEventsReceiver::deactivateEvents(ui16 what)
|
||||
{
|
||||
if (what & GENERAL)
|
||||
activeState &= ~GENERAL;
|
||||
GH.eventDispatcher().handleElementDeActivate(this, what & activeState);
|
||||
}
|
||||
|
||||
void AEventsReceiver::click(MouseButton btn, tribool down, bool previousState)
|
||||
{
|
||||
switch(btn)
|
||||
{
|
||||
default:
|
||||
case MouseButton::LEFT:
|
||||
clickLeft(down, previousState);
|
||||
break;
|
||||
case MouseButton::MIDDLE:
|
||||
clickMiddle(down, previousState);
|
||||
break;
|
||||
case MouseButton::RIGHT:
|
||||
clickRight(down, previousState);
|
||||
break;
|
||||
}
|
||||
}
|
68
client/gui/EventsReceiver.h
Normal file
68
client/gui/EventsReceiver.h
Normal file
@ -0,0 +1,68 @@
|
||||
/*
|
||||
* EventsReceiver.h, part of VCMI engine
|
||||
*
|
||||
* Authors: listed in file AUTHORS in main folder
|
||||
*
|
||||
* License: GNU General Public License v2.0 or later
|
||||
* Full text of license available in license.txt file, in main folder
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
VCMI_LIB_NAMESPACE_BEGIN
|
||||
class Point;
|
||||
VCMI_LIB_NAMESPACE_END
|
||||
|
||||
class EventDispatcher;
|
||||
enum class MouseButton;
|
||||
enum class EShortcut;
|
||||
using boost::logic::tribool;
|
||||
|
||||
class AEventsReceiver
|
||||
{
|
||||
friend class EventDispatcher;
|
||||
|
||||
ui16 activeState;
|
||||
std::map<MouseButton, bool> currentMouseState;
|
||||
|
||||
bool hoveredState; //for determining if object is hovered
|
||||
bool strongInterestState; //if true - report all mouse movements, if not - only when hovered
|
||||
|
||||
void click(MouseButton btn, tribool down, bool previousState);
|
||||
protected:
|
||||
void setMoveEventStrongInterest(bool on);
|
||||
|
||||
void activateEvents(ui16 what);
|
||||
void deactivateEvents(ui16 what);
|
||||
|
||||
virtual void clickLeft(tribool down, bool previousState) {}
|
||||
virtual void clickRight(tribool down, bool previousState) {}
|
||||
virtual void clickMiddle(tribool down, bool previousState) {}
|
||||
|
||||
virtual void textInputed(const std::string & enteredText) {}
|
||||
virtual void textEdited(const std::string & enteredText) {}
|
||||
|
||||
virtual void tick(uint32_t msPassed) {}
|
||||
virtual void wheelScrolled(bool down, bool in) {}
|
||||
virtual void mouseMoved(const Point & cursorPosition) {}
|
||||
virtual void hover(bool on) {}
|
||||
virtual void onDoubleClick() {}
|
||||
|
||||
virtual void keyPressed(EShortcut key) {}
|
||||
virtual void keyReleased(EShortcut key) {}
|
||||
|
||||
virtual bool captureThisKey(EShortcut key) = 0;
|
||||
virtual bool isInside(const Point & position) = 0;
|
||||
|
||||
public:
|
||||
AEventsReceiver();
|
||||
virtual ~AEventsReceiver() = default;
|
||||
|
||||
// These are the arguments that can be used to determine what kind of input the CIntObject will receive
|
||||
enum {LCLICK=1, RCLICK=2, HOVER=4, MOVE=8, KEYBOARD=16, TIME=32, GENERAL=64, WHEEL=128, DOUBLECLICK=256, TEXTINPUT=512, MCLICK=1024, ALL=0xffff};
|
||||
|
||||
bool isHovered() const;
|
||||
bool isActive() const;
|
||||
bool isActive(int flags) const;
|
||||
bool isMouseButtonPressed(MouseButton btn) const;
|
||||
};
|
Loading…
Reference in New Issue
Block a user