/* GWEN Copyright (c) 2010 Facepunch Studios See license in Gwen.h */ #pragma once #ifndef GWEN_INPUTHANDLER_H #define GWEN_INPUTHANDLER_H #include "gwen.h" namespace Gwen { namespace Controls { class Base; } namespace Key { const unsigned char Invalid = 0; const unsigned char Return = 1; const unsigned char Backspace = 2; const unsigned char Delete = 3; const unsigned char Left = 4; const unsigned char Right = 5; const unsigned char Shift = 6; const unsigned char Tab = 7; const unsigned char Space = 8; const unsigned char Home = 9; const unsigned char End = 10; const unsigned char Control = 11; const unsigned char Up = 12; const unsigned char Down = 13; const unsigned char Escape = 14; const unsigned char Alt = 15; const unsigned char Count = 16; } namespace Input { namespace Message { enum { Copy, Paste, Cut, Undo, Redo, SelectAll }; }; // For use in panels bool GWEN_EXPORT IsKeyDown( int iKey ); bool GWEN_EXPORT IsLeftMouseDown(); bool GWEN_EXPORT IsRightMouseDown(); Gwen::Point GWEN_EXPORT GetMousePosition(); inline bool IsShiftDown(){ return IsKeyDown( Gwen::Key::Shift ); } inline bool IsControlDown(){ return IsKeyDown( Gwen::Key::Control ); } // Does copy, paste etc bool GWEN_EXPORT DoSpecialKeys( Controls::Base* pCanvas, char chr ); bool GWEN_EXPORT HandleAccelerator( Controls::Base* pCanvas, char chr ); // Send input to canvas for study void GWEN_EXPORT OnMouseMoved( Controls::Base* pCanvas, int x, int y, int deltaX, int deltaY ); bool GWEN_EXPORT OnMouseClicked( Controls::Base* pCanvas, int iButton, bool bDown ); bool GWEN_EXPORT OnKeyEvent( Controls::Base* pCanvas, int iKey, bool bDown ); void GWEN_EXPORT OnCanvasThink( Controls::Base* pControl ); }; } #endif