Databaseconnectionclasses  0.5.3
hk_key.h
1 // ****************************************************************************
2 // copyright (c) 2000-2005 Horst Knorr <hk_classes@knoda.org>
3 // This file is part of the hk_classes library.
4 // This file may be distributed and/or modified under the terms of the
5 // GNU Library Public License version 2 as published by the Free Software
6 // Foundation and appearing in the file COPYING included in the
7 // packaging of this file.
8 // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
9 // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
10 // ****************************************************************************
11 #ifndef HK_KEY
12 #define HK_KEY
13 #include "hk_class.h"
14 class hk_keyprivate;
15 
16 
17 
18 /*The following key codes (according to Qt) are used*/
19 
28 class hk_key:public hk_class
29 {
30  friend class hk_visibleprivate;
31  public:
36  enum enum_keycode {
37  key_Escape = 0x1000, // misc keys
38  key_Tab = 0x1001,
39  key_Backtab = 0x1002, key_BackTab = key_Backtab,
40  key_Backspace = 0x1003, key_BackSpace = key_Backspace,
41  key_Return = 0x1004,
42  key_Enter = 0x1005,
43  key_Insert = 0x1006,
44  key_Delete = 0x1007,
45  key_Pause = 0x1008,
46  key_Print = 0x1009,
47  key_SysReq = 0x100a,
48  key_Clear = 0x100b,
49  key_Home = 0x1010, // cursor movement
50  key_End = 0x1011,
51  key_Left = 0x1012,
52  key_Up = 0x1013,
53  key_Right = 0x1014,
54  key_Down = 0x1015,
55  key_Prior = 0x1016, key_PageUp = key_Prior,
56  key_Next = 0x1017, key_PageDown = key_Next,
57  key_Shift = 0x1020, // modifiers
58  key_Control = 0x1021,
59  key_Meta = 0x1022,
60  key_Alt = 0x1023,
61  key_CapsLock = 0x1024,
62  key_NumLock = 0x1025,
63  key_ScrollLock = 0x1026,
64  key_F1 = 0x1030, // function keys
65  key_F2 = 0x1031,
66  key_F3 = 0x1032,
67  key_F4 = 0x1033,
68  key_F5 = 0x1034,
69  key_F6 = 0x1035,
70  key_F7 = 0x1036,
71  key_F8 = 0x1037,
72  key_F9 = 0x1038,
73  key_F10 = 0x1039,
74  key_F11 = 0x103a,
75  key_F12 = 0x103b,
76  key_F13 = 0x103c,
77  key_F14 = 0x103d,
78  key_F15 = 0x103e,
79  key_F16 = 0x103f,
80  key_F17 = 0x1040,
81  key_F18 = 0x1041,
82  key_F19 = 0x1042,
83  key_F20 = 0x1043,
84  key_F21 = 0x1044,
85  key_F22 = 0x1045,
86  key_F23 = 0x1046,
87  key_F24 = 0x1047,
88  key_F25 = 0x1048, // F25 .. F35 only on X11
89  key_F26 = 0x1049,
90  key_F27 = 0x104a,
91  key_F28 = 0x104b,
92  key_F29 = 0x104c,
93  key_F30 = 0x104d,
94  key_F31 = 0x104e,
95  key_F32 = 0x104f,
96  key_F33 = 0x1050,
97  key_F34 = 0x1051,
98  key_F35 = 0x1052,
99  key_Super_L = 0x1053, // extra keys
100  key_Super_R = 0x1054,
101  key_Menu = 0x1055,
102  key_Hyper_L = 0x1056,
103  key_Hyper_R = 0x1057,
104  key_Help = 0x1058,
105  key_Direction_L = 0x1059,
106  key_Direction_R = 0x1060,
107 
108  // International input method support (X keycode - 0xEE00)
109  // Only interesting if you are writing your own input method
110 
111  // International & multi-key character composition
112  key_Multi_key = 0x1120, // Multi-key character compose
113  key_Codeinput = 0x1137,
114  key_SingleCandidate = 0x113c,
115  key_MultipleCandidate = 0x113d,
116  key_PreviousCandidate = 0x113e,
117 
118  // Misc Functions
119  key_Mode_switch = 0x117e, // Character set switch
120  //key_script_switch = 0x117e, // Alias for mode_switch
121 
122  // Japanese keyboard support
123  key_Kanji = 0x1121, // Kanji, Kanji convert
124  key_Muhenkan = 0x1122, // Cancel Conversion
125  //key_Henkan_Mode = 0x1123, // Start/Stop Conversion
126  key_Henkan = 0x1123, // Alias for Henkan_Mode
127  key_Romaji = 0x1124, // to Romaji
128  key_Hiragana = 0x1125, // to Hiragana
129  key_Katakana = 0x1126, // to Katakana
130  key_Hiragana_Katakana = 0x1127, // Hiragana/Katakana toggle
131  key_Zenkaku = 0x1128, // to Zenkaku
132  key_Hankaku = 0x1129, // to Hankaku
133  key_Zenkaku_Hankaku = 0x112a, // Zenkaku/Hankaku toggle
134  key_Touroku = 0x112b, // Add to Dictionary
135  key_Massyo = 0x112c, // Delete from Dictionary
136  key_Kana_Lock = 0x112d, // Kana Lock
137  key_Kana_Shift = 0x112e, // Kana Shift
138  key_Eisu_Shift = 0x112f, // Alphanumeric Shift
139  key_Eisu_toggle = 0x1130, // Alphanumeric toggle
140  //key_Kanji_Bangou = 0x1137, // Codeinput
141  //key_Zen_Koho = 0x113d, // Multiple/All Candidate(s)
142  //key_Mae_Koho = 0x113e, // Previous Candidate
143 
144  // Korean support
145  key_Hangul = 0x1131, // Hangul start/stop(toggle)
146  key_Hangul_Start = 0x1132, // Hangul start
147  key_Hangul_End = 0x1133, // Hangul end, English start
148  key_Hangul_Hanja = 0x1134, // Start Hangul->Hanja Conversion
149  key_Hangul_Jamo = 0x1135, // Hangul Jamo mode
150  key_Hangul_Romaja = 0x1136, // Hangul Romaja mode
151  key_Hangul_Codeinput = 0x1137, // Hangul code input mode
152  key_Hangul_Jeonja = 0x1138, // Jeonja mode
153  key_Hangul_Banja = 0x1139, // Banja mode
154  key_Hangul_PreHanja = 0x113a, // Pre Hanja conversion
155  key_Hangul_PostHanja = 0x113b, // Post Hanja conversion
156  key_Hangul_SingleCandidate = 0x113c, // Single candidate
157  key_Hangul_MultipleCandidate = 0x113d, // Multiple candidate
158  key_Hangul_PreviousCandidate = 0x113e, // Previous candidate
159  key_Hangul_Special = 0x113f, // Special symbols
160  //key_Hangul_switch = 0x117e, // Alias for mode_switch
161 
162  key_Space = 0x20, // 7 bit printable ASCII
163  key_Any = key_Space,
164  key_Exclam = 0x21,
165  key_QuoteDbl = 0x22,
166  key_NumberSign = 0x23,
167  key_Dollar = 0x24,
168  key_Percent = 0x25,
169  key_Ampersand = 0x26,
170  key_Apostrophe = 0x27,
171  key_ParenLeft = 0x28,
172  key_ParenRight = 0x29,
173  key_Asterisk = 0x2a,
174  key_Plus = 0x2b,
175  key_Comma = 0x2c,
176  key_Minus = 0x2d,
177  key_Period = 0x2e,
178  key_Slash = 0x2f,
179  key_0 = 0x30,
180  key_1 = 0x31,
181  key_2 = 0x32,
182  key_3 = 0x33,
183  key_4 = 0x34,
184  key_5 = 0x35,
185  key_6 = 0x36,
186  key_7 = 0x37,
187  key_8 = 0x38,
188  key_9 = 0x39,
189  key_Colon = 0x3a,
190  key_Semicolon = 0x3b,
191  key_Less = 0x3c,
192  key_Equal = 0x3d,
193  key_Greater = 0x3e,
194  key_Question = 0x3f,
195  key_At = 0x40,
196  key_A = 0x41,
197  key_B = 0x42,
198  key_C = 0x43,
199  key_D = 0x44,
200  key_E = 0x45,
201  key_F = 0x46,
202  key_G = 0x47,
203  key_H = 0x48,
204  key_I = 0x49,
205  key_J = 0x4a,
206  key_K = 0x4b,
207  key_L = 0x4c,
208  key_M = 0x4d,
209  key_N = 0x4e,
210  key_O = 0x4f,
211  key_P = 0x50,
212  key_Q = 0x51,
213  key_R = 0x52,
214  key_S = 0x53,
215  key_T = 0x54,
216  key_U = 0x55,
217  key_V = 0x56,
218  key_W = 0x57,
219  key_X = 0x58,
220  key_Y = 0x59,
221  key_Z = 0x5a,
222  key_BracketLeft = 0x5b,
223  key_Backslash = 0x5c,
224  key_BracketRight = 0x5d,
225  key_AsciiCircum = 0x5e,
226  key_Underscore = 0x5f,
227  key_QuoteLeft = 0x60,
228  key_BraceLeft = 0x7b,
229  key_Bar = 0x7c,
230  key_BraceRight = 0x7d,
231  key_AsciiTilde = 0x7e,
232 
233  // Latin 1 codes adapted from X: keysymdef.h,v 1.21 94/08/28 16:17:06
234 
235  key_nobreakspace = 0x0a0,
236  key_exclamdown = 0x0a1,
237  key_cent = 0x0a2,
238  key_sterling = 0x0a3,
239  key_currency = 0x0a4,
240  key_yen = 0x0a5,
241  key_brokenbar = 0x0a6,
242  key_section = 0x0a7,
243  key_diaeresis = 0x0a8,
244  key_copyright = 0x0a9,
245  key_ordfeminine = 0x0aa,
246  key_guillemotleft = 0x0ab, // left angle quotation mark
247  key_notsign = 0x0ac,
248  key_hyphen = 0x0ad,
249  key_registered = 0x0ae,
250  key_macron = 0x0af,
251  key_degree = 0x0b0,
252  key_plusminus = 0x0b1,
253  key_twosuperior = 0x0b2,
254  key_threesuperior = 0x0b3,
255  key_acute = 0x0b4,
256  key_mu = 0x0b5,
257  key_paragraph = 0x0b6,
258  key_periodcentered = 0x0b7,
259  key_cedilla = 0x0b8,
260  key_onesuperior = 0x0b9,
261  key_masculine = 0x0ba,
262  key_guillemotright = 0x0bb, // right angle quotation mark
263  key_onequarter = 0x0bc,
264  key_onehalf = 0x0bd,
265  key_threequarters = 0x0be,
266  key_questiondown = 0x0bf,
267  key_Agrave = 0x0c0,
268  key_Aacute = 0x0c1,
269  key_Acircumflex = 0x0c2,
270  key_Atilde = 0x0c3,
271  key_Adiaeresis = 0x0c4,
272  key_Aring = 0x0c5,
273  key_AE = 0x0c6,
274  key_Ccedilla = 0x0c7,
275  key_Egrave = 0x0c8,
276  key_Eacute = 0x0c9,
277  key_Ecircumflex = 0x0ca,
278  key_Ediaeresis = 0x0cb,
279  key_Igrave = 0x0cc,
280  key_Iacute = 0x0cd,
281  key_Icircumflex = 0x0ce,
282  key_Idiaeresis = 0x0cf,
283  key_ETH = 0x0d0,
284  key_Ntilde = 0x0d1,
285  key_Ograve = 0x0d2,
286  key_Oacute = 0x0d3,
287  key_Ocircumflex = 0x0d4,
288  key_Otilde = 0x0d5,
289  key_Odiaeresis = 0x0d6,
290  key_multiply = 0x0d7,
291  key_Ooblique = 0x0d8,
292  key_Ugrave = 0x0d9,
293  key_Uacute = 0x0da,
294  key_Ucircumflex = 0x0db,
295  key_Udiaeresis = 0x0dc,
296  key_Yacute = 0x0dd,
297  key_THORN = 0x0de,
298  key_ssharp = 0x0df,
299  key_agrave = 0x0e0,
300  key_aacute = 0x0e1,
301  key_acircumflex = 0x0e2,
302  key_atilde = 0x0e3,
303  key_adiaeresis = 0x0e4,
304  key_aring = 0x0e5,
305  key_ae = 0x0e6,
306  key_ccedilla = 0x0e7,
307  key_egrave = 0x0e8,
308  key_eacute = 0x0e9,
309  key_ecircumflex = 0x0ea,
310  key_ediaeresis = 0x0eb,
311  key_igrave = 0x0ec,
312  key_iacute = 0x0ed,
313  key_icircumflex = 0x0ee,
314  key_idiaeresis = 0x0ef,
315  key_eth = 0x0f0,
316  key_ntilde = 0x0f1,
317  key_ograve = 0x0f2,
318  key_oacute = 0x0f3,
319  key_ocircumflex = 0x0f4,
320  key_otilde = 0x0f5,
321  key_odiaeresis = 0x0f6,
322  key_division = 0x0f7,
323  key_oslash = 0x0f8,
324  key_ugrave = 0x0f9,
325  key_uacute = 0x0fa,
326  key_ucircumflex = 0x0fb,
327  key_udiaeresis = 0x0fc,
328  key_yacute = 0x0fd,
329  key_thorn = 0x0fe,
330  key_ydiaeresis = 0x0ff,
331 
332  // multimedia/internet keys - ignored by default - see QkeyEvent c'tor
333 
334  key_Back = 0x1061,
335  key_Forward = 0x1062,
336  key_Stop = 0x1063,
337  key_Refresh = 0x1064,
338 
339  key_VolumeDown = 0x1070,
340  key_VolumeMute = 0x1071,
341  key_VolumeUp = 0x1072,
342  key_BassBoost = 0x1073,
343  key_BassUp = 0x1074,
344  key_BassDown = 0x1075,
345  key_TrebleUp = 0x1076,
346  key_TrebleDown = 0x1077,
347 
348  key_MediaPlay = 0x1080,
349  key_MediaStop = 0x1081,
350  key_MediaPrev = 0x1082,
351  key_MediaNext = 0x1083,
352  key_MediaRecord = 0x1084,
353 
354  key_HomePage = 0x1090,
355  key_Favorites = 0x1091,
356  key_Search = 0x1092,
357  key_Standby = 0x1093,
358  key_OpenUrl = 0x1094,
359 
360  key_LaunchMail = 0x10a0,
361  key_LaunchMedia = 0x10a1,
362  key_Launch0 = 0x10a2,
363  key_Launch1 = 0x10a3,
364  key_Launch2 = 0x10a4,
365  key_Launch3 = 0x10a5,
366  key_Launch4 = 0x10a6,
367  key_Launch5 = 0x10a7,
368  key_Launch6 = 0x10a8,
369  key_Launch7 = 0x10a9,
370  key_Launch8 = 0x10aa,
371  key_Launch9 = 0x10ab,
372  key_LaunchA = 0x10ac,
373  key_LaunchB = 0x10ad,
374  key_LaunchC = 0x10ae,
375  key_LaunchD = 0x10af,
376  key_LaunchE = 0x10b0,
377  key_LaunchF = 0x10b1,
378 
379  key_MediaLast = 0x1fff,
380 
381  key_unknown = 0xffff
382  };
383 
384 
385 
386  hk_key(int keycode,int keystate,const hk_string& keytext);
387  hk_key(const hk_key&);
388  virtual ~hk_key();
389  enum enum_state{state_normal=0x0000,state_shift=0x0100,state_ctrl=0x0200, state_alt = 0x0400};
393  int state() const;
397  int key() const;
401  hk_string text() const;
402 
403 
404  bool operator=(const hk_key&);
405  bool operator==(const hk_key&);
406  bool operator!=(const hk_key&);
410  bool accept_key(void) const;
414  void set_accept_key(bool);
415 
416  protected:
417  hk_key();
418 
419  private:
420  hk_keyprivate* p_private;
421 
422 };
423 
424 
425 #endif //HK_KEY
basic class for all other defined classes.
Definition: hk_class.h:52
base class for a pressed key
Definition: hk_key.h:28
int state() const
Definition: hk_key.cpp:66
Definition: hk_visible.cpp:80
hk_string text() const
Definition: hk_key.cpp:76
Definition: hk_key.cpp:13
int key() const
Definition: hk_key.cpp:71
bool accept_key(void) const
Definition: hk_key.cpp:110
void set_accept_key(bool)
Definition: hk_key.cpp:116
enum_keycode
Definition: hk_key.h:36