1pub mod config;
6pub mod database;
7pub mod font;
8pub mod form_browser;
9pub mod image;
10pub mod popup;
11pub mod string;
12
13use crate::{Char16, Guid, newtype_enum};
14
15pub type HiiHandle = *mut core::ffi::c_void;
16
17pub type QuestionId = u16;
18pub type ImageId = u16;
19pub type StringId = u16;
20pub type FormId = u16;
21pub type VarstoreId = u16;
22pub type AnimationId = u16;
23
24#[derive(Debug)]
26#[repr(C)]
27pub struct HiiPackageHeader {
28 pub length_and_type: u32,
29 pub data: [u8; 0],
30}
31
32#[derive(Debug)]
34#[repr(C)]
35pub struct HiiPackageListHeader {
36 pub package_list_guid: Guid,
37 pub package_length: u32,
38}
39
40newtype_enum! {
41 pub enum Key: u32 => {
43 LCTRL = 0,
44 A0 = 1,
45 LALT = 2,
46 SPACEBAR = 3,
47 A2 = 4,
48 A3 = 5,
49 A4 = 6,
50 RCTRL = 7,
51 LEFT_ARROW = 8,
52 DOWN_ARROW = 9,
53 RIGHT_ARROW = 10,
54 ZERO = 11,
55 PERIOD = 12,
56 ENTER = 13,
57 LSHIFT = 14,
58 B0 = 15,
59 B1 = 16,
60 B2 = 17,
61 B3 = 18,
62 B4 = 19,
63 B5 = 20,
64 B6 = 21,
65 B7 = 22,
66 B8 = 23,
67 B9 = 24,
68 B10 = 25,
69 RSHIFT = 26,
70 UP_ARROW = 27,
71 ONE = 28,
72 TWO = 29,
73 THREE = 30,
74 CAPS_LOCK = 31,
75 C1 = 32,
76 C2 = 33,
77 C3 = 34,
78 C4 = 35,
79 C5 = 36,
80 C6 = 37,
81 C7 = 38,
82 C8 = 39,
83 C9 = 40,
84 C10 = 41,
85 C11 = 42,
86 C12 = 43,
87 FOUR = 44,
88 FIVE = 45,
89 SIX = 46,
90 PLUS = 47,
91 TAB = 48,
92 D1 = 49,
93 D2 = 50,
94 D3 = 51,
95 D4 = 52,
96 D5 = 53,
97 D6 = 54,
98 D7 = 55,
99 D8 = 56,
100 D9 = 57,
101 D10 = 58,
102 D11 = 59,
103 D12 = 60,
104 D13 = 61,
105 DEL = 62,
106 END = 63,
107 PG_DN = 64,
108 SEVEN = 65,
109 EIGHT = 66,
110 NINE = 67,
111 E0 = 68,
112 E1 = 69,
113 E2 = 70,
114 E3 = 71,
115 E4 = 72,
116 E5 = 73,
117 E6 = 74,
118 E7 = 75,
119 E8 = 76,
120 E9 = 77,
121 E10 = 78,
122 E11 = 79,
123 E12 = 80,
124 BACK_SPACE = 81,
125 INS = 82,
126 HOME = 83,
127 PG_UP = 84,
128 NLCK = 85,
129 SLASH = 86,
130 ASTERISK = 87,
131 MINUS = 88,
132 ESC = 89,
133 F1 = 90,
134 F2 = 91,
135 F3 = 92,
136 F4 = 93,
137 F5 = 94,
138 F6 = 95,
139 F7 = 96,
140 F8 = 97,
141 F9 = 98,
142 F10 = 99,
143 F11 = 100,
144 F12 = 101,
145 PRINT = 102,
146 SLCK = 103,
147 PAUSE = 104,
148 INTL0 = 105,
149 INTL1 = 106,
150 INTL2 = 107,
151 INTL3 = 108,
152 INTL4 = 109,
153 INTL5 = 110,
154 INTL6 = 111,
155 INTL7 = 112,
156 INTL8 = 113,
157 INTL9 = 114,
158 }
159}
160
161newtype_enum! {
163 pub enum Modifier: u16 => {
165 NULL = 0x0000,
166 LEFT_CONTROL = 0x0001,
167 RIGHT_CONTROL = 0x0002,
168 LEFT_ALT = 0x0003,
169 RIGHT_ALT = 0x0004,
170 ALT_GR = 0x0005,
171 INSERT = 0x0006,
172 DELETE = 0x0007,
173 PAGE_DOWN = 0x0008,
174 PAGE_UP = 0x0009,
175 HOME = 0x000A,
176 END = 0x000B,
177 LEFT_SHIFT = 0x000C,
178 RIGHT_SHIFT = 0x000D,
179 CAPS_LOCK = 0x000E,
180 NUM_LOCK = 0x000F,
181 LEFT_ARROW = 0x0010,
182 RIGHT_ARROW = 0x0011,
183 DOWN_ARROW = 0x0012,
184 UP_ARROW = 0x0013,
185 NS_KEY = 0x0014,
186 NS_KEY_DEPENDENCY = 0x0015,
187 FUNCTION_KEY_ONE = 0x0016,
188 FUNCTION_KEY_TWO = 0x0017,
189 FUNCTION_KEY_THREE = 0x0018,
190 FUNCTION_KEY_FOUR = 0x0019,
191 FUNCTION_KEY_FIVE = 0x001A,
192 FUNCTION_KEY_SIX = 0x001B,
193 FUNCTION_KEY_SEVEN = 0x001C,
194 FUNCTION_KEY_EIGHT = 0x001D,
195 FUNCTION_KEY_NINE = 0x001E,
196 FUNCTION_KEY_TEN = 0x001F,
197 FUNCTION_KEY_ELEVEN = 0x0020,
198 FUNCTION_KEY_TWELVE = 0x0021,
199 PRINT = 0x0022,
200 SYS_REQUEST = 0x0023,
201 SCROLL_LOCK = 0x0024,
202 PAUSE = 0x0025,
203 BREAK = 0x0026,
204 LEFT_LOGO = 0x0027,
205 RIGHT_LOGO = 0x0028,
206 MENU = 0x0029,
207 }
208}
209
210#[derive(Debug)]
212#[repr(C)]
213pub struct KeyDescriptor {
214 pub key: Key,
215 pub unicode: Char16,
216 pub shifted_unicode: Char16,
217 pub alt_gr_unicode: Char16,
218 pub shifted_alt_gr_unicode: Char16,
219 pub modifier: u16,
220 pub affected_attribute: u16,
221}