#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() {}