rnd-19990107-1
[rocksndiamonds.git] / src / buttons.h
index f555dd39511590c3a33efcf82cb08e1b88d5c4d0..5dfeb377cc4a73d421e0b5a1666c8f45f85f6075 100644 (file)
@@ -273,7 +273,7 @@ int CheckCountButtons(int, int, int);
 
 /* gadget types */
 #define GD_TYPE_NORMAL_BUTTON          (1<<0)
-#define GD_TYPE_TWO_STATE_BUTTON       (1<<1)
+#define GD_TYPE_RADIO_BUTTON           (1<<1)
 #define GD_TYPE_DRAWING_AREA           (1<<2)
 #define GD_TYPE_TEXTINPUT              (1<<3)
 #define GD_TYPE_TEXTOUTPUT             (1<<4)
@@ -287,7 +287,9 @@ int CheckCountButtons(int, int, int);
 #define GD_EVENT_RELEASED              (1<<1)
 #define GD_EVENT_MOVING                        (1<<2)
 #define GD_EVENT_REPEATED              (1<<3)
-#define GD_EVENT_PRESSED_REPEATED      (GD_EVENT_PRESSED | GD_EVENT_REPEATED)
+#define GD_EVENT_OFF_BORDERS           (1<<4)
+#define GD_EVENT_TEXT_RETURN           (1<<5)
+#define GD_EVENT_TEXT_LEAVING          (1<<6)
 
 /* gadget button states */
 #define GD_BUTTON_UNPRESSED            0
@@ -305,18 +307,23 @@ int CheckCountButtons(int, int, int);
 #define GDI_HEIGHT                     5
 #define GDI_TYPE                       6
 #define GDI_STATE                      7
-#define GDI_ALT_STATE                  8
-#define GDI_NUMBER_VALUE               9
-#define GDI_TEXT_VALUE                 10
-#define GDI_DESIGN_UNPRESSED           11
-#define GDI_DESIGN_PRESSED             12
-#define GDI_ALT_DESIGN_UNPRESSED       13
-#define GDI_ALT_DESIGN_PRESSED         14
-#define GDI_EVENT_MASK                 15
-#define GDI_EVENT                      16
-#define GDI_CALLBACK                   17
-#define GDI_AREA_SIZE                  18
-#define GDI_ITEM_SIZE                  19
+#define GDI_RADIO_NR                   8
+#define GDI_RADIO_PRESSED              9
+#define GDI_NUMBER_VALUE               10
+#define GDI_NUMBER_MIN                 11
+#define GDI_NUMBER_MAX                 12
+#define GDI_TEXT_VALUE                 13
+#define GDI_TEXT_SIZE                  14
+#define GDI_TEXT_BORDER                        15
+#define GDI_DESIGN_UNPRESSED           16
+#define GDI_DESIGN_PRESSED             17
+#define GDI_ALT_DESIGN_UNPRESSED       18
+#define GDI_ALT_DESIGN_PRESSED         19
+#define GDI_EVENT_MASK                 20
+#define GDI_EVENT                      21
+#define GDI_CALLBACK                   22
+#define GDI_AREA_SIZE                  23
+#define GDI_ITEM_SIZE                  24
 
 typedef void (*gadget_callback_function)(void *);
 
@@ -331,6 +338,7 @@ struct GadgetEvent
   unsigned long type;                  /* event type */
   int button;                          /* button number for button events */
   int x, y;                            /* gadget position at event time */
+  boolean off_borders;                 /* mouse pointer outside gadget? */
 };
 
 struct GadgetDrawingArea
@@ -347,10 +355,13 @@ struct GadgetInfo
   int width, height;                   /* gadget size */
   unsigned long type;                  /* type (button, text input, ...) */
   unsigned long state;                 /* state (pressed, released, ...) */
-  boolean alt_state;                   /* alternative state */
+  int radio_nr;                                /* number of radio button series */
+  boolean radio_pressed;               /* radio button state */
   boolean mapped;                      /* gadget is active */
   long number_value;
   char text_value[MAX_GADGET_TEXTSIZE];
+  int text_size;                       /* maximal size of input text */
+  int text_border;                     /* border size of text input gadget */
   struct GadgetDesign design[2];       /* 0: normal; 1: pressed */
   struct GadgetDesign alt_design[2];   /* alternative design */
   unsigned long event_mask;            /* possible events for this gadget */
@@ -363,9 +374,12 @@ struct GadgetInfo
 struct GadgetInfo *CreateGadget(int, ...);
 void FreeGadget(struct GadgetInfo *);
 
+void ClickOnGadget(struct GadgetInfo *);
+
 void MapGadget(struct GadgetInfo *);
 void UnmapGadget(struct GadgetInfo *);
 
 void HandleGadgets(int, int, int);
+void HandleGadgetsKeyInput(KeySym);
 
 #endif