alder_lake_bios/Lcfc/LfcPkg/LenovoChargingLogo/ui/Ui.h

193 lines
4.6 KiB
C

//
// FILENAME.
// Meta.h
// -----------------------------------------------------------------------
//
// NOTICE.
// Copyright (C) 2014 Lenovo All Rights Reserved.
//
#ifndef _BOKR_UI_H
#define _BOKR_UI_H
//
// Standard header files included by modules in this driver.
//
#include <Uefi.h>
#include <PiDxe.h>
#include <Protocol/FirmwareVolume2.h>
#include <Library/UefiBootServicesTableLib.h>
#include <Library/PcdLib.h>
#include <Library/DebugLib.h>
#include <Library/BaseMemoryLib.h>
#include <Library/UefiLib.h>
#include <Library/MemoryAllocationLib.h>
#include <Library/PrintLib.h>
#include "debug/debug.h"
//How to build BOKR module
//build -a X64 -b RELEASE -m D:\Work\BIOS\vienna-m\AIUU1\LenovoPkg\BOKR\BOKR.inf
//
#define BATT_HULL 10
#define BATT_GAP 4
#define BATT_CAP_LENGTH 30
#define BATT_CAP_HALF_WIDTH 40
#define BATT_LEFT_SIDE_SCALE 1/3
#define BATT_RIGHT_SIDE_SCALE 2/3
#define BATT_TOP_SIDE_SCALE 1/2
#define BATT_BOTTOM_SIDE_SCALE 7/10
#define AC_BATT_INFO_FONT_SIZE 50
#define PERCENT_FONT_SIZE 100
#define PERCENT_FONT_TOP_SIDE_SCALE 2/10
#define PERCENT_FONT_BOTTOM_SIDE_SCALE 5/10
// EFI Console Colours
//
#define EFI_BLACK 0x00
#define EFI_BLUE 0x01
#define EFI_GREEN 0x02
#define EFI_CYAN (EFI_BLUE | EFI_GREEN)
#define EFI_RED 0x04
#define EFI_MAGENTA (EFI_BLUE | EFI_RED)
#define EFI_BROWN (EFI_GREEN | EFI_RED)
#define EFI_LIGHTGRAY (EFI_BLUE | EFI_GREEN | EFI_RED)
#define EFI_BRIGHT 0x08
#define EFI_DARKGRAY (EFI_BRIGHT)
#define EFI_LIGHTBLUE (EFI_BLUE | EFI_BRIGHT)
#define EFI_LIGHTGREEN (EFI_GREEN | EFI_BRIGHT)
#define EFI_LIGHTCYAN (EFI_CYAN | EFI_BRIGHT)
#define EFI_LIGHTRED (EFI_RED | EFI_BRIGHT)
#define EFI_LIGHTMAGENTA (EFI_MAGENTA | EFI_BRIGHT)
#define EFI_YELLOW (EFI_BROWN | EFI_BRIGHT)
#define EFI_WHITE (EFI_BLUE | EFI_GREEN | EFI_RED | EFI_BRIGHT)
#define EFI_ORANGE (EFI_BROWN)
//
//Global handle
//
//
//Backup filename length
//
#define BACKUP_FILENAME_LENGTH 18
#define MAX_STRING_LENGTH 256
#define PASSWORD_LENGTH 16
//
//Global colors define
#define WHITE_COLOR 0xFFFFFF
#define BLACK_COLOR 0x040404
#define LIGHTRED_COLOR 0xFF0000
#define RED_COLOR 0xAA1D14
#define LIGHTGRAY_COLOR 0xF4F2F2
#define GRAY_COLOR 0xEDEBEC
#define BLUE_COLOR 0x0068B7
#define GREEN_COLOR 0x00FF00
#define ERROR_COLOR 0xEB6100
#define ORANGE_COLOR 0xFFA000
//
//Background size and colors define
//
#define DEFAULT_X 1366
#define DEFAULT_Y 768
#define P1080P_X 1920
#define P1080P_Y 1080
#define FRONT_STYLE_LEFT_TOP 1
#define FRONT_STYLE_LEFT_BOTTOM 2
#define FRONT_STYLE_LEFT_CENTER 3
#define FRONT_STYLE_MIDLLE_TOP 4
#define FRONT_STYLE_MIDLLE_BOTTOM 5
#define FRONT_STYLE_MIDLLE_CENTER 6
#define FRONT_STYLE_RIGHT_TOP 7
#define FRONT_STYLE_RIGHT_BOTTOM 8
#define FRONT_STYLE_RIGHT_CENTER 9
#define FRONT_STYLE_DISK_INFO 10
//
//UI Page define 0-6 is full screen page
//
typedef enum {
IMAGE_NONE,
IMAGE_RETURN,
IMAGE_RETURN_SELECTED,
IMAGE_EXTERNAL_DISK,
IMAGE_EXTERNAL_DISK_SELECTED,
IMAGE_LOCAL_DISK,
IMAGE_LOCAL_DISK_SELECTED,
IMAGE_FILE,
IMAGE_FILE_SELECTED,
IMAGE_LEVEL1_BUTTON,
IMAGE_LEVEL1_BUTTON_SELECTED,
IMAGE_LEVEL2_BUTTON,
IMAGE_LEVEL2_BUTTON_SELECTED,
BOKR_UI_IMAGE_MAX
} BOKR_UI_IMAGE_TYPE;
#pragma pack(1)
typedef struct _RECT {
UINTN left;
UINTN top;
UINTN right;
UINTN bottom;
} RECT;
typedef struct {
UINTN x;
UINTN y;
} POINT;
#pragma pack()
BOOLEAN
EFIAPI
SetRect(
IN OUT RECT *Rect,
IN UINTN Left,
IN UINTN Top,
IN UINTN Right,
IN UINTN Bottom
);
EFI_STATUS
InitializeGUI();
EFI_STATUS
DrawBatteryInfo(UINTN Percent,UINT8 ACStatus,UINT8 BattStatus);
EFI_STATUS
DrawBattery(UINTN Percent);
#endif //