1 /***********************************************************
2 * Rocks'n'Diamonds -- McDuffin Strikes Back! *
3 *----------------------------------------------------------*
4 * ©1995 Artsoft Development *
6 * 33659 Bielefeld-Senne *
7 * Telefon: (0521) 493245 *
8 * eMail: aeglos@valinor.owl.de *
9 * aeglos@uni-paderborn.de *
10 * q99492@pbhrzx.uni-paderborn.de *
11 *----------------------------------------------------------*
13 ***********************************************************/
18 #if !defined(PLATFORM_MSDOS)
23 #include <X11/Xutil.h>
24 #include <X11/Xatom.h>
26 #include <X11/Intrinsic.h>
27 #include <X11/keysymdef.h>
31 /* system dependent definitions */
33 /* MS-DOS header file also defines "TARGET_STRING" */
35 #define TARGET_STRING "X11"
38 #define FULLSCREEN_STATUS FULLSCREEN_NOT_AVAILABLE
41 /* X11 type definitions */
43 typedef struct X11DrawableInfo *Bitmap;
44 typedef struct X11DrawableInfo *DrawWindow;
45 typedef struct X11DrawableInfo *DrawBuffer;
50 typedef XButtonEvent ButtonEvent;
51 typedef XMotionEvent MotionEvent;
52 typedef XKeyEvent KeyEvent;
53 typedef XExposeEvent ExposeEvent;
54 typedef XFocusChangeEvent FocusChangeEvent;
55 typedef XClientMessageEvent ClientMessageEvent;
58 /* structure definitions */
60 struct X11DrawableInfo
64 GC gc; /* GC for normal drawing (inheritated from 'window') */
65 GC stored_clip_gc; /* GC for masked drawing (used for whole Pixmap) */
66 GC clip_gc; /* can be 'stored_clip_gc' or one-tile-only clip GC */
70 /* X11 symbol definitions */
72 #define EVENT_BUTTONPRESS ButtonPress
73 #define EVENT_BUTTONRELEASE ButtonRelease
74 #define EVENT_MOTIONNOTIFY MotionNotify
75 #define EVENT_KEYPRESS KeyPress
76 #define EVENT_KEYRELEASE KeyRelease
77 #define EVENT_EXPOSE Expose
78 #define EVENT_FOCUSIN FocusIn
79 #define EVENT_FOCUSOUT FocusOut
80 #define EVENT_CLIENTMESSAGE ClientMessage
81 #define EVENT_MAPNOTIFY MapNotify
82 #define EVENT_UNMAPNOTIFY UnmapNotify
84 #define KSYM_UNDEFINED XK_VoidSymbol
86 #define KSYM_Return XK_Return
87 #define KSYM_Escape XK_Escape
89 #define KSYM_Left XK_Left
90 #define KSYM_Right XK_Right
92 #define KSYM_Down XK_Down
95 #define KSYM_KP_Left XK_KP_Left
96 #define KSYM_KP_Right XK_KP_Right
97 #define KSYM_KP_Up XK_KP_Up
98 #define KSYM_KP_Down XK_KP_Down
102 #define KSYM_KP_Enter XK_KP_Enter
103 #define KSYM_KP_Add XK_KP_Add
104 #define KSYM_KP_Subtract XK_KP_Subtract
105 #define KSYM_KP_Multiply XK_KP_Multiply
106 #define KSYM_KP_Divide XK_KP_Divide
107 #define KSYM_KP_Separator XK_KP_Separator
110 #define KSYM_Shift_L XK_Shift_L
111 #define KSYM_Shift_R XK_Shift_R
112 #define KSYM_Control_L XK_Control_L
113 #define KSYM_Control_R XK_Control_R
114 #define KSYM_Meta_L XK_Meta_L
115 #define KSYM_Meta_R XK_Meta_R
116 #define KSYM_Alt_L XK_Alt_L
117 #define KSYM_Alt_R XK_Alt_R
118 #define KSYM_Super_L XK_Super_L
119 #define KSYM_Super_R XK_Super_R
120 #define KSYM_Mode_switch XK_Mode_switch
121 #define KSYM_Multi_key XK_Multi_key
123 #define KSYM_BackSpace XK_BackSpace
124 #define KSYM_Delete XK_Delete
125 #define KSYM_Insert XK_Insert
126 #define KSYM_Tab XK_Tab
127 #define KSYM_Home XK_Home
128 #define KSYM_End XK_End
129 #define KSYM_Page_Up XK_Page_Up
130 #define KSYM_Page_Down XK_Page_Down
131 #define KSYM_Menu XK_Menu
133 #define KSYM_space XK_space
134 #define KSYM_exclam XK_exclam
135 #define KSYM_quotedbl XK_quotedbl
136 #define KSYM_numbersign XK_numbersign
137 #define KSYM_dollar XK_dollar
138 #define KSYM_percent XK_percent
139 #define KSYM_ampersand XK_ampersand
140 #define KSYM_apostrophe XK_apostrophe
141 #define KSYM_parenleft XK_parenleft
142 #define KSYM_parenright XK_parenright
143 #define KSYM_asterisk XK_asterisk
144 #define KSYM_plus XK_plus
145 #define KSYM_comma XK_comma
146 #define KSYM_minus XK_minus
147 #define KSYM_period XK_period
148 #define KSYM_slash XK_slash
150 #define KSYM_colon XK_colon
151 #define KSYM_semicolon XK_semicolon
152 #define KSYM_less XK_less
153 #define KSYM_equal XK_equal
154 #define KSYM_greater XK_greater
155 #define KSYM_question XK_question
156 #define KSYM_at XK_at
158 #define KSYM_bracketleft XK_bracketleft
159 #define KSYM_backslash XK_backslash
160 #define KSYM_bracketright XK_bracketright
161 #define KSYM_asciicircum XK_asciicircum
162 #define KSYM_underscore XK_underscore
163 #define KSYM_grave XK_grave
165 #define KSYM_quoteleft XK_quoteleft
166 #define KSYM_braceleft XK_braceleft
167 #define KSYM_bar XK_bar
168 #define KSYM_braceright XK_braceright
169 #define KSYM_asciitilde XK_asciitilde
171 #define KSYM_Adiaeresis XK_Adiaeresis
172 #define KSYM_Odiaeresis XK_Odiaeresis
173 #define KSYM_Udiaeresis XK_Udiaeresis
174 #define KSYM_adiaeresis XK_adiaeresis
175 #define KSYM_odiaeresis XK_odiaeresis
176 #define KSYM_udiaeresis XK_udiaeresis
177 #define KSYM_ssharp XK_ssharp
244 #define KSYM_KP_0 XK_KP_0
245 #define KSYM_KP_1 XK_KP_1
246 #define KSYM_KP_2 XK_KP_2
247 #define KSYM_KP_3 XK_KP_3
248 #define KSYM_KP_4 XK_KP_4
249 #define KSYM_KP_5 XK_KP_5
250 #define KSYM_KP_6 XK_KP_6
251 #define KSYM_KP_7 XK_KP_7
252 #define KSYM_KP_8 XK_KP_8
253 #define KSYM_KP_9 XK_KP_9
255 #define KSYM_F1 XK_F1
256 #define KSYM_F2 XK_F2
257 #define KSYM_F3 XK_F3
258 #define KSYM_F4 XK_F4
259 #define KSYM_F5 XK_F5
260 #define KSYM_F6 XK_F6
261 #define KSYM_F7 XK_F7
262 #define KSYM_F8 XK_F8
263 #define KSYM_F9 XK_F9
264 #define KSYM_F10 XK_F10
265 #define KSYM_F11 XK_F11
266 #define KSYM_F12 XK_F12
267 #define KSYM_F13 XK_F13
268 #define KSYM_F14 XK_F14
269 #define KSYM_F15 XK_F15
270 #define KSYM_F16 XK_F16
271 #define KSYM_F17 XK_F17
272 #define KSYM_F18 XK_F18
273 #define KSYM_F19 XK_F19
274 #define KSYM_F20 XK_F20
275 #define KSYM_F21 XK_F21
276 #define KSYM_F22 XK_F22
277 #define KSYM_F23 XK_F23
278 #define KSYM_F24 XK_F24
281 /* X11 function definitions */
283 inline void X11InitVideoDisplay(void);
284 inline void X11InitVideoBuffer(DrawBuffer *, DrawWindow *);