tbx  0.7.6
keypressed.h
1 /*
2  * tbx RISC OS toolbox library
3  *
4  * CopyRIGHT_ (C) 2021 Alan Buckley All Rights Reserved.
5  *
6  * Permission is hereby granted, free of charge, to any person obtaining a
7  * copy of this software and associated documentation files (the "Software"),
8  * to deal in the Software without restriction, including without limitation
9  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
10  * and/or sell copies of the Software, and to permit persons to whom the
11  * Software is furnished to do so, subject to the following conditions:
12  *
13  * The above copyright notice and this permission notice shall be included
14  * in all copies or substantial portions of the Software.
15  *
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22  * THE SOFTWARE.
23  */
24 
25 /*
26  * keypressed.h
27  *
28  * Created on: 14-Jan-2021
29  * Author: alanb
30  */
31 
32 #ifndef TBX_KEYPRESSED_H_
33 #define TBX_KEYPRESSED_H_
34 
35 #include "kernel.h"
36 
37 namespace tbx {
38 
43 {
44  INTERNAL_KEY_PRINT = -33,
45  INTERNAL_KEY_F1 = -114, INTERNAL_KEY_F2 = -115, INTERNAL_KEY_F3 = -116,
46  INTERNAL_KEY_F4 = -21, INTERNAL_KEY_F5 = -117, INTERNAL_KEY_F6 = -118,
47  INTERNAL_KEY_F7 = -23, INTERNAL_KEY_F8 = -119, INTERNAL_KEY_F9 = -120,
48  INTERNAL_KEY_F10 = -31, INTERNAL_KEY_F11 = -29, INTERNAL_KEY_F12 = -30,
49  INTERNAL_KEY_A = -66, INTERNAL_KEY_B = -101, INTERNAL_KEY_C = -83,
50  INTERNAL_KEY_D = -51, INTERNAL_KEY_E = -35, INTERNAL_KEY_F = -68,
51  INTERNAL_KEY_G = -84, INTERNAL_KEY_H = -85, INTERNAL_KEY_I = -38,
52  INTERNAL_KEY_J = -70, INTERNAL_KEY_K = -71, INTERNAL_KEY_L = -87,
53  INTERNAL_KEY_M = -102, INTERNAL_KEY_N = -86, INTERNAL_KEY_O = -55,
54  INTERNAL_KEY_P = -56, INTERNAL_KEY_Q = -17, INTERNAL_KEY_R = -52,
55  INTERNAL_KEY_S = -82, INTERNAL_KEY_T = -36, INTERNAL_KEY_U = -54,
56  INTERNAL_KEY_V = -100, INTERNAL_KEY_W = -34, INTERNAL_KEY_X = -67,
57  INTERNAL_KEY_Y = -69, INTERNAL_KEY_Z = -98,
58  INTERNAL_KEY_0 = -40, INTERNAL_KEY_1 = -49, INTERNAL_KEY_2 = -50,
59  INTERNAL_KEY_3 = -18, INTERNAL_KEY_4 = -19, INTERNAL_KEY_5 = -20,
60  INTERNAL_KEY_6 = -53, INTERNAL_KEY_7 = -37, INTERNAL_KEY_8 = -22,
61  INTERNAL_KEY_NINE = -39,
62  INTERNAL_KEY_COMMA = -103, INTERNAL_KEY_EQUALS = -24,
63  INTERNAL_KEY_PERIOD = -104, INTERNAL_KEY_SLASH = -105,
64  INTERNAL_KEY_LEFT_BRACKET = -57, INTERNAL_KEY_BACKSLASH = -121,
65  INTERNAL_KEY_RIGHT_BRACKET = -89, INTERNAL_KEY_SEMICOLON = -88,
66  INTERNAL_KEY_ESC = -113, INTERNAL_KEY_TAB = -97,
67  INTERNAL_KEY_CAPSLOCK = -65, INTERNAL_KEY_SCROLLLOCK = -32,
68  INTERNAL_KEY_NUMLOCK = -78, INTERNAL_KEY_BREAK = -45,
69  INTERNAL_KEY_TILDE = -46, INTERNAL_KEY_BACKSPACE = -48,
70  INTERNAL_KEY_INSERT = -62, INTERNAL_KEY_HOME = -63,
71  INTERNAL_KEY_PAGEUP = -64, INTERNAL_KEY_PAGEDOWN = -79,
72  INTERNAL_KEY_QUOTES = -80,
73  INTERNAL_KEY_SHIFT = -1,
74  INTERNAL_KEY_LEFT_SHIFT = -4, INTERNAL_KEY_RIGHT_SHIFT= -7,
75  INTERNAL_KEY_CTRL = -2,
76  INTERNAL_KEY_LEFT_CTRL = -5, INTERNAL_KEY_RIGHT_CTRL = -8,
77  INTERNAL_KEY_ALT = -3,
78  INTERNAL_KEY_LEFT_ALT = -6, INTERNAL_KEY_RIGHT_ALT = -9,
79  INTERNAL_KEY_SPACEBAR = -99, INTERNAL_KEY_DELETE = -90,
80  INTERNAL_KEY_RETURN = -74, INTERNAL_KEY_COPY = -106,
81  INTERNAL_KEY_UP_ARROW = -58, INTERNAL_KEY_LEFT_ARROW = -26,
82  INTERNAL_KEY_RIGHT_ARROW = -122, INTERNAL_KEY_DOWN_ARROW = -42,
83  INTERNAL_KEY_KEYPAD_0 = -107, INTERNAL_KEY_KEYPAD_1 = -108,
84  INTERNAL_KEY_KEYPAD_2 = -125, INTERNAL_KEY_KEYPAD_3 = -109,
85  INTERNAL_KEY_KEYPAD_4 = -123, INTERNAL_KEY_KEYPAD_5 = -124,
86  INTERNAL_KEY_KEYPAD_6 = -27, INTERNAL_KEY_KEYPAD_7 = -28,
87  INTERNAL_KEY_KEYPAD_8 = -43, INTERNAL_KEY_KEYPAD_9 = -44,
88  INTERNAL_KEY_KEYPAD_PLUS = -59, INTERNAL_KEY_KEYPAD_EQUALS = -60,
89  INTERNAL_KEY_KEYPAD_PERIOD = -77, INTERNAL_KEY_KEYPAD_DIVIDE = -75,
90  INTERNAL_KEY_KEYPAD_HASH = -91,
91  INTERNAL_KEY_KEYPAD_MULTIPLY = -92, INTERNAL_KEY_KEYPAD_ENTER = -61,
92  INTERNAL_KEY_SELECT_MOUSE_BUTTON = -10,
93  INTERNAL_KEY_MENU_MOUSE_BUTTON = -11,
94  INTERNAL_KEY_ADJUST_MOUSE_BUTTON = -12
95 };
96 
102 inline bool key_pressed(InternalKey key_code)
103 {
104  return (_kernel_osbyte(129, (int)key_code, 0xFF) != 0);
105 }
106 
107 }
108 
109 #endif /* TBX_KEYPRESSED_H_ */
tbx
A library for creating RISC OS toolbox applications.
Definition: abouttobeshownlistener.cc:35
tbx::InternalKey
InternalKey
Internal key numbers for the keypressed function.
Definition: keypressed.h:43
tbx::key_pressed
bool key_pressed(InternalKey key_code)
Check if a key is being pressed when this function is called.
Definition: keypressed.h:102