genode/demo/include/scout/event.h

83 lines
1.6 KiB
C
Raw Normal View History

2011-12-22 15:19:25 +00:00
/*
* \brief User event representation
* \date 2005-10-24
* \author Norman Feske <norman.feske@genode-labs.com>
*/
/*
2013-01-10 20:44:47 +00:00
* Copyright (C) 2005-2013 Genode Labs GmbH
2011-12-22 15:19:25 +00:00
*
* This file is part of the Genode OS framework, which is distributed
* under the terms of the GNU General Public License version 2.
*/
#ifndef _INCLUDE__SCOUT__EVENT_H_
#define _INCLUDE__SCOUT__EVENT_H_
#include <scout/types.h>
namespace Scout {
class Event;
class Event_handler;
}
2011-12-22 15:19:25 +00:00
/**
* Event structure
*
* This event structure covers timer events as well as user input events.
2011-12-22 15:19:25 +00:00
*/
class Scout::Event
2011-12-22 15:19:25 +00:00
{
public:
/**
* Some sensibly choosen key and button codes
*/
enum code {
BTN_LEFT = 0x110,
KEY_Q = 16,
};
enum ev_type {
UNDEFINED = 0,
MOTION = 1, /* mouse moved */
PRESS = 2, /* button/key pressed */
RELEASE = 3, /* button/key released */
TIMER = 4, /* timer event */
QUIT = 5, /* quit application */
WHEEL = 6, /* mouse wheel */
2011-12-22 15:19:25 +00:00
};
ev_type type;
Point mouse_position;
Point wheel_movement;
int code; /* key code */
2011-12-22 15:19:25 +00:00
/**
* Assign new event information to event structure
*/
inline void assign(ev_type new_type, int new_mx, int new_my, int new_code)
{
type = new_type;
mouse_position = Point(new_mx, new_my);
wheel_movement = Point(0, 0);
code = new_code;
2011-12-22 15:19:25 +00:00
}
};
class Scout::Event_handler
2011-12-22 15:19:25 +00:00
{
public:
virtual ~Event_handler() { }
/**
* Handle event
*/
virtual void handle(Event &e) = 0;
};
#endif /* _INCLUDE__SCOUT__EVENT_H_ */