rnd-19990108-1
[rocksndiamonds.git] / src / buttons.h
index 91ec8f1e58e7c40059c0657bbd5f94f4c8c5db65..5a62e9a48a848036cbf80ef9ae656301b8100116 100644 (file)
 #define ED_BUTTON_EDOWN_Y2POS  165
 #define ED_BUTTON_ELEM_Y2POS   190
 
+#define ED_SCROLLBUTTON_XSIZE  30
+#define ED_SCROLLBUTTON_YSIZE  20
+
 #define ED_BUTTON_CTRL_XPOS    5
 #define ED_BUTTON_CTRL_YPOS    5
 #define ED_BUTTON_CTRL_XSIZE   90
 #define ED_BUTTON_FILL_YSIZE   20
 #define ED_BUTTON_LEFT_XPOS    5
 #define ED_BUTTON_LEFT_YPOS    65
-#define ED_BUTTON_LEFT_XSIZE   30
-#define ED_BUTTON_LEFT_YSIZE   20
+#define ED_BUTTON_LEFT_XSIZE   ED_SCROLLBUTTON_XSIZE
+#define ED_BUTTON_LEFT_YSIZE   ED_SCROLLBUTTON_YSIZE
 #define ED_BUTTON_UP_XPOS      35
 #define ED_BUTTON_UP_YPOS      55
-#define ED_BUTTON_UP_XSIZE     30
-#define ED_BUTTON_UP_YSIZE     20
+#define ED_BUTTON_UP_XSIZE     ED_SCROLLBUTTON_XSIZE
+#define ED_BUTTON_UP_YSIZE     ED_SCROLLBUTTON_YSIZE
 #define ED_BUTTON_DOWN_XPOS    35
 #define ED_BUTTON_DOWN_YPOS    75
-#define ED_BUTTON_DOWN_XSIZE   30
-#define ED_BUTTON_DOWN_YSIZE   20
+#define ED_BUTTON_DOWN_XSIZE   ED_SCROLLBUTTON_XSIZE
+#define ED_BUTTON_DOWN_YSIZE   ED_SCROLLBUTTON_YSIZE
 #define ED_BUTTON_RIGHT_XPOS   65
 #define ED_BUTTON_RIGHT_YPOS   65
-#define ED_BUTTON_RIGHT_XSIZE  30
-#define ED_BUTTON_RIGHT_YSIZE  20
+#define ED_BUTTON_RIGHT_XSIZE  ED_SCROLLBUTTON_XSIZE
+#define ED_BUTTON_RIGHT_YSIZE  ED_SCROLLBUTTON_YSIZE
 
 #define ED_BUTTON_EDIT_XPOS    5
 #define ED_BUTTON_EDIT_YPOS    5
@@ -288,6 +291,8 @@ int CheckCountButtons(int, int, int);
 #define GD_EVENT_MOVING                        (1<<2)
 #define GD_EVENT_REPEATED              (1<<3)
 #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
@@ -308,16 +313,20 @@ int CheckCountButtons(int, int, int);
 #define GDI_RADIO_NR                   8
 #define GDI_RADIO_PRESSED              9
 #define GDI_NUMBER_VALUE               10
-#define GDI_TEXT_VALUE                 11
-#define GDI_DESIGN_UNPRESSED           12
-#define GDI_DESIGN_PRESSED             13
-#define GDI_ALT_DESIGN_UNPRESSED       14
-#define GDI_ALT_DESIGN_PRESSED         15
-#define GDI_EVENT_MASK                 16
-#define GDI_EVENT                      17
-#define GDI_CALLBACK                   18
-#define GDI_AREA_SIZE                  19
-#define GDI_ITEM_SIZE                  20
+#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 *);
 
@@ -354,6 +363,8 @@ struct GadgetInfo
   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 */
@@ -366,9 +377,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