X-Git-Url: https://code.delx.au/refind/blobdiff_plain/6ddfd09a30d788c784840b1f6dfc3d9281b33726..e8d54384d2b49983ba17471527db797159bfede4:/refind/menu.h diff --git a/refind/menu.h b/refind/menu.h index b0cb514..0b2db1f 100644 --- a/refind/menu.h +++ b/refind/menu.h @@ -45,8 +45,13 @@ #ifndef __REFIND_MENU_H_ #define __REFIND_MENU_H_ +#ifdef __MAKEWITH_GNUEFI #include "efi.h" #include "efilib.h" +#else +#include "../include/tiano_includes.h" +#endif +#include "global.h" #include "libeg.h" @@ -58,14 +63,17 @@ #define MENU_EXIT_ESCAPE (2) #define MENU_EXIT_DETAILS (3) #define MENU_EXIT_TIMEOUT (4) +#define MENU_EXIT_EJECT (5) #define TAG_RETURN (99) // scrolling definitions typedef struct { - INTN CurrentSelection, LastSelection, MaxIndex; + INTN CurrentSelection, PreviousSelection, MaxIndex; INTN FirstVisible, LastVisible, MaxVisible; + INTN FinalRow0, InitialRow1; + INTN ScrollMode; BOOLEAN PaintAll, PaintSelection; } SCROLL_STATE; @@ -76,15 +84,20 @@ typedef struct { #define SCROLL_FIRST (4) #define SCROLL_LAST (5) #define SCROLL_NONE (6) +#define SCROLL_LINE_RIGHT (7) +#define SCROLL_LINE_LEFT (8) + +#define SCROLL_MODE_TEXT (0) /* Used in text mode & for GUI submenus */ +#define SCROLL_MODE_ICONS (1) /* Used for main GUI menu */ struct _refit_menu_screen; VOID AddMenuInfoLine(IN REFIT_MENU_SCREEN *Screen, IN CHAR16 *InfoLine); VOID AddMenuEntry(IN REFIT_MENU_SCREEN *Screen, IN REFIT_MENU_ENTRY *Entry); -VOID FreeMenu(IN REFIT_MENU_SCREEN *Screen); +UINTN ComputeRow0PosY(VOID); VOID MainMenuStyle(IN REFIT_MENU_SCREEN *Screen, IN SCROLL_STATE *State, IN UINTN Function, IN CHAR16 *ParamText); UINTN RunMenu(IN REFIT_MENU_SCREEN *Screen, OUT REFIT_MENU_ENTRY **ChosenEntry); -UINTN RunMainMenu(IN REFIT_MENU_SCREEN *Screen, IN CHAR16* DefaultSelection, OUT REFIT_MENU_ENTRY **ChosenEntry); +UINTN RunMainMenu(IN REFIT_MENU_SCREEN *Screen, IN CHAR16** DefaultSelection, OUT REFIT_MENU_ENTRY **ChosenEntry); #endif