FlightGear
next
FGKeyboardInput.hxx
Go to the documentation of this file.
1
// FGKeyboardInput.hxx -- handle user input from keyboard devices
2
//
3
// Written by Torsten Dreyer, started August 2009
4
// Based on work from David Megginson, started May 2001.
5
//
6
// Copyright (C) 2009 Torsten Dreyer, Torsten (at) t3r _dot_ de
7
// Copyright (C) 2001 David Megginson, david@megginson.com
8
//
9
// This program is free software; you can redistribute it and/or
10
// modify it under the terms of the GNU General Public License as
11
// published by the Free Software Foundation; either version 2 of the
12
// License, or (at your option) any later version.
13
//
14
// This program is distributed in the hope that it will be useful, but
15
// WITHOUT ANY WARRANTY; without even the implied warranty of
16
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17
// General Public License for more details.
18
//
19
// You should have received a copy of the GNU General Public License
20
// along with this program; if not, write to the Free Software
21
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
22
//
23
// $Id$
24
25
#ifndef _FGKEYBOARDINPUT_HXX
26
#define _FGKEYBOARDINPUT_HXX
27
28
#ifndef __cplusplus
29
# error This library requires C++
30
#endif
31
32
#include "
FGCommonInput.hxx
"
33
#include "
FGButton.hxx
"
34
#include <simgear/structure/subsystem_mgr.hxx>
35
#include <simgear/props/tiedpropertylist.hxx>
36
38
// The Keyboard Input Class
40
class
FGKeyboardInput
:
public
SGSubsystem,
41
FGCommonInput
42
{
43
public
:
44
FGKeyboardInput
();
45
virtual
~FGKeyboardInput
();
46
47
// Subsystem API.
48
void
bind
()
override
;
49
void
init
()
override
;
50
void
postinit
()
override
;
51
void
unbind
()
override
;
52
void
update
(
double
dt)
override
;
53
54
// Subsystem identification.
55
static
const
char
*
staticSubsystemClassId
() {
return
"input-keyboard"
; }
56
57
static
const
int
MAX_KEYS
= 1024;
58
59
private
:
60
const
binding_list_t
& _find_key_bindings (
unsigned
int
k,
int
modifiers);
61
void
doKey (
int
k,
int
modifiers,
int
x,
int
y);
62
63
static
void
keyHandler(
int
key,
int
keymod,
int
mousex,
int
mousey);
64
static
FGKeyboardInput
* keyboardInput;
65
FGButton
bindings[
MAX_KEYS
];
66
SGPropertyNode_ptr _key_event;
67
int
_key_code;
68
int
_key_modifiers;
69
bool
_key_pressed;
70
bool
_key_shift;
71
bool
_key_ctrl;
72
bool
_key_alt;
73
bool
_key_meta;
74
bool
_key_super;
75
bool
_key_hyper;
76
simgear::TiedPropertyList _tiedProperties;
77
};
78
79
#endif
FGButton.hxx
FGCommonInput.hxx
FGButton
Definition
FGButton.hxx:31
FGCommonInput
Definition
FGCommonInput.hxx:40
FGCommonInput::binding_list_t
SGBindingList binding_list_t
Definition
FGCommonInput.hxx:42
FGKeyboardInput::init
void init() override
Definition
FGKeyboardInput.cxx:95
FGKeyboardInput::update
void update(double dt) override
Definition
FGKeyboardInput.cxx:160
FGKeyboardInput::unbind
void unbind() override
Definition
FGKeyboardInput.cxx:155
FGKeyboardInput::postinit
void postinit() override
Definition
FGKeyboardInput.cxx:100
FGKeyboardInput::staticSubsystemClassId
static const char * staticSubsystemClassId()
Definition
FGKeyboardInput.hxx:55
FGKeyboardInput::~FGKeyboardInput
virtual ~FGKeyboardInput()
Definition
FGKeyboardInput.cxx:88
FGKeyboardInput::FGKeyboardInput
FGKeyboardInput()
Definition
FGKeyboardInput.cxx:72
FGKeyboardInput::bind
void bind() override
Definition
FGKeyboardInput.cxx:133
FGKeyboardInput::MAX_KEYS
static const int MAX_KEYS
Definition
FGKeyboardInput.hxx:57
src
Input
FGKeyboardInput.hxx
Generated on Tue Jun 3 2025 12:58:39 for FlightGear by
1.13.2