]> git.proxmox.com Git - mirror_edk2.git/blob - MdePkg/Include/Protocol/HiiPopup.h
MdePkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / MdePkg / Include / Protocol / HiiPopup.h
1 /** @file
2 This protocol provides services to display a popup window.
3 The protocol is typically produced by the forms browser and consumed by a driver callback handler.
4
5 Copyright (c) 2017-2018, Intel Corporation. All rights reserved.<BR>
6 SPDX-License-Identifier: BSD-2-Clause-Patent
7
8 @par Revision Reference:
9 This Protocol was introduced in UEFI Specification 2.7.
10
11 **/
12
13 #ifndef __HII_POPUP_H__
14 #define __HII_POPUP_H__
15
16 #define EFI_HII_POPUP_PROTOCOL_GUID \
17 {0x4311edc0, 0x6054, 0x46d4, {0x9e, 0x40, 0x89, 0x3e, 0xa9, 0x52, 0xfc, 0xcc}}
18
19 #define EFI_HII_POPUP_PROTOCOL_REVISION 1
20
21 typedef struct _EFI_HII_POPUP_PROTOCOL EFI_HII_POPUP_PROTOCOL;
22
23 typedef enum {
24 EfiHiiPopupStyleInfo,
25 EfiHiiPopupStyleWarning,
26 EfiHiiPopupStyleError
27 } EFI_HII_POPUP_STYLE;
28
29 typedef enum {
30 EfiHiiPopupTypeOk,
31 EfiHiiPopupTypeOkCancel,
32 EfiHiiPopupTypeYesNo,
33 EfiHiiPopupTypeYesNoCancel
34 } EFI_HII_POPUP_TYPE;
35
36 typedef enum {
37 EfiHiiPopupSelectionOk,
38 EfiHiiPopupSelectionCancel,
39 EfiHiiPopupSelectionYes,
40 EfiHiiPopupSelectionNo
41 } EFI_HII_POPUP_SELECTION;
42
43 /**
44 Displays a popup window.
45
46 @param This A pointer to the EFI_HII_POPUP_PROTOCOL instance.
47 @param PopupStyle Popup style to use.
48 @param PopupType Type of the popup to display.
49 @param HiiHandle HII handle of the string pack containing Message
50 @param Message A message to display in the popup box.
51 @param UserSelection User selection.
52
53 @retval EFI_SUCCESS The popup box was successfully displayed.
54 @retval EFI_INVALID_PARAMETER HiiHandle and Message do not define a valid HII string.
55 @retval EFI_INVALID_PARAMETER PopupType is not one of the values defined by this specification.
56 @retval EFI_OUT_OF_RESOURCES There are not enough resources available to display the popup box.
57
58 **/
59 typedef
60 EFI_STATUS
61 (EFIAPI * EFI_HII_CREATE_POPUP) (
62 IN EFI_HII_POPUP_PROTOCOL *This,
63 IN EFI_HII_POPUP_STYLE PopupStyle,
64 IN EFI_HII_POPUP_TYPE PopupType,
65 IN EFI_HII_HANDLE HiiHandle,
66 IN EFI_STRING_ID Message,
67 OUT EFI_HII_POPUP_SELECTION *UserSelection OPTIONAL
68 );
69
70 typedef struct _EFI_HII_POPUP_PROTOCOL {
71 UINT64 Revision;
72 EFI_HII_CREATE_POPUP CreatePopup;
73 } EFI_HII_POPUP_PROTOCOL;
74
75 extern EFI_GUID gEfiHiiPopupProtocolGuid;
76
77 #endif
78