]> code.delx.au - refind/blobdiff - refind/menu.h
Added touch screen support. (Works on a SUBSET of touch-screen systems.)
[refind] / refind / menu.h
index be906a9af0a4cdcb83e74f6ad85ee76ba3d2ff5d..e5d02fb031fea12dd582ddddb74e3e707f662fe3 100644 (file)
 #ifndef __REFIND_MENU_H_
 #define __REFIND_MENU_H_
 
+#ifdef __MAKEWITH_GNUEFI
 #include "efi.h"
 #include "efilib.h"
+#include "../EfiLib/AbsolutePointer.h"
+#else
+#include "../include/tiano_includes.h"
+#endif
+#include "global.h"
 
 #include "libeg.h"
 
@@ -58,6 +64,7 @@
 #define MENU_EXIT_ESCAPE  (2)
 #define MENU_EXIT_DETAILS (3)
 #define MENU_EXIT_TIMEOUT (4)
+#define MENU_EXIT_EJECT   (5)
 
 #define TAG_RETURN       (99)
 
@@ -84,14 +91,19 @@ typedef struct {
 #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