00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef GLUONBUTTONS_H
00022 #define GLUONBUTTONS_H
00023
00024 #include "gluon_input_export.h"
00025 #include "gluondevices.h"
00026
00027 #include <core/singleton.h>
00028
00029 #include <QtCore/QObject>
00030
00031 namespace GluonInput
00032 {
00033 class GLUON_INPUT_EXPORT GluonButtons : public GluonCore::Singleton<GluonButtons>
00034 {
00035 Q_ENUMS( Button )
00036 Q_ENUMS( Absolute )
00037 Q_ENUMS( Relative )
00038
00039 public:
00040 enum Button
00041 {
00042 ESC = 1,
00043 ONE,
00044 TWO,
00045 THREE,
00046 FOUR,
00047 FIVE,
00048 SIX,
00049 SEVEN,
00050 EIGHT,
00051 NINE,
00052 ZERO,
00053 MINUS,
00054 EQUAL,
00055 BACKSPACE,
00056 TAB,
00057 Q,
00058 W,
00059 E,
00060 R,
00061 T,
00062 Y,
00063 U,
00064 I,
00065 O,
00066 P,
00067 LEFT_BRACKET,
00068 RIGHT_BRACKET,
00069 ENTER,
00070 LEFT_CONTROL,
00071 A,
00072 S,
00073 D,
00074 F,
00075 G,
00076 H,
00077 J,
00078 K,
00079 L,
00080 SEMICOLON,
00081 APOSTROPHE,
00082 GRAVE,
00083 LEFT_SHIFT,
00084 BACKSLASH,
00085 Z,
00086 X,
00087 C,
00088 V,
00089 B,
00090 N,
00091 M,
00092 COMMA,
00093 PUNCTUATION,
00094 SLASH,
00095 RIGHT_SHIFT,
00096 KEYPAD_ASTERISK,
00097 LEFT_ALT,
00098 SPACE,
00099 CAPSLOCK,
00100 F_ONE,
00101 F_TWO,
00102 F_THREE,
00103 F_FOUR,
00104 F_FIVE,
00105 F_SIX,
00106 F_SEVEN,
00107 F_EIGHT,
00108 F_NINE,
00109 F_TEN,
00110 NUM_LOCK,
00111 SCROLL_LOCK,
00112 KEYPAD_SEVEN,
00113 KEYPAD_EIGHT,
00114 KEYPAD_NINE,
00115 KEYPAD_MINUSE,
00116 KEYPAD_FOUR,
00117 KEYPAD_FIVE,
00118 KEYPAD_SIX,
00119 KEYPAD_PLUS,
00120 KEYPAD_ONE,
00121 KEYPAD_TWO,
00122 KEYPAD_THREE, KEYPAD_ZERO,
00123 KEYPAD_PUNCTUATION,
00124 ZENKAKUHANKAKU = 85,
00125 ONEZEROTWOND,
00126 F_ELEVEN,
00127 F_TWELVE,
00128 R_ZERO,
00129 KATAKANA,
00130 HIRAGANA,
00131 HENKAN,
00132 KATAKANAHIRAGANA,
00133 MUHENKAN, KEYPAD_JPCOMMA,
00134 KEYPAD_ENTER,
00135 RIGHT_CTRL,
00136 KEYPAD_SLASH,
00137 SYSRQ,
00138 RIGHT_ALT,
00139 LINEFEED,
00140 HOME,
00141 UP_ARROW,
00142 PAGEUP,
00143 LEFT_ARROW,
00144 RIGHT_ARROW,
00145 END,
00146 DOWN_ARROW,
00147 PAGEDOWN,
00148 INSERT,
00149 DELETE,
00150 MACRO,
00151 MUTE,
00152 VOLUME_DOWN,
00153 VOLUME_UP,
00154 POWER,
00155 KEYPAD_EQUAL,
00156 KEYPAD_PLUS_AND_MINUS,
00157 PAUSE,
00158 KEYPAD_COMMA = 121,
00159 HANGUEL,
00160 HANJA,
00161 YEN,
00162 LEFT_META,
00163 RIGHT_META,
00164 COMPOSE,
00165 STOP,
00166 AGAIN,
00167 PROPS,
00168 UNDO,
00169 FRONT,
00170 COPY,
00171 OPEN,
00172 PASTE,
00173 FIND,
00174 CUT,
00175 HELP,
00176 MENU,
00177 CALC,
00178 SETUP,
00179 SLEEP,
00180 WAKEUP,
00181 FILE,
00182 SEND_FILE,
00183 DELETE_FILE,
00184 X_FER,
00185 PROG_ONE,
00186 PROG_TWO,
00187 WWW,
00188 MSDOS,
00189 COFFEE,
00190 DIRECTION,
00191 CYCLE_WINDOWS,
00192 MAIL,
00193 BOOKMARKS,
00194 COMPUTER,
00195 BACK,
00196 FORWARD,
00197 CLOSE_CD,
00198 EJECT_CD,
00199 EJECT_AND_CLOSE_CD,
00200 NEXT_SONG,
00201 PLAY_PAUSE,
00202 PREVIOUS_SONG,
00203 STOP_CD,
00204 RECORD,
00205 REWIND,
00206 PHONE,
00207 ISOKEY,
00208 CONFIG,
00209 HOMEPAGE,
00210 REFRESH,
00211 EXIT,
00212 MOVE,
00213 EDIT,
00214 SCROLLUP,
00215 SCROLLDOWN,
00216 KEYPAD_LEFT_PARENTHESE,
00217 KEYPAD_RIGHT_PARENTHESE,
00218 F_THIRTEEN = 183,
00219 F_FOURTEEN,
00220 F_FIFTEEN,
00221 F_SIXTEEN,
00222 F_SEVENTEEN,
00223 F_EIGHTTEEN,
00224 F_NINETEEN,
00225 F_TWENTY,
00226 F_TWENTYONE,
00227 F_TWENTYTWO,
00228 F_TWENTYTHREE,
00229 F_TWENTYFOUR,
00230 PLAY_CD = 200,
00231 PAUSE_CD,
00232 PROG_THREE,
00233 PROG_FOUR,
00234 SUSPEND = 205,
00235 CLOSE,
00236 PLAY,
00237 FASTFORWARD,
00238 BASS_BOOST,
00239 PRINT,
00240 HP,
00241 CAMERA,
00242 SOUND,
00243 QUESTION,
00244 EMAIL,
00245 CHAT,
00246 SEARCH,
00247 CONNECT,
00248 FINANCE,
00249 SPORT,
00250 SHOP,
00251 ALT_ERASE,
00252 CANCEL,
00253 BRIGHTNESS_DOWN,
00254 BRIGHTNESS_UP,
00255 MEDIA,
00256 SWITCH_VIDEOMODE,
00257 KB_ILLUM_TOGGLE,
00258 KB_ILLUM_DOWN,
00259 KB_ILLUM_UP,
00260 BUTTON_ZERO = 256,
00261 BUTTON_ONE,
00262 BUTTON_TWO,
00263 BUTTON_THREE,
00264 BUTTON_FOUR,
00265 BUTTON_FIVE,
00266 BUTTON_SIX,
00267 BUTTON_SEVEN,
00268 BUTTON_EIGHT,
00269 BUTTON_NINE,
00270 MOUSE_LEFT_BUTTON = 272,
00271 MOUSE_RIGHT_BUTTON,
00272 MOUSE_MIDDLE_BUTTON,
00273 MOUSE_BUTTON_FOUR,
00274 MOUSE_BUTTON_FIVE,
00275 MOUSE_BUTTON_SIX,
00276 MOUSE_BUTTON_SEVEN,
00277 MOUSE_BUTTON_EIGHT,
00278 TRIGGER = 288,
00279 THUMB_BUTTON_ONE,
00280 THUMB_BUTTON_TWO,
00281 TOP_BUTTON_ONE,
00282 TOP_BUTTON_TWO,
00283 PINKIE_BUTTON,
00284 BASE_BUTTON_ONE,
00285 BASE_BUTTON_TWO,
00286 BASE_BUTTON_THREE,
00287 BASE_BUTTON_FOUR,
00288 BASE_BUTTON_FIVE,
00289 BASE_BUTTON_SIX,
00290 BUTTON_DEAD = 303,
00291 BUTTON_A,
00292 BUTTON_B,
00293 BUTTON_C,
00294 BUTTON_X,
00295 BUTTON_Y,
00296 BUTTON_Z,
00297 BUTTON_TL_ONE,
00298 BUTTON_TR_ONE,
00299 BUTTON_TL_TWO,
00300 BUTTON_TR_TWO,
00301 BUTTON_SELECT,
00302 BUTTON_START,
00303 BUTTON_MODE,
00304 BUTTON_THUMB_LEFT,
00305 BUTTON_THUMB_RIGHT,
00306 TOOL_PEN = 320,
00307 TOOL_RUBBER,
00308 TOOL_BRUSH,
00309 TOOL_PENCIL,
00310 TOOL_AIRBRUSH,
00311 TOOL_FINGER,
00312 TOOL_MOUSE,
00313 TOOL_LENS,
00314 TOUCH = 330,
00315 STYLUS,
00316 STYLUS_TWO,
00317 DOUBLETAB,
00318 TRIPLETAB,
00319 GEAR_UP = 336,
00320 GEAR_DOWN,
00321 OK = 352,
00322 SELECT,
00323 GOTO,
00324 CLEAR,
00325 POWER_TWO,
00326 OPTION,
00327 INFO,
00328 TIME,
00329 VENDOR,
00330 ARCHIVE,
00331 PROGRAM,
00332 CHANNEL,
00333 FAVORITES,
00334 EPG,
00335 PVR,
00336 MHP,
00337 LANGUAGE,
00338 TITLE,
00339 SUBTITLE,
00340 ANGLE,
00341 ZOOM,
00342 MODE,
00343 KEYBOARD,
00344 SCREEN,
00345 PC,
00346 TV,
00347 TV_TWO,
00348 VCR,
00349 VCR_TWO,
00350 SAT,
00351 SAT_TWO,
00352 CD,
00353 TAPE,
00354 RADIO,
00355 TUNER,
00356 PLAYER,
00357 TEXT,
00358 DVD,
00359 AUX,
00360 MP_THREE,
00361 AUDIO,
00362 VIDEO,
00363 DIRECTORY,
00364 LIST,
00365 MEMO,
00366 CALENDAR,
00367 RED,
00368 GREEN,
00369 YELLOW,
00370 BLUE,
00371 CHANNEL_UP,
00372 CHANNEL_DOWN,
00373 FIRST,
00374 LAST,
00375 AB,
00376 NEXT,
00377 RESTART,
00378 SLOW,
00379 SHUFFLE,
00380 BREAK,
00381 PREVIOUS,
00382 DIGITS,
00383 TEEN,
00384 TWEN,
00385 DELEOL = 448,
00386 DELEOS,
00387 INSLINE,
00388 DELLINE,
00389 FN = 464,
00390 FN_ESC,
00391 FN_F_ONE,
00392 FN_F_TWO,
00393 FN_F_THREE,
00394 FN_F_FOUR,
00395 FN_F_FIVE,
00396 FN_F_SIX,
00397 FN_F_SEVEN,
00398 FN_F_EIGHT,
00399 FN_F_NINE,
00400 FN_F_TEN,
00401 FN_F_ELEVEN,
00402 FN_F_TWELVE,
00403 FN_ONE,
00404 FN_TWO,
00405 FN_D,
00406 FN_E,
00407 FN_F,
00408 FN_S,
00409 FN_B
00410 };
00411
00412 enum Relative
00413 {
00414 X_REL,
00415 Y_REL,
00416 Z_REL,
00417 HWHEEL = 6,
00418 DIAL,
00419 WHEEL_REL,
00420 MISC_REL
00421 };
00422
00423 enum Absolute
00424 {
00425 X_ABS,
00426 Y_ABS,
00427 Z_ABS,
00428 Rx,
00429 Ry,
00430 Rz,
00431 THROTTLE,
00432 RUDDER,
00433 WHEEL_ABS,
00434 GAS,
00435 BRAKE,
00436 HAT_ZERO_X = 16,
00437 HAT_ZERO_Y,
00438 HAT_ONE_X,
00439 HAT_ONE_Y,
00440 HAT_TWO_X,
00441 HAT_TWO_Y,
00442 HAT_THREE_X,
00443 HAT_THREE_Y,
00444 PRESSURE,
00445 DISTANCE,
00446 X_TILT,
00447 Y_TILT,
00448 TOOLWIDTH,
00449 VOLUME = 32,
00450 MISC_ABS = 40
00451 };
00452
00453 QString buttonName( DeviceFlag deviceType, int code );
00454 QString axisName( DeviceFlag deviceType, int code );
00455
00456 private:
00457 friend class GluonCore::Singleton<GluonButtons>;
00458 GluonButtons();
00459 ~GluonButtons();
00460
00461 };
00462 }
00463
00465 #endif // KCL_H