Fix recursive timeout and add exit status information.
[bertos.git] / gui / menu.h
index 06b90a8b4069f107ff2f6207434c737cdbd7e910..2956f0769bbae32848c510c4b0b4b485bf49e77b 100755 (executable)
@@ -16,6 +16,9 @@
 
 /*#*
  *#* $Log$
+ *#* Revision 1.2  2006/06/03 13:58:02  bernie
+ *#* Fix recursive timeout and add exit status information.
+ *#*
  *#* Revision 1.1  2006/05/15 07:20:54  bernie
  *#* Move menu to gui/.
  *#*
@@ -67,7 +70,7 @@
 struct Bitmap;
 
 /** Menu callback function */
-typedef void (*MenuHook)(iptr_t userdata);
+typedef iptr_t (*MenuHook)(iptr_t userdata);
 
 /**
  * Menu item description.
@@ -125,6 +128,17 @@ typedef struct Menu
 #define MF_SAVESEL  BV(3)  /**< Remember the selected item across invocations. */
 /* \} */
 
+/**
+ * \name Special result codes for menu_handle().
+ * \{
+ */
+#define MENU_OK       ((iptr_t)0)
+#define MENU_CANCEL   ((iptr_t)-1)
+#define MENU_TIMEOUT  ((iptr_t)-2)
+#define MENU_ABORT    ((iptr_t)-3)
+#define MENU_DISABLED ((iptr_t)-4)
+/* \} */
+
 /* Function prototypes */
 iptr_t menu_handle(const struct Menu *menu);
 int menu_setFlags(struct Menu *menu, int idx, int flags);