1 #pragma once 2 3 #include "ieventmanager.h" 4 #include "generic/callback.h" 5 6 #include <gtk/gtkmenuitem.h> 7 #include <gdk/gdk.h> 8 9 #include "Event.h" 10 11 /* greebo: A KeyEvent is an object that contains a two callbacks, 12 * one for keyUp and one for keyDown events 13 */ 14 15 typedef struct _GtkMenuItem GtkMenuItem; 16 17 class KeyEvent : 18 public Event 19 { 20 // The callbacks to be performed on keyDown/keyUp 21 Callback _keyUpCallback; 22 Callback _keyDownCallback; 23 24 public: KeyEvent(const Callback & keyUpCallback,const Callback & keyDownCallback)25 KeyEvent(const Callback& keyUpCallback, const Callback& keyDownCallback) : 26 _keyUpCallback(keyUpCallback), 27 _keyDownCallback(keyDownCallback) 28 {} 29 ~KeyEvent()30 virtual ~KeyEvent() {} 31 keyDown()32 void keyDown() { 33 if (_enabled) { 34 // Execute the command on key down event 35 _keyDownCallback(); 36 } 37 } 38 keyUp()39 void keyUp() { 40 if (_enabled) { 41 // Execute the command on key up event 42 _keyUpCallback(); 43 } 44 } 45 46 }; // class KeyEvent 47