alder_lake_bios/Insyde/InsydeSetupPkg/Drivers/H2ODisplayEngineLocalMetroDxe/UiLib/Include/UiManager.h

166 lines
2.7 KiB
C

/** @file
;******************************************************************************
;* Copyright (c) 2012 - 2016, Insyde Software Corp. All Rights Reserved.
;*
;* You may not reproduce, distribute, publish, display, perform, modify, adapt,
;* transmit, broadcast, present, recite, release, license or otherwise exploit
;* any part of this publication in any form, by any means, without the prior
;* written permission of Insyde Software Corporation.
;*
;******************************************************************************
*/
#ifndef _UI_MANAGER_H
#define _UI_MANAGER_H
extern EFI_SETUP_MOUSE_PROTOCOL *mSetupMouse;
#include "UiControls.h"
typedef struct _UI_CONTROL UI_CONTROL;
typedef struct _UI_MANAGER UI_MANAGER;
typedef struct {
LIST_ENTRY Link;
CHAR16 *Key;
VOID *Data;
} STRING_MAP;
typedef
UI_CONTROL *
(EFIAPI *FIND_CONTROL_BY_NAME) (
IN UI_MANAGER *This,
IN CHAR16 *Name
);
typedef
VOID
(EFIAPI *GET_CONTROL_RECT) (
IN UI_MANAGER *This,
IN UI_CONTROL *Control,
OUT RECT *Rect
);
typedef
VOID
(EFIAPI *SET_CONTROL_RECT) (
IN UI_MANAGER *This,
IN UI_CONTROL *Control,
IN RECT *Rect
);
typedef
UINTN
(EFIAPI *SET_DEFAULT_FONT_SIZE) (
IN UI_MANAGER *This,
IN UINT32 FontSize
);
typedef
UINT32
(EFIAPI *GET_DEFAULT_FONT_SIZE) (
IN UI_MANAGER *This
);
struct _UI_MANAGER {
HWND Root;
HINSTANCE Instance;
HDC PaintDC;
HDC OffScreenDc;
BOOLEAN DoOffScreen;
HBITMAP OldBitmap;
HWND MainWnd;
RECT InvalidateRect;
UINT32 DefaultFontSize;
BOOLEAN NeedUpdatePos;
STRING_MAP OptionGroup;
STRING_MAP NameList;
FIND_CONTROL_BY_NAME FindControlByName;
GET_CONTROL_RECT GetControlRect;
SET_CONTROL_RECT SetControlRect;
SET_DEFAULT_FONT_SIZE SetDefaultFontSize;
GET_DEFAULT_FONT_SIZE GetDefaultFontSize;
};
VOID
EFIAPI
InitUiManager (
IN UI_MANAGER *This
);
VOID
EFIAPI
DestroyUiManager (
IN UI_MANAGER *This
);
UINT64
EFIAPI
StrToUInt (
IN CHAR16 *Str,
IN UINTN Base,
OUT EFI_STATUS *Status
);
BOOLEAN
EFIAPI
StringMapAdd (
STRING_MAP *Head,
CHAR16 *Key,
VOID *Data
);
VOID *
EFIAPI
StringMapFind (
STRING_MAP *Head,
CHAR16 *Key
);
VOID *
EFIAPI
StringMapSet (
STRING_MAP *Head,
CHAR16 *Key,
VOID *Data
);
BOOLEAN
EFIAPI
StringMapRemove (
STRING_MAP *Head,
CHAR16 *Key
);
VOID
EFIAPI
StringMapRemoveAll (
STRING_MAP *Head
);
STRING_MAP *
EFIAPI
StringMapGetAtItem (
STRING_MAP *Head,
UINTN Index
);
UINTN
EFIAPI
StringMapGetSize (
STRING_MAP *Head
);
VOID
EFIAPI
ScuSafeFreePool (
IN VOID **Buffer
);
#endif