demotool/imousectrl.hh

47 lines
909 B
C++
Raw Normal View History

#pragma once
#ifndef REAL_BUILD
# include "externals.hh"
#endif
/*= MOUSE CONTROLS INTERFACE ===================================================*/
enum class E_MouseButton {
LEFT ,
MIDDLE ,
RIGHT ,
};
using T_MouseButtons = T_Flags< E_MouseButton >;
/*------------------------------------------------------------------------------*/
enum class E_KeyboardModifier
{
CTRL ,
SHIFT ,
ALT ,
};
using T_KeyboardModifiers = T_Flags< E_KeyboardModifier >;
/*------------------------------------------------------------------------------*/
class A_MouseCtrl
{
public:
virtual ~A_MouseCtrl( ) = 0;
virtual void handleDragAndDrop(
ImVec2 const& move ,
T_KeyboardModifiers modifiers ,
T_MouseButtons buttons
) noexcept = 0;
virtual void handleWheel(
float wheel ,
T_KeyboardModifiers modifiers ,
T_MouseButtons buttons
) noexcept = 0;
};
inline A_MouseCtrl::~A_MouseCtrl() {}