comparison engine/core/eventchannel/key/ec_keyevent.h @ 0:4a0efb7baf70

* Datasets becomes the new trunk and retires after that :-)
author mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
date Sun, 29 Jun 2008 18:44:17 +0000
parents
children e84dccee1bb7
comparison
equal deleted inserted replaced
-1:000000000000 0:4a0efb7baf70
1 /***************************************************************************
2 * Copyright (C) 2005-2008 by the FIFE team *
3 * http://www.fifengine.de *
4 * This file is part of FIFE. *
5 * *
6 * FIFE is free software; you can redistribute it and/or modify *
7 * it under the terms of the GNU General Public License as published by *
8 * the Free Software Foundation; either version 2 of the License, or *
9 * (at your option) any later version. *
10 * *
11 * This program is distributed in the hope that it will be useful, *
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
14 * GNU General Public License for more details. *
15 * *
16 * You should have received a copy of the GNU General Public License *
17 * along with this program; if not, write to the *
18 * Free Software Foundation, Inc., *
19 * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA *
20 ***************************************************************************/
21
22 #ifndef FIFE_EVENTCHANNEL_KEYEVENT_H
23 #define FIFE_EVENTCHANNEL_KEYEVENT_H
24
25 // Standard C++ library includes
26 //
27
28 // 3rd party library includes
29 //
30
31 // FIFE includes
32 // These includes are split up in two parts, separated by one empty line
33 // First block: files included from the FIFE root src directory
34 // Second block: files included from the same folder
35 //
36 #include "eventchannel/base/ec_inputevent.h"
37 #include "eventchannel/source/ec_ieventsource.h"
38
39 #include "ec_key.h"
40
41 namespace FIFE {
42
43 /** Class for key events
44 */
45 class KeyEvent: public InputEvent {
46 public:
47 enum KeyEventType {
48 UNKNOWN = -1,
49 PRESSED = 0,
50 RELEASED
51 };
52
53 /** Constructor
54 */
55 KeyEvent():
56 InputEvent(),
57 m_eventtype(UNKNOWN),
58 m_isnumericpad(false),
59 m_key(Key(0)) {}
60
61 /** Destructor.
62 */
63 virtual ~KeyEvent() {}
64
65 KeyEventType getType() const { return m_eventtype; }
66 void setType(KeyEventType type) { m_eventtype = type; }
67
68 bool isNumericPad() const { return m_isnumericpad; }
69 void setNumericPad(bool ispad) { m_isnumericpad = ispad; }
70
71 const Key& getKey() const { return m_key; }
72 void setKey(const Key& key) { m_key = key; }
73
74 virtual bool isAltPressed() const { return InputEvent::isAltPressed(); }
75 virtual void setAltPressed(bool pressed) { InputEvent::setAltPressed(pressed); }
76 virtual bool isControlPressed() const { return InputEvent::isControlPressed(); }
77 virtual void setControlPressed(bool pressed) { InputEvent::setControlPressed(pressed); }
78 virtual bool isMetaPressed() const { return InputEvent::isMetaPressed(); }
79 virtual void setMetaPressed(bool pressed) { InputEvent::setMetaPressed(pressed); }
80 virtual bool isShiftPressed() const { return InputEvent::isShiftPressed(); }
81 virtual void setShiftPressed(bool pressed) { InputEvent::setShiftPressed(pressed); }
82
83 virtual void consume() { InputEvent::consume(); }
84 virtual bool isConsumed() const { return InputEvent::isConsumed(); }
85 virtual IEventSource* getSource() { return InputEvent::getSource(); }
86 virtual void setSource(IEventSource* source) { InputEvent::setSource(source); }
87 virtual gcn::Widget* getSourceWidget() { return InputEvent::getSourceWidget(); }
88 virtual void setSourceWidget(gcn::Widget* widget) { InputEvent::setSourceWidget(widget); }
89 virtual int getTimeStamp() const { return InputEvent::getTimeStamp(); }
90 virtual void setTimeStamp(int timestamp ) { InputEvent::setTimeStamp(timestamp); }
91
92 virtual const std::string& getName() const {
93 const static std::string eventName("KeyEvent");
94 return eventName;
95 }
96 virtual std::string getDebugString() const { return InputEvent::getDebugString(); }
97
98 private:
99 KeyEventType m_eventtype;
100 bool m_isnumericpad;
101 Key m_key;
102 };
103
104 } //FIFE
105
106 #endif