00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef GLUONBUTTONS_H
00020 #define GLUONBUTTONS_H
00021
00022 #include "gluon_input_export.h"
00023 #include "gluondevices.h"
00024
00025 #include <core/singleton.h>
00026
00027 #include <QtCore/QObject>
00028
00029 namespace GluonInput
00030 {
00031 class GLUON_INPUT_EXPORT GluonButtons : public GluonCore::Singleton<GluonButtons>
00032 {
00033 Q_OBJECT
00034 Q_ENUMS( KeyboardButton )
00035 Q_ENUMS( JoystickButton )
00036 Q_ENUMS( MouseButton )
00037 Q_ENUMS( RelAbs )
00038
00039 public:
00040 enum KeyboardButton
00041 {
00042 A = 4,
00043 B,
00044 C,
00045 D,
00046 E,
00047 F,
00048 G,
00049 H,
00050 I,
00051 J,
00052 K,
00053 L,
00054 M,
00055 N,
00056 O,
00057 P,
00058 Q,
00059 R,
00060 S,
00061 T,
00062 U,
00063 V,
00064 W,
00065 X,
00066 Y,
00067 Z,
00068 ONE,
00069 TWO,
00070 THREE,
00071 FOUR,
00072 FIVE,
00073 SIX,
00074 SEVEN,
00075 EIGHT,
00076 NINE,
00077 ZERO,
00078 RETURN,
00079 ESC,
00080 DEL,
00081 TAB,
00082 SPACE,
00083 MINUS,
00084 EQUAL,
00085 LEFT_BRACKET,
00086 RIGHT_BRACKET,
00087 QUOTE,
00088 NON_US_HASH_AND_TILDE,
00089 SEMICOLON,
00090 APOSTROPHE,
00091 GRAVE_ACCENT_ANF_TILDE,
00092 COMMA,
00093 PUNCTUATION,
00094 SLASH,
00095 CAPS_LOCK,
00096 F_ONE,
00097 F_TWO,
00098 F_THREE,
00099 F_FOUR,
00100 F_FIVE,
00101 F_SIX,
00102 F_SEVEN,
00103 F_EIGHT,
00104 F_NINE,
00105 F_TEN,
00106 F_ELEVEN,
00107 F_TWELVE,
00108 PRINTSCREEN,
00109 SCROLL,
00110 PAUSE,
00111 INSERT,
00112 HOME,
00113 PAGEUP,
00114 DELETE_FORWARD,
00115 END,
00116 PAGEDOWN,
00117 RIGHT_ARROW,
00118 LEFT_ARROW,
00119 DOWN_ARROW,
00120 UP_ARROW,
00121 KEYPAD_NUM_LOCK_AND_CLEAR,
00122 Keypad_SLASH,
00123 KEYPARD_STAR,
00124 KEYPAD_MINUS,
00125 KEYPAD_PLUS,
00126 KEYPAD_ENTER,
00127 KEYPAD_ONE,
00128 KEYPAD_TWO,
00129 KEYPAD_THREE,
00130 KEYPAD_FOUR,
00131 KEYPAD_FIVE,
00132 KEYPAD_SIX,
00133 KEYPAD_SEVEN,
00134 KEYPAD_EIGHT,
00135 KEYPAD_NINE,
00136 KEYPAD_ZERO,
00137 KEYPAD_PUNCTUATION_AND_DELETE,
00138 NON_US_BACKSLASH_AND_PIPE,
00139 APPLICATION,
00140 POWER,
00141 KEYPAD_EQUAL,
00142 F_THIRTEEN,
00143 F_FOURTEEN,
00144 F_FIFTEEN,
00145 F_SIXTEEN,
00146 F_SEVENTEEN,
00147 F_EIGHTTEEN,
00148 F_NINETEEN,
00149 F_TWENTY,
00150 F_TWENTYONE,
00151 F_TWENTYTWO,
00152 F_TWENTYTHREE,
00153 F_TWENTYFOUR,
00154 EXECUTE,
00155 HELP,
00156 MENU,
00157 SELECT,
00158 STOP,
00159 AGAIN,
00160 UNDO,
00161 CUT,
00162 COPY,
00163 PASTE,
00164 FIND,
00165 MUTE,
00166 VOLUME_UP,
00167 VOLUME_DOWN,
00168 LOCKING_CAPS_LOCK,
00169 LOCKING_NUM_LOCK,
00170 LOCKING_SCROLL_LOCK,
00171 KEYPAD_COMMA,
00172 KEYPAD_EQUAL_SIGN,
00173 INTERNATIONAL_ONE,
00174 INTERNATIONAL_TWO,
00175 INTERNATIONAL_THREE,
00176 INTERNATIONAL_FOUR,
00177 INTERNATIONAL_FIVE,
00178 INTERNATIONAL_SIX,
00179 INTERNATIONAL_SEVEN,
00180 INTERNATIONAL_EIGHT,
00181 INTERNATIONAL_NINE,
00182 LANG_ONE,
00183 LANG_TWO,
00184 LANG_THREE,
00185 LANG_FOUR,
00186 LANG_FIVE,
00187 LANG_SIX,
00188 LANG_SEVEN,
00189 LANG_EIGHT,
00190 LANG_NINE,
00191 ALTERNATE_ERASE,
00192 SYSREG_AND_ATTENTION,
00193 CANCEL,
00194 CLEAR,
00195 PROPR,
00196 RETURN_SECOND,
00197 SEPARATOR,
00198 OUT,
00199 OPER,
00200 CLEAR_AND_AGAIN,
00201 CRSEL_AND_PROPS,
00202 EXSEL,
00203 KEYPAD_ZEROZERO = 176,
00204 KEYPAD_ZEROZEROZERO,
00205 THOUSANDS_SEPARATOR,
00206 DECIMAL_SEPARATOR,
00207 CURRENCY_UNIT,
00208 CURRENCY_SUBUNIT,
00209 KEYPAD_LEFT_PARENTHESE,
00210 KEYPAD_RIGHT_PARENTHESE,
00211 KEYPAD_LEFT_CURLY_BRACKET,
00212 KEYPAD_RIGHT_CURLY_BRACKET,
00213 TAB_SECOND,
00214 BACKSPACE,
00215 KEYPAD_A,
00216 KEYPAD_B,
00217 KEYPAD_C,
00218 KEYPAD_D,
00219 KEYPAD_E,
00220 KEYPAD_F,
00221 KEYPAD_XOR,
00222 KEYPAD_CARET,
00223 KEYPAD_PROCENT,
00224 KEYPAD_LESSTHAN,
00225 KEYPAD_GREATERTHAN,
00226 KEYPAD_AMPERSAND,
00227 KEYPAD_AMPERSANDAMPERSAND,
00228 KEYPAD_PIPE,
00229 KEYPAD_PIPEPIPE,
00230 KEYPAD_COLON,
00231 KEYPAD_HASH,
00232 KEYPAD_SPACE,
00233 KEYPAD_AT,
00234 KEYPAD_EXCLAMATION_MARK,
00235 KEYPAD_MEMORY_STORE,
00236 KEYPAD_MEMORY_RECALL,
00237 KEYPAD_MEMORY_CLEAR,
00238 KEYPAD_MEMORY_ADD,
00239 KEYPAD_MEMORY_SUBTRACT,
00240 KEYPAD_MEMORY_MULTIPLY,
00241 KEYPAD_MEMORY_DIVIDE,
00242 KEYPAD_PLUS_AND_MINUS,
00243 KEYPAD_CLEAR,
00244 KEYPAD_CLEAR_ENTRY,
00245 KEYPAD_BINARY,
00246 KEYPAD_OCTAL,
00247 KEYPAD_DECIMAL,
00248 KEYPAD_HEXADECIMAL,
00249 LEFT_CTRL = 224,
00250 LEFT_SHIFT,
00251 LEFT_ALT,
00252 LEFT_GUI,
00253 RIGHT_CTRL,
00254 RIGHT_SHIFT,
00255 RIGHT_ALT,
00256 RIGHT_GUI
00257 };
00258
00259 enum RelAbs
00260 {
00261 HWHEEL = -1,
00262 MISC = 0,
00263 X_REL = 48,
00264 Y_REL = 49,
00265 Z_REL = 50,
00266 X_ABS = 48,
00267 Y_ABS = 49,
00268 Z_ABS = 50,
00269 ROTATION_X_AXIS,
00270 ROTATION_Y_AXIS,
00271 ROTATION_Z_AXIS,
00272 DIAL = 55,
00273 WHEEL_REL,
00274 HAT_SWITCH,
00275 XTILT = 61,
00276 YTILT,
00277 RUDDER = 186,
00278 THROTTLE,
00279 GAS = 196,
00280 BRAKE
00281 };
00282
00283 enum MouseButton
00284 {
00285 MOUSE_LEFT_BUTTON = 1,
00286 MOUSE_RIGHT_BUTTON,
00287 MOUSE_MIDDLE_BUTTON,
00288 MOUSE_BUTTON_FOUR,
00289 MOUSE_BUTTON_FIVE,
00290 MOUSE_BUTTON_SIX,
00291 MOUSE_BUTTON_SEVEN,
00292 MOUSE_BUTTON_EIGHT,
00293 };
00294
00295 enum JoystickButton
00296 {
00297 BUTTON_ONE = 1,
00298 BUTTON_TWO,
00299 BUTTON_THREE,
00300 BUTTON_FOUR,
00301 BUTTON_FIVE,
00302 BUTTON_SIX,
00303 BUTTON_SEVEN,
00304 BUTTON_EIGHT,
00305 BUTTON_NINE
00306 };
00307
00308 GluonButtons();
00309
00310 QString buttonName( DeviceFlag deviceType, int code );
00311 QString axisName( DeviceFlag deviceType, int code );
00312
00313 private:
00314 ~GluonButtons();
00315
00316 };
00317 }
00318
00320 #endif // KCL_H