mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-28 17:48:53 +00:00
af66043b79
This patch introduces keyboard-focus events to the 'Input::Event' class and changes the name 'Input::Event::keycode' to 'code'. The 'code' represents the key code for PRESS/RELEASE events, and the focus state for FOCUS events (0 - unfocused, 1 - focused). Furthermore, nitpicker has been adapted to deliver FOCUS events to its clients. Fixes #609
73 lines
1.5 KiB
C++
73 lines
1.5 KiB
C++
/*
|
|
* \brief Input event structure
|
|
* \author Norman Feske
|
|
* \date 2006-08-16
|
|
*/
|
|
|
|
/*
|
|
* Copyright (C) 2006-2013 Genode Labs GmbH
|
|
*
|
|
* 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__INPUT__EVENT_H_
|
|
#define _INCLUDE__INPUT__EVENT_H_
|
|
|
|
namespace Input {
|
|
|
|
class Event
|
|
{
|
|
public:
|
|
|
|
enum Type { INVALID, MOTION, PRESS, RELEASE, WHEEL, FOCUS, LEAVE };
|
|
|
|
private:
|
|
|
|
Type _type;
|
|
|
|
/*
|
|
* For PRESS and RELEASE events, '_code' contains the key code.
|
|
* For FOCUS events, '_code' is set to 1 (focus) or 0 (unfocus).
|
|
*/
|
|
int _code;
|
|
|
|
/*
|
|
* Absolute pointer position coordinates
|
|
*/
|
|
int _ax, _ay;
|
|
|
|
/*
|
|
* Relative pointer motion vector
|
|
*/
|
|
int _rx, _ry;
|
|
|
|
public:
|
|
|
|
/**
|
|
* Constructors
|
|
*/
|
|
Event():
|
|
_type(INVALID), _code(0), _ax(0), _ay(0), _rx(0), _ry(0) { }
|
|
|
|
Event(Type type, int code, int ax, int ay, int rx, int ry):
|
|
_type(type), _code(code),
|
|
_ax(ax), _ay(ay), _rx(rx), _ry(ry) { }
|
|
|
|
/**
|
|
* Accessors
|
|
*/
|
|
Type type() const { return _type; }
|
|
int code() const { return _code; }
|
|
int ax() const { return _ax; }
|
|
int ay() const { return _ay; }
|
|
int rx() const { return _rx; }
|
|
int ry() const { return _ry; }
|
|
|
|
bool is_absolute_motion() const { return _type == MOTION && !_rx && !_ry; }
|
|
bool is_relative_motion() const { return _type == MOTION && (_rx || _ry); }
|
|
};
|
|
}
|
|
|
|
#endif /* _INCLUDE__INPUT__EVENT_H_ */
|