rnd-19980925
[rocksndiamonds.git] / src / gadget.h
diff --git a/src/gadget.h b/src/gadget.h
new file mode 100644 (file)
index 0000000..5ee9c98
--- /dev/null
@@ -0,0 +1,54 @@
+/* gadget.h */
+
+/* gadget types */
+#define GD_TYPE_NORMAL_BUTTON          (1<<0)
+#define GD_TYPE_TWO_STATE_BUTTON       (1<<1)
+#define GD_TYPE_DRAWING_AREA           (1<<2)
+#define GD_TYPE_TEXTINPUT              (1<<3)
+#define GD_TYPE_TEXTOUTPUT             (1<<4)
+#define GD_TYPE_NUMBERINPUT            (1<<5)
+#define GD_TYPE_NUMBEROUTPUT           (1<<6)
+
+/* gadget events */
+#define GD_EVENT_PRESSED               (1<<0)
+#define GD_EVENT_RELEASED              (1<<1)
+#define GD_EVENT_MOVING                        (1<<2)
+
+/* gadget structure constants */
+#define MAX_GADGET_TEXTSIZE            1024
+
+struct GadgetDesign
+{
+  Pixmap pixmap;                       /* Pixmap with gadget surface */
+  int x,y;                             /* position of rectangle in Pixmap */
+};
+
+struct Gadget
+{
+  int x,y;                             /* screen position */
+  int width,height;                    /* screen size */
+  unsigned long type;                  /* type (button, text input, ...) */
+  unsigned long state;                 /* state (pressed, released, ...) */
+  long number_value;
+  char text_value[MAX_GADGET_TEXTSIZE];
+  struct GadgetDesign *design[2];      /* 0: normal; 1: pressed */
+  struct GadgetDesign *alt_design[2];  /* alternative design */
+  unsigned long event;                 /* actual gadget event */
+  struct Gadget *next;                 /* next list entry */
+};
+
+struct NewGadget
+{
+  int x,y;                             /* screen position */
+  int width,height;                    /* screen size */
+  unsigned long type;                  /* type (button, text input, ...) */
+  struct GadgetDesign *design[2];      /* 0: normal; 1: pressed */
+  struct GadgetDesign *alt_design[2];  /* alternative design */
+  unsigned long value_mask;            /* actual gadget event */
+};
+
+struct GadgetEvent
+{
+  unsigned long state;                 /* state (pressed, released, ...) */
+  int x,y;                             /* position inside drawing area */
+};