1 /** @file 2 This library class defines a set of interfaces to customize Display module 3 4 Copyright (c) 2013, Intel Corporation. All rights reserved.<BR> 5 This program and the accompanying materials are licensed and made available under 6 the terms and conditions of the BSD License that accompanies this distribution. 7 The full text of the license may be found at 8 http://opensource.org/licenses/bsd-license.php. 9 10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 13 **/ 14 15 #ifndef __CUSTOMIZED_DISPLAY_LIB_H__ 16 #define __CUSTOMIZED_DISPLAY_LIB_H__ 17 18 #include <Protocol/DisplayProtocol.h> 19 20 /** 21 +------------------------------------------------------------------------------+ 22 | Setup Page | 23 +------------------------------------------------------------------------------+ 24 25 Statement 26 Statement 27 Statement 28 29 30 31 32 33 +------------------------------------------------------------------------------+ 34 | F9=Reset to Defaults F10=Save | 35 | ^"=Move Highlight <Spacebar> Toggles Checkbox Esc=Exit | 36 +------------------------------------------------------------------------------+ 37 StatusBar 38 **/ 39 40 /** 41 This funtion defines Page Frame and Backgroud. 42 43 Based on the above layout, it will be responsible for HeaderHeight, FooterHeight, 44 StatusBarHeight and Backgroud. And, it will reserve Screen for Statement. 45 46 @param[in] FormData Form Data to be shown in Page. 47 @param[out] ScreenForStatement Screen to be used for Statement. (Prompt, Value and Help) 48 49 @return Status 50 **/ 51 EFI_STATUS 52 EFIAPI 53 DisplayPageFrame ( 54 IN FORM_DISPLAY_ENGINE_FORM *FormData, 55 OUT EFI_SCREEN_DESCRIPTOR *ScreenForStatement 56 ); 57 58 /** 59 Clear Screen to the initial state. 60 **/ 61 VOID 62 EFIAPI 63 ClearDisplayPage ( 64 VOID 65 ); 66 67 /** 68 This function updates customized key panel's help information. 69 The library will prepare those Strings for the basic key, ESC, Enter, Up/Down/Left/Right, +/-. 70 and arrange them in Footer panel. 71 72 @param[in] FormData Form Data to be shown in Page. FormData has the highlighted statement. 73 @param[in] Statement The statement current selected. 74 @param[in] Selected Whether or not a tag be selected. TRUE means Enter has hit this question. 75 **/ 76 VOID 77 EFIAPI 78 RefreshKeyHelp ( 79 IN FORM_DISPLAY_ENGINE_FORM *FormData, 80 IN FORM_DISPLAY_ENGINE_STATEMENT *Statement, 81 IN BOOLEAN Selected 82 ); 83 84 /** 85 Update status bar. 86 87 This function updates the status bar on the bottom of menu screen. It just shows StatusBar. 88 Original logic in this function should be splitted out. 89 90 @param[in] MessageType The type of message to be shown. InputError or Configuration Changed. 91 @param[in] State Show or Clear Message. 92 **/ 93 VOID 94 EFIAPI 95 UpdateStatusBar ( 96 IN UINTN MessageType, 97 IN BOOLEAN State 98 ); 99 100 /** 101 Create popup window. 102 103 This function draws OEM/Vendor specific pop up windows. 104 105 @param[out] Key User Input Key 106 @param ... String to be shown in Popup. The variable argument list is terminated by a NULL. 107 108 **/ 109 VOID 110 EFIAPI 111 CreateDialog ( 112 OUT EFI_INPUT_KEY *Key, OPTIONAL 113 ... 114 ); 115 116 /** 117 Confirm how to handle the changed data. 118 119 @return Action BROWSER_ACTION_SUBMIT, BROWSER_ACTION_DISCARD or other values. 120 **/ 121 UINTN 122 EFIAPI 123 ConfirmDataChange ( 124 VOID 125 ); 126 127 /** 128 OEM specifies whether Setup exits Page by ESC key. 129 130 This function customized the behavior that whether Setup exits Page so that 131 system able to boot when configuration is not changed. 132 133 @retval TRUE Exits FrontPage 134 @retval FALSE Don't exit FrontPage. 135 **/ 136 BOOLEAN 137 EFIAPI 138 FormExitPolicy ( 139 VOID 140 ); 141 142 /** 143 Set Timeout value for a ceratain Form to get user response. 144 145 This function allows to set timeout value on a ceratain form if necessary. 146 If timeout is not zero, the form will exit if user has no response in timeout. 147 148 @param[in] FormData Form Data to be shown in Page 149 150 @return 0 No timeout for this form. 151 @return > 0 Timeout value in 100 ns units. 152 **/ 153 UINT64 154 EFIAPI 155 FormExitTimeout ( 156 IN FORM_DISPLAY_ENGINE_FORM *FormData 157 ); 158 159 // 160 // Print Functions 161 // 162 /** 163 Prints a unicode string to the default console, at 164 the supplied cursor position, using L"%s" format. 165 166 @param Column The cursor position to print the string at. When it is -1, use current Position. 167 @param Row The cursor position to print the string at. When it is -1, use current Position. 168 @param String String pointer. 169 170 @return Length of string printed to the console 171 172 **/ 173 UINTN 174 EFIAPI 175 PrintStringAt ( 176 IN UINTN Column, 177 IN UINTN Row, 178 IN CHAR16 *String 179 ); 180 181 182 /** 183 Prints a unicode string with the specified width to the default console, at 184 the supplied cursor position, using L"%s" format. 185 186 @param Column The cursor position to print the string at. When it is -1, use current Position. 187 @param Row The cursor position to print the string at. When it is -1, use current Position. 188 @param String String pointer. 189 @param Width Width for String to be printed. If the print length of String < Width, 190 Space char (L' ') will be used to append String. 191 192 @return Length of string printed to the console 193 194 **/ 195 UINTN 196 EFIAPI 197 PrintStringAtWithWidth ( 198 IN UINTN Column, 199 IN UINTN Row, 200 IN CHAR16 *String, 201 IN UINTN Width 202 ); 203 204 /** 205 Prints a chracter to the default console, at 206 the supplied cursor position, using L"%c" format. 207 208 @param Column The cursor position to print the string at. When it is -1, use current Position. 209 @param Row The cursor position to print the string at. When it is -1, use current Position. 210 @param Character Character to print. 211 212 @return Length of string printed to the console. 213 214 **/ 215 UINTN 216 EFIAPI 217 PrintCharAt ( 218 IN UINTN Column, 219 IN UINTN Row, 220 CHAR16 Character 221 ); 222 223 /** 224 Clear retangle with specified text attribute. 225 226 @param LeftColumn Left column of retangle. 227 @param RightColumn Right column of retangle. 228 @param TopRow Start row of retangle. 229 @param BottomRow End row of retangle. 230 @param TextAttribute The character foreground and background. 231 232 **/ 233 VOID 234 EFIAPI 235 ClearLines ( 236 IN UINTN LeftColumn, 237 IN UINTN RightColumn, 238 IN UINTN TopRow, 239 IN UINTN BottomRow, 240 IN UINTN TextAttribute 241 ); 242 243 // 244 // Color Setting Functions 245 // 246 /** 247 Get OEM/Vendor specific popup attribute colors. 248 249 @retval Byte code color setting for popup color. 250 **/ 251 UINT8 252 EFIAPI 253 GetPopupColor ( 254 VOID 255 ); 256 257 /** 258 Get OEM/Vendor specific popup attribute colors. 259 260 @retval Byte code color setting for popup inverse color. 261 **/ 262 UINT8 263 EFIAPI 264 GetPopupInverseColor ( 265 VOID 266 ); 267 268 /** 269 Get OEM/Vendor specific PickList color attribute. 270 271 @retval Byte code color setting for pick list color. 272 **/ 273 UINT8 274 EFIAPI 275 GetPickListColor ( 276 VOID 277 ); 278 279 /** 280 Get OEM/Vendor specific arrow color attribute. 281 282 @retval Byte code color setting for arrow color. 283 **/ 284 UINT8 285 EFIAPI 286 GetArrowColor ( 287 VOID 288 ); 289 290 /** 291 Get OEM/Vendor specific info text color attribute. 292 293 @retval Byte code color setting for info text color. 294 **/ 295 UINT8 296 EFIAPI 297 GetInfoTextColor ( 298 VOID 299 ); 300 301 /** 302 Get OEM/Vendor specific help text color attribute. 303 304 @retval Byte code color setting for help text color. 305 **/ 306 UINT8 307 EFIAPI 308 GetHelpTextColor ( 309 VOID 310 ); 311 312 /** 313 Get OEM/Vendor specific grayed out text color attribute. 314 315 @retval Byte code color setting for grayed out text color. 316 **/ 317 UINT8 318 EFIAPI 319 GetGrayedTextColor ( 320 VOID 321 ); 322 323 /** 324 Get OEM/Vendor specific highlighted text color attribute. 325 326 @retval Byte code color setting for highlight text color. 327 **/ 328 UINT8 329 EFIAPI 330 GetHighlightTextColor ( 331 VOID 332 ); 333 334 /** 335 Get OEM/Vendor specific field text color attribute. 336 337 @retval Byte code color setting for field text color. 338 **/ 339 UINT8 340 EFIAPI 341 GetFieldTextColor ( 342 VOID 343 ); 344 345 /** 346 Get OEM/Vendor specific subtitle text color attribute. 347 348 @retval Byte code color setting for subtitle text color. 349 **/ 350 UINT8 351 EFIAPI 352 GetSubTitleTextColor ( 353 VOID 354 ); 355 356 #endif 357