]> code.delx.au - refind/blobdiff - refind/menu.h
Added documentation for new enable_touch support. Also tweaked inclusion
[refind] / refind / menu.h
index b0cb5148cd7374d27b61ad358a24cdcaa56450b9..1ce1ce965eb670208b4340743e20d67017822b8b 100644 (file)
 #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"
+
+#ifndef _EFI_POINT_H
+#include "../EfiLib/AbsolutePointer.h"
+#endif
 
 #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;
 
@@ -76,15 +88,25 @@ 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 */
+
+#define TOUCH_NO_ITEM     (-1)
+#define TOUCH_LEFT_ARROW  (-2)
+#define TOUCH_RIGHT_ARROW (-3)
 
 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);
+UINTN FindMainMenuItem(IN REFIT_MENU_SCREEN *Screen, IN SCROLL_STATE *State, IN UINT64 PosX, IN UINT64 PosY);
 
 #endif