166 lines
2.7 KiB
C
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
|