rnd-20140114-1-src
[rocksndiamonds.git] / src / libgame / x11.h
index 3db9bae3aac2427a7329a46eaf8535e1a1341ef6..dc22d353d50af81e00266b27375034dd7399b0a0 100644 (file)
@@ -1,7 +1,7 @@
 /***********************************************************
 * Artsoft Retro-Game Library                               *
 *----------------------------------------------------------*
-* (c) 1994-2002 Artsoft Entertainment                      *
+* (c) 1994-2006 Artsoft Entertainment                      *
 *               Holger Schemel                             *
 *               Detmolder Strasse 189                      *
 *               33604 Bielefeld                            *
 #define TARGET_X11_NATIVE_PERFORMANCE_WORKAROUND
 #endif
 
+#define WINDOW_SCALING_STATUS  WINDOW_SCALING_NOT_AVAILABLE
 #define FULLSCREEN_STATUS      FULLSCREEN_NOT_AVAILABLE
 
+#define CURSOR_MAX_WIDTH       32
+#define CURSOR_MAX_HEIGHT      32
+
 
 /* X11 type definitions */
 
 typedef struct X11DrawableInfo Bitmap;
 typedef struct X11DrawableInfo DrawWindow;
 typedef struct X11DrawableInfo DrawBuffer;
-/* "Pixel" is already defined in X11/Intrinsic.h */
+/* "Pixel" is already defined */
+/* "Cursor" is already defined */
 
 typedef KeySym                 Key;
+typedef unsigned int           KeyMod;
 
 typedef XEvent                 Event;
 typedef XButtonEvent           ButtonEvent;
@@ -70,7 +76,7 @@ struct X11DrawableInfo
 {
   char *source_filename;
 
-  int width, height;
+  unsigned int width, height;
   Drawable drawable;
   Drawable clip_mask;
   GC gc;               /* GC for normal drawing (inheritated from 'window') */
@@ -79,14 +85,21 @@ struct X11DrawableInfo
   GC clip_gc;          /* can be 'stored_clip_gc' or one-tile-only clip GC  */
 };
 
-struct XY
+struct MouseCursorInfo
 {
-  short x, y;
+  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];
 };
 
 
 /* X11 symbol definitions */
 
+#define BLACK_PIXEL            BlackPixel(display, screen)
+#define WHITE_PIXEL            WhitePixel(display, screen)
+
 #define EVENT_BUTTONPRESS      ButtonPress
 #define EVENT_BUTTONRELEASE    ButtonRelease
 #define EVENT_MOTIONNOTIFY     MotionNotify
@@ -186,6 +199,7 @@ struct XY
 #define KSYM_braceright                XK_braceright
 #define KSYM_asciitilde                XK_asciitilde
 
+#define KSYM_degree            XK_degree
 #define KSYM_Adiaeresis                XK_Adiaeresis
 #define KSYM_Odiaeresis                XK_Odiaeresis
 #define KSYM_Udiaeresis                XK_Udiaeresis
@@ -299,14 +313,45 @@ 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 */
 
-inline void X11InitVideoDisplay(void);
-inline void X11InitVideoBuffer(DrawBuffer **, DrawWindow **);
+void X11InitVideoDisplay(void);
+void X11InitVideoBuffer(DrawBuffer **, DrawWindow **);
 
-void X11ZoomBitmap(Bitmap *, Bitmap *);
+void X11CloseWindow(DrawWindow *);
 
+void X11ZoomBitmap(Bitmap *, Bitmap *);
 Bitmap *X11LoadImage(char *);
 
+void X11CreateBitmapContent(Bitmap *, int, int, int);
+void X11FreeBitmapPointers(Bitmap *);
+void X11CopyArea(Bitmap *, Bitmap *, int, int, int, int, int, int, int);
+void X11FillRectangle(Bitmap *, int, int, int, int, Pixel);
+void X11FadeRectangle(Bitmap *, int, int, int, int, int, int, int,
+                     void (*draw_border_function)(void));
+void X11DrawSimpleLine(Bitmap *, int, int, int, int, Pixel);
+Pixel X11GetPixel(Bitmap *, int, int);
+Pixel X11GetPixelFromRGB(unsigned int, unsigned int, unsigned int);
+void X11DestroyImage(XImage *);
+
+#if defined(TARGET_X11_NATIVE)
+void X11SetMouseCursor(struct MouseCursorInfo *);
+#endif
+
 #endif /* X11_H */