1 /* 2 __ 3 / _| 4 __ _ _ _ _ __ ___ _ __ __ _ | |_ ___ ___ ___ 5 / _` | | | | '__/ _ \| '__/ _` | | _/ _ \/ __/ __| 6 | (_| | |_| | | | (_) | | | (_| | | || (_) \__ \__ \ 7 \__,_|\__,_|_| \___/|_| \__,_| |_| \___/|___/___/ 8 9 Copyright (C) 2018-2019 Aurora Free Open Source Software. 10 11 This file is part of the Aurora Free Open Source Software. This 12 organization promote free and open source software that you can 13 redistribute and/or modify under the terms of the GNU Lesser General 14 Public License Version 3 as published by the Free Software Foundation or 15 (at your option) any later version approved by the Aurora Free Open Source 16 Software Organization. The license is available in the package root path 17 as 'LICENSE' file. Please review the following information to ensure the 18 GNU Lesser General Public License version 3 requirements will be met: 19 https://www.gnu.org/licenses/lgpl.html . 20 21 Alternatively, this file may be used under the terms of the GNU General 22 Public License version 3 or later as published by the Free Software 23 Foundation. Please review the following information to ensure the GNU 24 General Public License requirements will be met: 25 http://www.gnu.org/licenses/gpl-3.0.html. 26 27 NOTE: All products, services or anything associated to trademarks and 28 service marks used or referenced on this file are the property of their 29 respective companies/owners or its subsidiaries. Other names and brands 30 may be claimed as the property of others. 31 32 For more info about intellectual property visit: aurorafoss.org or 33 directly send an email to: contact (at) aurorafoss.org . 34 */ 35 36 module aurorafw.core.input.keys; 37 38 /// TODO: Need documentation 39 40 enum Keycode : short { 41 Unknown = -1, 42 Space = 32, 43 Apostrophe = 39, 44 Comma = 44, 45 Minus, 46 Period, /* . */ 47 Slash, 48 Num0, 49 Num1, 50 Num2, 51 Num3, 52 Num4, 53 Num5, 54 Num6, 55 Num7, 56 Num8, 57 Num9, 58 Semicolon = 59, 59 Equal = 61, 60 A = 65, 61 B, 62 C, 63 D, 64 E, 65 F, 66 G, 67 H, 68 I, 69 J, 70 K, 71 L, 72 M, 73 N, 74 O, 75 P, 76 Q, 77 R, 78 S, 79 T, 80 U, 81 V, 82 W, 83 X, 84 Y, 85 Z, 86 LeftBracket, /* [ */ 87 BackSlash, /* \ */ 88 RightBracket, /* ] */ 89 GraveAccent = 96, /* ` */ 90 World1 = 161, /* non-US #1 */ 91 World2 = 162, /* non-US #2 */ 92 Escape = 256, 93 Enter, 94 Tab, 95 Backspace, 96 Insert, 97 Delete, 98 Right, 99 Left, 100 Down, 101 Up, 102 PageUp, 103 PageDown, 104 Home, 105 End, 106 CapsLock = 280, 107 ScrollLock, 108 NumLock, 109 PrintScreen, 110 Pause, 111 F1 = 290, 112 F2, 113 F3, 114 F4, 115 F5, 116 F6, 117 F7, 118 F8, 119 F9, 120 F10, 121 F11, 122 F12, 123 F13, 124 F14, 125 F15, 126 F16, 127 F17, 128 F18, 129 F19, 130 F20, 131 F21, 132 F22, 133 F23, 134 F24, 135 F25, 136 NumPad0 = 320, 137 NumPad1, 138 NumPad2, 139 NumPad3, 140 NumPad4, 141 NumPad5, 142 NumPad6, 143 NumPad7, 144 NumPad8, 145 NumPad9, 146 NumPadDecimal, 147 NumPadDivide, 148 NumPadMultiply, 149 NumPadSubtract, 150 NumPadAdd, 151 NumPadEnter, 152 NumPadEqual, 153 LeftShift = 340, 154 LeftControl, 155 LeftAlt, 156 LeftSuper, 157 RightShift, 158 RightControl, 159 RightAlt, 160 RightSuper, 161 Menu, 162 Last = Menu 163 } 164 165 enum InputButton : ubyte { 166 B1, 167 B2, 168 B3, 169 B4, 170 B5, 171 B6, 172 B7, 173 B8, 174 Last = B8, 175 Left = B1, 176 Right = B2, 177 Middle = B3 178 } 179 180 enum InputModifier : ubyte { 181 Shift = 1 << 0, 182 Control = 1 << 1, 183 Alt = 1 << 2, 184 Super = 1 << 3, 185 CapsLock = 1 << 4, 186 NumLock = 1 << 5 187 }