]> git.proxmox.com Git - mirror_edk2.git/blob - MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLibInternal.h
MdeModulePkg: Clean up source files
[mirror_edk2.git] / MdeModulePkg / Library / CustomizedDisplayLib / CustomizedDisplayLibInternal.h
1 /** @file
2
3 This library class defines a set of interfaces to customize Display module
4
5 Copyright (c) 2013 - 2018, Intel Corporation. All rights reserved.<BR>
6 This program and the accompanying materials are licensed and made available under
7 the terms and conditions of the BSD License that accompanies this distribution.
8 The full text of the license may be found at
9 http://opensource.org/licenses/bsd-license.php.
10
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13
14 **/
15
16 #ifndef __CUSTOMIZED_DISPLAY_LIB_INTERNAL_H__
17 #define __CUSTOMIZED_DISPLAY_LIB_INTERNAL_H__
18
19
20
21 #include <PiDxe.h>
22
23 #include <Protocol/SimpleTextOut.h>
24 #include <Protocol/SimpleTextIn.h>
25 #include <Protocol/FormBrowser2.h>
26 #include <Protocol/FormBrowserEx2.h>
27 #include <Protocol/DisplayProtocol.h>
28 #include <Protocol/DevicePath.h>
29 #include <Protocol/UnicodeCollation.h>
30 #include <Protocol/HiiConfigAccess.h>
31 #include <Protocol/HiiConfigRouting.h>
32 #include <Protocol/HiiDatabase.h>
33 #include <Protocol/HiiString.h>
34 #include <Protocol/UserManager.h>
35 #include <Protocol/DevicePathFromText.h>
36
37 #include <Guid/MdeModuleHii.h>
38 #include <Guid/HiiPlatformSetupFormset.h>
39 #include <Guid/HiiFormMapMethodGuid.h>
40
41 #include <Library/PrintLib.h>
42 #include <Library/DebugLib.h>
43 #include <Library/BaseMemoryLib.h>
44 #include <Library/UefiRuntimeServicesTableLib.h>
45 #include <Library/UefiDriverEntryPoint.h>
46 #include <Library/UefiBootServicesTableLib.h>
47 #include <Library/BaseLib.h>
48 #include <Library/MemoryAllocationLib.h>
49 #include <Library/HiiLib.h>
50 #include <Library/PcdLib.h>
51 #include <Library/DevicePathLib.h>
52 #include <Library/CustomizedDisplayLib.h>
53
54 #include "Colors.h"
55
56
57
58 #define FORMSET_CLASS_PLATFORM_SETUP 0x0001
59 #define FORMSET_CLASS_FRONT_PAGE 0x0002
60
61
62 #define FRONT_PAGE_HEADER_HEIGHT 6
63 #define NONE_FRONT_PAGE_HEADER_HEIGHT 3
64 #define FOOTER_HEIGHT 4
65 #define STATUS_BAR_HEIGHT 1
66
67 //
68 // Screen definitions
69 //
70 #define BANNER_HEIGHT 6
71 #define BANNER_COLUMNS 3
72 #define BANNER_LEFT_COLUMN_INDENT 1
73
74 //
75 // Character definitions
76 //
77 #define UPPER_LOWER_CASE_OFFSET 0x20
78
79 //
80 // This is the Input Error Message
81 //
82 #define INPUT_ERROR 1
83
84 //
85 // This is the NV RAM update required Message
86 //
87 #define NV_UPDATE_REQUIRED 2
88
89 typedef struct {
90 EFI_STRING_ID Banner[BANNER_HEIGHT][BANNER_COLUMNS];
91 } BANNER_DATA;
92
93 extern UINT16 gClassOfVfr; // Formset class information
94 extern BANNER_DATA *gBannerData;
95 extern EFI_SCREEN_DESCRIPTOR gScreenDimensions;
96 extern UINTN gFooterHeight;
97
98 //
99 // Browser Global Strings
100 //
101 extern CHAR16 *gEnterString;
102 extern CHAR16 *gEnterCommitString;
103 extern CHAR16 *gEnterEscapeString;
104 extern CHAR16 *gEscapeString;
105 extern CHAR16 *gMoveHighlight;
106 extern CHAR16 *gDecNumericInput;
107 extern CHAR16 *gHexNumericInput;
108 extern CHAR16 *gToggleCheckBox;
109 extern CHAR16 *gLibEmptyString;
110 extern CHAR16 *gAreYouSure;
111 extern CHAR16 *gYesResponse;
112 extern CHAR16 *gNoResponse;
113 extern CHAR16 *gPlusString;
114 extern CHAR16 *gMinusString;
115 extern CHAR16 *gAdjustNumber;
116 extern CHAR16 *gSaveChanges;
117 extern CHAR16 *gNvUpdateMessage;
118 extern CHAR16 *gInputErrorMessage;
119 /**
120
121 Print banner info for front page.
122
123 @param[in] FormData Form Data to be shown in Page
124
125 **/
126 VOID
127 PrintBannerInfo (
128 IN FORM_DISPLAY_ENGINE_FORM *FormData
129 );
130
131 /**
132 Print framework and form title for a page.
133
134 @param[in] FormData Form Data to be shown in Page
135 **/
136 VOID
137 PrintFramework (
138 IN FORM_DISPLAY_ENGINE_FORM *FormData
139 );
140
141 /**
142 Validate the input screen diemenstion info.
143
144 @param FormData The input form data info.
145
146 @return EFI_SUCCESS The input screen info is acceptable.
147 @return EFI_INVALID_PARAMETER The input screen info is not acceptable.
148
149 **/
150 EFI_STATUS
151 ScreenDiemensionInfoValidate (
152 IN FORM_DISPLAY_ENGINE_FORM *FormData
153 );
154
155 /**
156 Get the string based on the StringId and HII Package List Handle.
157
158 @param Token The String's ID.
159 @param HiiHandle The package list in the HII database to search for
160 the specified string.
161
162 @return The output string.
163
164 **/
165 CHAR16 *
166 LibGetToken (
167 IN EFI_STRING_ID Token,
168 IN EFI_HII_HANDLE HiiHandle
169 );
170
171 /**
172 Count the storage space of a Unicode string.
173
174 This function handles the Unicode string with NARROW_CHAR
175 and WIDE_CHAR control characters. NARROW_HCAR and WIDE_CHAR
176 does not count in the resultant output. If a WIDE_CHAR is
177 hit, then 2 Unicode character will consume an output storage
178 space with size of CHAR16 till a NARROW_CHAR is hit.
179
180 If String is NULL, then ASSERT ().
181
182 @param String The input string to be counted.
183
184 @return Storage space for the input string.
185
186 **/
187 UINTN
188 LibGetStringWidth (
189 IN CHAR16 *String
190 );
191
192 /**
193 Show all registered HotKey help strings on bottom Rows.
194
195 @param FormData The curent input form data info.
196 @param SetState Set HotKey or Clear HotKey
197
198 **/
199 VOID
200 PrintHotKeyHelpString (
201 IN FORM_DISPLAY_ENGINE_FORM *FormData,
202 IN BOOLEAN SetState
203 );
204
205 /**
206 Get step info from numeric opcode.
207
208 @param[in] OpCode The input numeric op code.
209
210 @return step info for this opcode.
211 **/
212 UINT64
213 LibGetFieldFromNum (
214 IN EFI_IFR_OP_HEADER *OpCode
215 );
216
217 /**
218 Initialize the HII String Token to the correct values.
219
220 **/
221 VOID
222 InitializeLibStrings (
223 VOID
224 );
225
226 /**
227 Free the HII String.
228
229 **/
230 VOID
231 FreeLibStrings (
232 VOID
233 );
234
235 /**
236 Wait for a key to be pressed by user.
237
238 @param Key The key which is pressed by user.
239
240 @retval EFI_SUCCESS The function always completed successfully.
241
242 **/
243 EFI_STATUS
244 WaitForKeyStroke (
245 OUT EFI_INPUT_KEY *Key
246 );
247
248 /**
249 Set Buffer to Value for Size bytes.
250
251 @param Buffer Memory to set.
252 @param Size Number of bytes to set
253 @param Value Value of the set operation.
254
255 **/
256 VOID
257 LibSetUnicodeMem (
258 IN VOID *Buffer,
259 IN UINTN Size,
260 IN CHAR16 Value
261 );
262
263 /**
264 Prints a formatted unicode string to the default console, at
265 the supplied cursor position.
266
267 @param Width Width of String to be printed.
268 @param Column The cursor position to print the string at.
269 @param Row The cursor position to print the string at.
270 @param Fmt Format string.
271 @param ... Variable argument list for format string.
272
273 @return Length of string printed to the console
274
275 **/
276 UINTN
277 EFIAPI
278 PrintAt (
279 IN UINTN Width,
280 IN UINTN Column,
281 IN UINTN Row,
282 IN CHAR16 *Fmt,
283 ...
284 );
285
286 /**
287 Process some op codes which is out side of current form.
288
289 @param FormData Pointer to the form data.
290
291 **/
292 VOID
293 ProcessExternedOpcode (
294 IN FORM_DISPLAY_ENGINE_FORM *FormData
295 );
296
297 #endif