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