CloverBootloader/rEFIt_UEFI/refit/menu.h
2020-04-04 15:27:02 +03:00

70 lines
2.4 KiB
C

#ifndef __MENU_H__
#define __MENU_H__
#include "../cpp_foundation/XStringW.h"
#include "../gui/menu_items/menu_items.h"
//VOID AddMenuInfoLine(IN REFIT_MENU_SCREEN *Screen, IN CONST CHAR16 *InfoLine);
//VOID AddMenuInfo(IN REFIT_MENU_SCREEN *SubScreen, IN CONST CHAR16 *Line);
//VOID AddMenuEntry(IN REFIT_MENU_SCREEN *Screen, IN REFIT_MENU_ENTRY *Entry, bool freeIt);
//VOID AddMenuCheck(REFIT_MENU_SCREEN *SubScreen, CONST CHAR8 *Text, UINTN Bit, INTN ItemNum);
//VOID FreeMenu(IN REFIT_MENU_SCREEN *Screen);
//UINTN RunMenu(IN REFIT_MENU_SCREEN *Screen, OUT REFIT_ABSTRACT_MENU_ENTRY **ChosenEntry);
//UINTN RunMainMenu(IN REFIT_MENU_SCREEN *Screen, IN INTN DefaultSelection, OUT REFIT_ABSTRACT_MENU_ENTRY **ChosenEntry);
extern EG_IMAGE* ScrollbarImage;
extern EG_IMAGE* UpButtonImage;
extern EG_IMAGE* DownButtonImage;
extern EG_IMAGE* ScrollbarBackgroundImage;
extern EG_IMAGE* BarStartImage;
extern EG_IMAGE* BarEndImage;
extern EG_IMAGE* ScrollStartImage;
extern EG_IMAGE* ScrollEndImage;
extern EG_RECT UpButton;
extern EG_RECT DownButton;
extern EG_RECT BarStart;
extern EG_RECT BarEnd;
extern EG_RECT ScrollbarBackground;
extern EG_RECT Scrollbar;
extern EG_RECT ScrollStart;
extern EG_RECT ScrollEnd;
extern EG_RECT ScrollTotal;
extern EG_RECT ScrollbarOldPointerPlace;
extern EG_RECT ScrollbarNewPointerPlace;
extern INTN LayoutAnimMoveForMenuX;
extern INTN LayoutMainMenuHeight;
extern INTN ScrollWidth;
VOID InitBar(VOID);
VOID FillRectAreaOfScreen(IN INTN XPos, IN INTN YPos, IN INTN Width, IN INTN Height, IN EG_PIXEL *Color, IN UINT8 XAlign);
VOID InitSelection(VOID);
VOID DrawTextCorner(UINTN TextC, UINT8 Align);
VOID OptionsMenu(OUT REFIT_ABSTRACT_MENU_ENTRY **ChosenEntry);
VOID FreeScrollBar(VOID);
#if USE_XTHEME
//it will be REFIT_SCREEN MEMBER, others as well?
//INTN DrawTextXY(IN const XStringW& Text, IN INTN XPos, IN INTN YPos, IN UINT8 XAlign);
VOID DrawMenuText(IN const XStringW& Text, IN INTN SelectedWidth, IN INTN XPos, IN INTN YPos, IN INTN Cursor);
#else
INTN DrawTextXY(IN CONST CHAR16 *Text, IN INTN XPos, IN INTN YPos, IN UINT8 XAlign);
VOID DrawMenuText(IN CONST CHAR16 *Text, IN INTN SelectedWidth, IN INTN XPos, IN INTN YPos, IN INTN Cursor);
VOID DrawMainMenuEntry(REFIT_ABSTRACT_MENU_ENTRY *Entry, BOOLEAN selected, INTN XPos, INTN YPos);
#endif
VOID DrawBCSText(IN CONST CHAR16 *Text, IN INTN XPos, IN INTN YPos, IN UINT8 XAlign);
UINT64 TimeDiff(UINT64 t0, UINT64 t1); //double in Platform.h
#endif