NTrace
GPU ray tracing framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Keys.hpp
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2009-2011, NVIDIA Corporation
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions are met:
7  * * Redistributions of source code must retain the above copyright
8  * notice, this list of conditions and the following disclaimer.
9  * * Redistributions in binary form must reproduce the above copyright
10  * notice, this list of conditions and the following disclaimer in the
11  * documentation and/or other materials provided with the distribution.
12  * * Neither the name of NVIDIA Corporation nor the
13  * names of its contributors may be used to endorse or promote products
14  * derived from this software without specific prior written permission.
15  *
16  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
17  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19  * DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
20  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26  */
27 
28 #pragma once
29 #include "base/Defs.hpp"
30 
31 namespace FW
32 {
33 //------------------------------------------------------------------------
34 // Custom key identifier strings.
35 //------------------------------------------------------------------------
36 
37 #define FW_KEY_NONE ""
38 #define FW_KEY_MOUSE_LEFT "!MouseLeft" // Left (primary) mouse button.
39 #define FW_KEY_MOUSE_RIGHT "!MouseRight" // Right (secondary) mouse button.
40 #define FW_KEY_MOUSE_MIDDLE "!MouseMiddle" // Middle (ternary) mouse button.
41 #define FW_KEY_WHEEL_UP "!WheelUp" // Mouse wheel up.
42 #define FW_KEY_WHEEL_DOWN "!WheelDown" // Mouse wheel down.
43 #define FW_KEY_LEFT_SOFTKEY "LeftSoftKey" // Left softkey.
44 #define FW_KEY_RIGHT_SOFTKEY "RightSoftKey" // Right softkey.
45 
46 //------------------------------------------------------------------------
47 // DOM3 key identifier strings.
48 // http://www.w3.org/TR/DOM-Level-3-Events/keyset.html
49 //------------------------------------------------------------------------
50 
51 #define FW_KEY_ACCEPT "Accept" // The Accept (Commit) key.
52 #define FW_KEY_AGAIN "Again" // The Again key.
53 #define FW_KEY_ALL_CANDIDATES "AllCandidates" // The All Candidates key.
54 #define FW_KEY_ALPHANUMERIC "Alphanumeric" // The Alphanumeric key.
55 #define FW_KEY_ALT "Alt" // The Alt (Menu) key.
56 #define FW_KEY_ALT_GRAPH "AltGraph" // The Alt-Graph key.
57 #define FW_KEY_APPS "Apps" // The Application key.
58 #define FW_KEY_ATTN "Attn" // The ATTN key.
59 #define FW_KEY_BROWSER_BACK "BrowserBack" // The Browser Back key.
60 #define FW_KEY_BROWSER_FAVORITES "BrowserFavorites" // The Browser Favorites key.
61 #define FW_KEY_BROWSER_FORWARD "BrowserForward" // The Browser Forward key.
62 #define FW_KEY_BROWSER_HOME "BrowserHome" // The Browser Home key.
63 #define FW_KEY_BROWSER_REFRESH "BrowserRefresh" // The Browser Refresh key.
64 #define FW_KEY_BROWSER_SEARCH "BrowserSearch" // The Browser Search key.
65 #define FW_KEY_BROWSER_STOP "BrowserStop" // The Browser Stop key.
66 #define FW_KEY_CAPS_LOCK "CapsLock" // The Caps Lock (Capital) key.
67 #define FW_KEY_CLEAR "Clear" // The Clear key.
68 #define FW_KEY_CODE_INPUT "CodeInput" // The Code Input key.
69 #define FW_KEY_COMPOSE "Compose" // The Compose key.
70 #define FW_KEY_CONTROL "Control" // The Control (Ctrl) key.
71 #define FW_KEY_CRSEL "Crsel" // The Crsel key.
72 #define FW_KEY_CONVERT "Convert" // The Convert key.
73 #define FW_KEY_COPY "Copy" // The Copy key.
74 #define FW_KEY_CUT "Cut" // The Cut key.
75 #define FW_KEY_DOWN "Down" // The Down Arrow key.
76 #define FW_KEY_END "End" // The End key.
77 #define FW_KEY_ENTER "Enter" // The Enter key. Note: This key identifier is also used for the Return (Macintosh numpad) key.
78 #define FW_KEY_ERASE_EOF "EraseEof" // The Erase EOF key.
79 #define FW_KEY_EXECUTE "Execute" // The Execute key.
80 #define FW_KEY_EXSEL "Exsel" // The Exsel key.
81 #define FW_KEY_F1 "F1" // The F1 key.
82 #define FW_KEY_F2 "F2" // The F2 key.
83 #define FW_KEY_F3 "F3" // The F3 key.
84 #define FW_KEY_F4 "F4" // The F4 key.
85 #define FW_KEY_F5 "F5" // The F5 key.
86 #define FW_KEY_F6 "F6" // The F6 key.
87 #define FW_KEY_F7 "F7" // The F7 key.
88 #define FW_KEY_F8 "F8" // The F8 key.
89 #define FW_KEY_F9 "F9" // The F9 key.
90 #define FW_KEY_F10 "F10" // The F10 key.
91 #define FW_KEY_F11 "F11" // The F11 key.
92 #define FW_KEY_F12 "F12" // The F12 key.
93 #define FW_KEY_F13 "F13" // The F13 key.
94 #define FW_KEY_F14 "F14" // The F14 key.
95 #define FW_KEY_F15 "F15" // The F15 key.
96 #define FW_KEY_F16 "F16" // The F16 key.
97 #define FW_KEY_F17 "F17" // The F17 key.
98 #define FW_KEY_F18 "F18" // The F18 key.
99 #define FW_KEY_F19 "F19" // The F19 key.
100 #define FW_KEY_F20 "F20" // The F20 key.
101 #define FW_KEY_F21 "F21" // The F21 key.
102 #define FW_KEY_F22 "F22" // The F22 key.
103 #define FW_KEY_F23 "F23" // The F23 key.
104 #define FW_KEY_F24 "F24" // The F24 key.
105 #define FW_KEY_FINAL_MODE "FinalMode" // The Final Mode (Final) key used on some asian keyboards.
106 #define FW_KEY_FIND "Find" // The Find key.
107 #define FW_KEY_FULL_WIDTH "FullWidth" // The Full-Width Characters key.
108 #define FW_KEY_HALF_WIDTH "HalfWidth" // The Half-Width Characters key.
109 #define FW_KEY_HANGUL_MODE "HangulMode" // The Hangul (Korean characters) Mode key.
110 #define FW_KEY_HANJA_MODE "HanjaMode" // The Hanja (Korean characters) Mode key.
111 #define FW_KEY_HELP "Help" // The Help key.
112 #define FW_KEY_HIRAGANA "Hiragana" // The Hiragana (Japanese Kana characters) key.
113 #define FW_KEY_HOME "Home" // The Home key.
114 #define FW_KEY_INSERT "Insert" // The Insert (Ins) key.
115 #define FW_KEY_JAPANESE_HIRAGANA "JapaneseHiragana" // The Japanese-Hiragana key.
116 #define FW_KEY_JAPANESE_KATAKANA "JapaneseKatakana" // The Japanese-Katakana key.
117 #define FW_KEY_JAPANESE_ROMAJI "JapaneseRomaji" // The Japanese-Romaji key.
118 #define FW_KEY_JUNJA_MODE "JunjaMode" // The Junja Mode key.
119 #define FW_KEY_KANA_MODE "KanaMode" // The Kana Mode (Kana Lock) key.
120 #define FW_KEY_KANJI_MODE "KanjiMode" // The Kanji (Japanese name for ideographic characters of Chinese origin) Mode key.
121 #define FW_KEY_KATAKANA "Katakana" // The Katakana (Japanese Kana characters) key.
122 #define FW_KEY_LAUNCH_APPLICATION1 "LaunchApplication1" // The Start Application One key.
123 #define FW_KEY_LAUNCH_APPLICATION2 "LaunchApplication2" // The Start Application Two key.
124 #define FW_KEY_LAUNCH_MAIL "LaunchMail" // The Start Mail key.
125 #define FW_KEY_LEFT "Left" // The Left Arrow key.
126 #define FW_KEY_META "Meta" // The Meta key.
127 #define FW_KEY_MEDIA_NEXT_TRACK "MediaNextTrack" // The Media Next Track key.
128 #define FW_KEY_MEDIA_PLAY_PAUSE "MediaPlayPause" // The Media Play Pause key.
129 #define FW_KEY_MEDIA_PREVIOUS_TRACK "MediaPreviousTrack" // The Media Previous Track key.
130 #define FW_KEY_MEDIA_STOP "MediaStop" // The Media Stok key.
131 #define FW_KEY_MODE_CHANGE "ModeChange" // The Mode Change key.
132 #define FW_KEY_NONCONVERT "Nonconvert" // The Nonconvert (Don't Convert) key.
133 #define FW_KEY_NUM_LOCK "NumLock" // The Num Lock key.
134 #define FW_KEY_PAGE_DOWN "PageDown" // The Page Down (Next) key.
135 #define FW_KEY_PAGE_UP "PageUp" // The Page Up key.
136 #define FW_KEY_PASTE "Paste" // The Paste key.
137 #define FW_KEY_PAUSE "Pause" // The Pause key.
138 #define FW_KEY_PLAY "Play" // The Play key.
139 #define FW_KEY_PREVIOUS_CANDIDATE "PreviousCandidate" // The Previous Candidate function key.
140 #define FW_KEY_PRINT_SCREEN "PrintScreen" // The Print Screen (PrintScrn, SnapShot) key.
141 #define FW_KEY_PROCESS "Process" // The Process key.
142 #define FW_KEY_PROPS "Props" // The Props key.
143 #define FW_KEY_RIGHT "Right" // The Right Arrow key.
144 #define FW_KEY_ROMAN_CHARACTERS "RomanCharacters" // The Roman Characters function key.
145 #define FW_KEY_SCROLL "Scroll" // The Scroll Lock key.
146 #define FW_KEY_SELECT "Select" // The Select key.
147 #define FW_KEY_SELECT_MEDIA "SelectMedia" // The Select Media key.
148 #define FW_KEY_SHIFT "Shift" // The Shift key.
149 #define FW_KEY_STOP "Stop" // The Stop key.
150 #define FW_KEY_UP "Up" // The Up Arrow key.
151 #define FW_KEY_UNDO "Undo" // The Undo key.
152 #define FW_KEY_VOLUME_DOWN "VolumeDown" // The Volume Down key.
153 #define FW_KEY_VOLUME_MUTE "VolumeMute" // The Volume Mute key.
154 #define FW_KEY_VOLUME_UP "VolumeUp" // The Volume Up key.
155 #define FW_KEY_WIN "Win" // The Windows Logo key.
156 #define FW_KEY_ZOOM "Zoom" // The Zoom key.
157 #define FW_KEY_BACKSPACE "U+0008" // The Backspace (Back) key.
158 #define FW_KEY_TAB "U+0009" // The Horizontal Tabulation (Tab) key.
159 #define FW_KEY_CANCEL "U+0018" // The Cancel key.
160 #define FW_KEY_ESCAPE "U+001B" // The Escape (Esc) key.
161 #define FW_KEY_SPACE "U+0020" // The Space (Spacebar) key.
162 #define FW_KEY_EXCLAMATION "U+0021" // The Exclamation Mark (Factorial, Bang) key (!).
163 #define FW_KEY_DOUBLE_QUOTE "U+0022" // The Quotation Mark (Quote Double) key (").
164 #define FW_KEY_HASH "U+0023" // The Number Sign (Pound Sign, Hash, Crosshatch, Octothorpe) key (#).
165 #define FW_KEY_DOLLAR "U+0024" // The Dollar Sign (milreis, escudo) key ($).
166 #define FW_KEY_AMPERSAND "U+0026" // The Ampersand key (&).
167 #define FW_KEY_SINGLE_QUOTE "U+0027" // The Apostrophe (Apostrophe-Quote, APL Quote) key (').
168 #define FW_KEY_LEFT_PARENTHESIS "U+0028" // The Left Parenthesis (Opening Parenthesis) key (().
169 #define FW_KEY_RIGHT_PARENTHESIS "U+0029" // The Right Parenthesis (Closing Parenthesis) key ()).
170 #define FW_KEY_ASTERISK "U+002A" // The Asterisk (Star) key (*).
171 #define FW_KEY_PLUS "U+002B" // The Plus Sign (Plus) key (+).
172 #define FW_KEY_COMMA "U+002C" // The Comma (decimal separator) sign key (,).
173 #define FW_KEY_MINUS "U+002D" // The Hyphen-minus (hyphen or minus sign) key (-).
174 #define FW_KEY_PERIOD "U+002E" // The Full Stop (period, dot, decimal point) key (.).
175 #define FW_KEY_SLASH "U+002F" // The Solidus (slash, virgule, shilling) key (/).
176 #define FW_KEY_0 "U+0030" // The Digit Zero key (0).
177 #define FW_KEY_1 "U+0031" // The Digit One key (1).
178 #define FW_KEY_2 "U+0032" // The Digit Two key (2).
179 #define FW_KEY_3 "U+0033" // The Digit Three key (3).
180 #define FW_KEY_4 "U+0034" // The Digit Four key (4).
181 #define FW_KEY_5 "U+0035" // The Digit Five key (5).
182 #define FW_KEY_6 "U+0036" // The Digit Six key (6).
183 #define FW_KEY_7 "U+0037" // The Digit Seven key (7).
184 #define FW_KEY_8 "U+0038" // The Digit Eight key (8).
185 #define FW_KEY_9 "U+0039" // The Digit Nine key (9).
186 #define FW_KEY_COLON "U+003A" // The Colon key (:).
187 #define FW_KEY_SEMICOLON "U+003B" // The Semicolon key (;).
188 #define FW_KEY_LESS_THAN "U+003C" // The Less-Than Sign key (<).
189 #define FW_KEY_EQUALS "U+003D" // The Equals Sign key (=).
190 #define FW_KEY_GREATER_THAN "U+003E" // The Greater-Than Sign key (>).
191 #define FW_KEY_QUESTION "U+003F" // The Question Mark key (?).
192 #define FW_KEY_AT "U+0040" // The Commercial At (@) key.
193 #define FW_KEY_A "U+0041" // The Latin Capital Letter A key (A).
194 #define FW_KEY_B "U+0042" // The Latin Capital Letter B key (B).
195 #define FW_KEY_C "U+0043" // The Latin Capital Letter C key (C).
196 #define FW_KEY_D "U+0044" // The Latin Capital Letter D key (D).
197 #define FW_KEY_E "U+0045" // The Latin Capital Letter E key (E).
198 #define FW_KEY_F "U+0046" // The Latin Capital Letter F key (F).
199 #define FW_KEY_G "U+0047" // The Latin Capital Letter G key (G).
200 #define FW_KEY_H "U+0048" // The Latin Capital Letter H key (H).
201 #define FW_KEY_I "U+0049" // The Latin Capital Letter I key (I).
202 #define FW_KEY_J "U+004A" // The Latin Capital Letter J key (J).
203 #define FW_KEY_K "U+004B" // The Latin Capital Letter K key (K).
204 #define FW_KEY_L "U+004C" // The Latin Capital Letter L key (L).
205 #define FW_KEY_M "U+004D" // The Latin Capital Letter M key (M).
206 #define FW_KEY_N "U+004E" // The Latin Capital Letter N key (N).
207 #define FW_KEY_O "U+004F" // The Latin Capital Letter O key (O).
208 #define FW_KEY_P "U+0050" // The Latin Capital Letter P key (P).
209 #define FW_KEY_Q "U+0051" // The Latin Capital Letter Q key (Q).
210 #define FW_KEY_R "U+0052" // The Latin Capital Letter R key (R).
211 #define FW_KEY_S "U+0053" // The Latin Capital Letter S key (S).
212 #define FW_KEY_T "U+0054" // The Latin Capital Letter T key (T).
213 #define FW_KEY_U "U+0055" // The Latin Capital Letter U key (U).
214 #define FW_KEY_V "U+0056" // The Latin Capital Letter V key (V).
215 #define FW_KEY_W "U+0057" // The Latin Capital Letter W key (W).
216 #define FW_KEY_X "U+0058" // The Latin Capital Letter X key (X).
217 #define FW_KEY_Y "U+0059" // The Latin Capital Letter Y key (Y).
218 #define FW_KEY_Z "U+005A" // The Latin Capital Letter Z key (Z).
219 #define FW_KEY_LEFT_SQUARE_BRACKET "U+005B" // The Left Square Bracket (Opening Square Bracket) key ([).
220 #define FW_KEY_BACKSLASH "U+005C" // The Reverse Solidus (Backslash) key (\).
221 #define FW_KEY_RIGHT_SQUARE_BRACKET "U+005D" // The Right Square Bracket (Closing Square Bracket) key (]).
222 #define FW_KEY_CIRCUMFLEX "U+005E" // The Circumflex Accent key (^).
223 #define FW_KEY_UNDERSCORE "U+005F" // The Low Sign (Spacing Underscore, Underscore) key (_).
224 #define FW_KEY_BACK_QUOTE "U+0060" // The Grave Accent (Back Quote) key (`).
225 #define FW_KEY_LEFT_CURLY_BRACKET "U+007B" // The Left Curly Bracket (Opening Curly Bracket, Opening Brace, Brace Left) key ({).
226 #define FW_KEY_VERTICAL_BAR "U+007C" // The Vertical Line (Vertical Bar, Pipe) key (|).
227 #define FW_KEY_RIGHT_CURLY_BRACKET "U+007D" // The Right Curly Bracket (Closing Curly Bracket, Closing Brace, Brace Right) key (}).
228 #define FW_KEY_DELETE "U+007F" // The Delete (Del) Key.
229 #define FW_KEY_INVERTED_EXCLAMATION "U+00A1" // The Inverted Exclamation Mark key (¡).
230 #define FW_KEY_DEAD_GRAVE "U+0300" // The Combining Grave Accent (Greek Varia, Dead Grave) key.
231 #define FW_KEY_DEAD_ACUTE "U+0301" // The Combining Acute Accent (Stress Mark, Greek Oxia, Tonos, Dead Eacute) key.
232 #define FW_KEY_DEAD_CIRCUMFLEX "U+0302" // The Combining Circumflex Accent (Hat, Dead Circumflex) key.
233 #define FW_KEY_DEAD_TILDE "U+0303" // The Combining Tilde (Dead Tilde) key.
234 #define FW_KEY_DEAD_MACRON "U+0304" // The Combining Macron (Long, Dead Macron) key.
235 #define FW_KEY_DEAD_BREVE "U+0306" // The Combining Breve (Short, Dead Breve) key.
236 #define FW_KEY_DEAD_ABOVE_DOT "U+0307" // The Combining Dot Above (Derivative, Dead Above Dot) key.
237 #define FW_KEY_DEAD_DIAERESIS "U+0308" // The Combining Diaeresis (Double Dot Abode, Umlaut, Greek Dialytika, Double Derivative, Dead Diaeresis) key.
238 #define FW_KEY_DEAD_ABOVE_RING "U+030A" // The Combining Ring Above (Dead Above Ring) key.
239 #define FW_KEY_DEAD_DOUBLE_ACUTE "U+030B" // The Combining Double Acute Accent (Dead Doubleacute) key.
240 #define FW_KEY_DEAD_CARON "U+030C" // The Combining Caron (Hacek, V Above, Dead Caron) key.
241 #define FW_KEY_DEAD_CEDILLA "U+0327" // The Combining Cedilla (Dead Cedilla) key.
242 #define FW_KEY_DEAD_OGONEK "U+0328" // The Combining Ogonek (Nasal Hook, Dead Ogonek) key.
243 #define FW_KEY_DEAD_IOTA "U+0345" // The Combining Greek Ypogegrammeni (Greek Non-Spacing Iota Below, Iota Subscript, Dead Iota) key.
244 #define FW_KEY_EURO "U+20AC" // The Euro Currency Sign key (€).
245 #define FW_KEY_DEAD_VOICED "U+3099" // The Combining Katakana-Hiragana Voiced Sound Mark (Dead Voiced Sound) key.
246 #define FW_KEY_DEAD_SEMIVOICED "U+309A" // The Combining Katakana-Hiragana Semi-Voiced Sound Mark (Dead Semivoiced Sound) key.
247 
248 //------------------------------------------------------------------------
249 
250 String unicodeToKey (S32 cp);
251 S32 keyToUnicode (const String& key);
252 String vkeyToKey (U32 vkey);
253 
254 //------------------------------------------------------------------------
255 }
String vkeyToKey(U32 vkey)
Definition: Keys.cpp:72
String unicodeToKey(S32 cp)
Definition: Keys.cpp:36
signed int S32
Definition: Defs.hpp:88
S32 keyToUnicode(const String &key)
Definition: Keys.cpp:44
unsigned int U32
Definition: Defs.hpp:85