rnd-20031116-2-src
[rocksndiamonds.git] / src / libgame / x11.h
index a4a0577fd1402dab9d3823c7f18e90d0a459556b..99dc4c9cf6cdb0f4f909a5ab64f67cd6a492bd00 100644 (file)
@@ -45,6 +45,9 @@
 
 #define FULLSCREEN_STATUS      FULLSCREEN_NOT_AVAILABLE
 
+#define CURSOR_MAX_WIDTH       32
+#define CURSOR_MAX_HEIGHT      32
+
 
 /* X11 type definitions */
 
@@ -55,6 +58,7 @@ typedef struct X11DrawableInfo        DrawBuffer;
 /* "Cursor" is already defined */
 
 typedef KeySym                 Key;
+typedef unsigned int           KeyMod;
 
 typedef XEvent                 Event;
 typedef XButtonEvent           ButtonEvent;
@@ -80,6 +84,15 @@ struct X11DrawableInfo
   GC clip_gc;          /* can be 'stored_clip_gc' or one-tile-only clip GC  */
 };
 
+struct MouseCursorInfo
+{
+  int width, height;
+  int hot_x, hot_y;
+
+  char data[CURSOR_MAX_WIDTH * CURSOR_MAX_HEIGHT / 8];
+  char mask[CURSOR_MAX_WIDTH * CURSOR_MAX_HEIGHT / 8];
+};
+
 struct XY
 {
   short x, y;
@@ -303,6 +316,21 @@ struct XY
 #define KSYM_FKEY_LAST         KSYM_F24
 #define KSYM_NUM_FKEYS         (KSYM_FKEY_LAST - KSYM_FKEY_FIRST + 1)
 
+#define KMOD_None              None
+#define KMOD_Shift_L           0x0001
+#define KMOD_Shift_R           0x0002
+#define KMOD_Control_L         0x0040
+#define KMOD_Control_R         0x0080
+#define KMOD_Meta_L            0x0400
+#define KMOD_Meta_R            0x0800
+#define KMOD_Alt_L             0x0100
+#define KMOD_Alt_R             0x0200
+
+#define KMOD_Shift             (KMOD_Shift_L   | KMOD_Shift_R)
+#define KMOD_Control           (KMOD_Control_L | KMOD_Control_R)
+#define KMOD_Meta              (KMOD_Meta_L    | KMOD_Meta_R)
+#define KMOD_Alt               (KMOD_Alt_L     | KMOD_Alt_R)
+
 
 /* X11 function definitions */
 
@@ -321,7 +349,7 @@ inline Pixel X11GetPixel(Bitmap *, int, int);
 inline Pixel X11GetPixelFromRGB(unsigned int, unsigned int, unsigned int);
 
 #if defined(TARGET_X11_NATIVE)
-void X11SetMouseCursor(const char **);
+void X11SetMouseCursor(struct MouseCursorInfo *);
 #endif
 
 #endif /* X11_H */