#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"
#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;
#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);
+inline 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);