mirror of
				https://github.com/acidanthera/audk.git
				synced 2025-11-03 21:17:23 +01:00 
			
		
		
		
	- opints -> points - sucessfully -> successfully - suported -> supported - hexidecimal -> hexadecimal - TURE -> TRUE - servity -> severity - Moudle -> Module - contiue -> continue - infomation -> information - malformated -> malformatted - Pepresentation -> Representation - opeque -> opaque - assocated -> associated - Libary -> Library - descrption -> description - paramter -> parameter - chracter -> character Cc: Feng Tian <feng.tian@intel.com> Cc: Star Zeng <star.zeng@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Gary Lin <glin@suse.com> Reviewed-by: Feng Tian <feng.tian@intel.com> Reviewed-by: Star Zeng <star.zeng@intel.com>
		
			
				
	
	
		
			357 lines
		
	
	
		
			8.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			357 lines
		
	
	
		
			8.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/** @file
 | 
						|
  This library class defines a set of interfaces to customize Display module
 | 
						|
 | 
						|
Copyright (c) 2013, Intel Corporation. All rights reserved.<BR>
 | 
						|
This program and the accompanying materials are licensed and made available under 
 | 
						|
the terms and conditions of the BSD License that accompanies this distribution.  
 | 
						|
The full text of the license may be found at
 | 
						|
http://opensource.org/licenses/bsd-license.php.                                            
 | 
						|
 | 
						|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     
 | 
						|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 | 
						|
 | 
						|
**/
 | 
						|
 | 
						|
#ifndef __CUSTOMIZED_DISPLAY_LIB_H__
 | 
						|
#define __CUSTOMIZED_DISPLAY_LIB_H__
 | 
						|
 | 
						|
#include <Protocol/DisplayProtocol.h>
 | 
						|
 | 
						|
/**
 | 
						|
+------------------------------------------------------------------------------+
 | 
						|
|                                 Setup Page                                   |
 | 
						|
+------------------------------------------------------------------------------+
 | 
						|
 | 
						|
Statement
 | 
						|
Statement
 | 
						|
Statement
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
+------------------------------------------------------------------------------+
 | 
						|
|                                F9=Reset to Defaults        F10=Save          |
 | 
						|
| ^"=Move Highlight          <Spacebar> Toggles Checkbox     Esc=Exit          |
 | 
						|
+------------------------------------------------------------------------------+
 | 
						|
  StatusBar
 | 
						|
**/
 | 
						|
 | 
						|
/**
 | 
						|
  This funtion defines Page Frame and Backgroud. 
 | 
						|
  
 | 
						|
  Based on the above layout, it will be responsible for HeaderHeight, FooterHeight, 
 | 
						|
  StatusBarHeight and Backgroud. And, it will reserve Screen for Statement. 
 | 
						|
 | 
						|
  @param[in]  FormData             Form Data to be shown in Page.
 | 
						|
  @param[out] ScreenForStatement   Screen to be used for Statement. (Prompt, Value and Help)
 | 
						|
  
 | 
						|
  @return Status
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
EFIAPI
 | 
						|
DisplayPageFrame (
 | 
						|
  IN FORM_DISPLAY_ENGINE_FORM       *FormData,
 | 
						|
  OUT EFI_SCREEN_DESCRIPTOR         *ScreenForStatement
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Clear Screen to the initial state.
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI 
 | 
						|
ClearDisplayPage (
 | 
						|
  VOID
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  This function updates customized key panel's help information.
 | 
						|
  The library will prepare those Strings for the basic key, ESC, Enter, Up/Down/Left/Right, +/-.
 | 
						|
  and arrange them in Footer panel.
 | 
						|
  
 | 
						|
  @param[in]  FormData       Form Data to be shown in Page. FormData has the highlighted statement. 
 | 
						|
  @param[in]  Statement      The statement current selected.
 | 
						|
  @param[in]  Selected       Whether or not a tag be selected. TRUE means Enter has hit this question.
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
RefreshKeyHelp (
 | 
						|
  IN FORM_DISPLAY_ENGINE_FORM      *FormData,
 | 
						|
  IN FORM_DISPLAY_ENGINE_STATEMENT *Statement,
 | 
						|
  IN  BOOLEAN                      Selected
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Update status bar.
 | 
						|
 | 
						|
  This function updates the status bar on the bottom of menu screen. It just shows StatusBar. 
 | 
						|
  Original logic in this function should be splitted out.
 | 
						|
 | 
						|
  @param[in]  MessageType            The type of message to be shown. InputError or Configuration Changed. 
 | 
						|
  @param[in]  State                  Show or Clear Message.
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
UpdateStatusBar (
 | 
						|
  IN  UINTN                  MessageType,
 | 
						|
  IN  BOOLEAN                State
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Create popup window. 
 | 
						|
 | 
						|
  This function draws OEM/Vendor specific pop up windows.
 | 
						|
 | 
						|
  @param[out]  Key    User Input Key
 | 
						|
  @param       ...    String to be shown in Popup. The variable argument list is terminated by a NULL.
 | 
						|
  
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
CreateDialog (
 | 
						|
  OUT EFI_INPUT_KEY  *Key,        OPTIONAL
 | 
						|
  ...
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Confirm how to handle the changed data. 
 | 
						|
  
 | 
						|
  @return Action BROWSER_ACTION_SUBMIT, BROWSER_ACTION_DISCARD or other values.
 | 
						|
**/
 | 
						|
UINTN
 | 
						|
EFIAPI
 | 
						|
ConfirmDataChange (
 | 
						|
  VOID
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  OEM specifies whether Setup exits Page by ESC key.
 | 
						|
 | 
						|
  This function customized the behavior that whether Setup exits Page so that 
 | 
						|
  system able to boot when configuration is not changed.
 | 
						|
 | 
						|
  @retval  TRUE     Exits FrontPage
 | 
						|
  @retval  FALSE    Don't exit FrontPage.
 | 
						|
**/
 | 
						|
BOOLEAN
 | 
						|
EFIAPI
 | 
						|
FormExitPolicy (
 | 
						|
  VOID
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Set Timeout value for a ceratain Form to get user response. 
 | 
						|
  
 | 
						|
  This function allows to set timeout value on a ceratain form if necessary.
 | 
						|
  If timeout is not zero, the form will exit if user has no response in timeout. 
 | 
						|
  
 | 
						|
  @param[in]  FormData   Form Data to be shown in Page
 | 
						|
 | 
						|
  @return 0     No timeout for this form. 
 | 
						|
  @return > 0   Timeout value in 100 ns units.
 | 
						|
**/
 | 
						|
UINT64
 | 
						|
EFIAPI
 | 
						|
FormExitTimeout (
 | 
						|
  IN FORM_DISPLAY_ENGINE_FORM      *FormData
 | 
						|
  );
 | 
						|
 | 
						|
//
 | 
						|
// Print Functions
 | 
						|
//
 | 
						|
/**
 | 
						|
  Prints a unicode string to the default console, at
 | 
						|
  the supplied cursor position, using L"%s" format.
 | 
						|
 | 
						|
  @param  Column     The cursor position to print the string at. When it is -1, use current Position.
 | 
						|
  @param  Row        The cursor position to print the string at. When it is -1, use current Position.
 | 
						|
  @param  String     String pointer.
 | 
						|
 | 
						|
  @return Length of string printed to the console
 | 
						|
 | 
						|
**/
 | 
						|
UINTN
 | 
						|
EFIAPI
 | 
						|
PrintStringAt (
 | 
						|
  IN UINTN     Column,
 | 
						|
  IN UINTN     Row,
 | 
						|
  IN CHAR16    *String
 | 
						|
  );
 | 
						|
 | 
						|
 | 
						|
/**
 | 
						|
  Prints a unicode string with the specified width to the default console, at
 | 
						|
  the supplied cursor position, using L"%s" format.
 | 
						|
 | 
						|
  @param  Column     The cursor position to print the string at. When it is -1, use current Position.
 | 
						|
  @param  Row        The cursor position to print the string at. When it is -1, use current Position.
 | 
						|
  @param  String     String pointer.
 | 
						|
  @param  Width      Width for String to be printed. If the print length of String < Width, 
 | 
						|
                     Space char (L' ') will be used to append String. 
 | 
						|
 | 
						|
  @return Length of string printed to the console
 | 
						|
 | 
						|
**/
 | 
						|
UINTN
 | 
						|
EFIAPI
 | 
						|
PrintStringAtWithWidth (
 | 
						|
  IN UINTN     Column,
 | 
						|
  IN UINTN     Row,
 | 
						|
  IN CHAR16    *String,
 | 
						|
  IN UINTN     Width
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Prints a character to the default console, at
 | 
						|
  the supplied cursor position, using L"%c" format.
 | 
						|
 | 
						|
  @param  Column     The cursor position to print the string at. When it is -1, use current Position.
 | 
						|
  @param  Row        The cursor position to print the string at. When it is -1, use current Position.
 | 
						|
  @param  Character  Character to print.
 | 
						|
 | 
						|
  @return Length of string printed to the console.
 | 
						|
 | 
						|
**/
 | 
						|
UINTN
 | 
						|
EFIAPI
 | 
						|
PrintCharAt (
 | 
						|
  IN UINTN     Column,
 | 
						|
  IN UINTN     Row,
 | 
						|
  CHAR16       Character
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Clear retangle with specified text attribute.
 | 
						|
 | 
						|
  @param  LeftColumn     Left column of retangle.
 | 
						|
  @param  RightColumn    Right column of retangle.
 | 
						|
  @param  TopRow         Start row of retangle.
 | 
						|
  @param  BottomRow      End row of retangle.
 | 
						|
  @param  TextAttribute  The character foreground and background.
 | 
						|
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
ClearLines (
 | 
						|
  IN UINTN               LeftColumn,
 | 
						|
  IN UINTN               RightColumn,
 | 
						|
  IN UINTN               TopRow,
 | 
						|
  IN UINTN               BottomRow,
 | 
						|
  IN UINTN               TextAttribute
 | 
						|
  );
 | 
						|
 | 
						|
//
 | 
						|
// Color Setting Functions
 | 
						|
//
 | 
						|
/**
 | 
						|
  Get OEM/Vendor specific popup attribute colors.
 | 
						|
 | 
						|
  @retval  Byte code color setting for popup color.
 | 
						|
**/
 | 
						|
UINT8
 | 
						|
EFIAPI
 | 
						|
GetPopupColor (
 | 
						|
  VOID
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Get OEM/Vendor specific popup attribute colors.
 | 
						|
 | 
						|
  @retval  Byte code color setting for popup inverse color.
 | 
						|
**/
 | 
						|
UINT8
 | 
						|
EFIAPI
 | 
						|
GetPopupInverseColor (
 | 
						|
  VOID
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Get OEM/Vendor specific PickList color attribute.
 | 
						|
 | 
						|
  @retval  Byte code color setting for pick list color.
 | 
						|
**/
 | 
						|
UINT8
 | 
						|
EFIAPI
 | 
						|
GetPickListColor (
 | 
						|
  VOID
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Get OEM/Vendor specific arrow color attribute.
 | 
						|
 | 
						|
  @retval  Byte code color setting for arrow color.
 | 
						|
**/
 | 
						|
UINT8
 | 
						|
EFIAPI
 | 
						|
GetArrowColor (
 | 
						|
  VOID
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Get OEM/Vendor specific info text color attribute.
 | 
						|
 | 
						|
  @retval  Byte code color setting for info text color.
 | 
						|
**/
 | 
						|
UINT8
 | 
						|
EFIAPI
 | 
						|
GetInfoTextColor (
 | 
						|
  VOID
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Get OEM/Vendor specific help text color attribute.
 | 
						|
 | 
						|
  @retval  Byte code color setting for help text color.
 | 
						|
**/
 | 
						|
UINT8
 | 
						|
EFIAPI
 | 
						|
GetHelpTextColor (
 | 
						|
  VOID
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Get OEM/Vendor specific grayed out text color attribute.
 | 
						|
 | 
						|
  @retval  Byte code color setting for grayed out text color.
 | 
						|
**/
 | 
						|
UINT8
 | 
						|
EFIAPI
 | 
						|
GetGrayedTextColor (
 | 
						|
  VOID
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Get OEM/Vendor specific highlighted text color attribute.
 | 
						|
 | 
						|
  @retval  Byte code color setting for highlight text color.
 | 
						|
**/
 | 
						|
UINT8
 | 
						|
EFIAPI
 | 
						|
GetHighlightTextColor (
 | 
						|
  VOID
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Get OEM/Vendor specific field text color attribute.
 | 
						|
 | 
						|
  @retval  Byte code color setting for field text color.
 | 
						|
**/
 | 
						|
UINT8
 | 
						|
EFIAPI
 | 
						|
GetFieldTextColor (
 | 
						|
  VOID
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Get OEM/Vendor specific subtitle text color attribute.
 | 
						|
 | 
						|
  @retval  Byte code color setting for subtitle text color.
 | 
						|
**/
 | 
						|
UINT8
 | 
						|
EFIAPI
 | 
						|
GetSubTitleTextColor (
 | 
						|
  VOID
 | 
						|
  );
 | 
						|
 | 
						|
#endif
 |