24 #if SDL_VIDEO_DRIVER_X11
34 #define SDL_FORK_MESSAGEBOX 0
35 #define SDL_SET_LOCALE 0
37 #if SDL_FORK_MESSAGEBOX
45 #define MAX_TEXT_LINES 32
46 #define MIN_BUTTON_WIDTH 64
47 #define MIN_DIALOG_WIDTH 200
48 #define MIN_DIALOG_HEIGHT 100
50 static const char g_MessageBoxFontLatin1[] =
"-*-*-medium-r-normal--0-120-*-*-p-0-iso8859-1";
51 static const char g_MessageBoxFont[] =
"-*-*-*-*-*-*-*-*-*-*-*-*-*-*";
61 #define SDL_MAKE_RGB( _r, _g, _b ) ( ( ( Uint32 )( _r ) << 16 ) | \
62 ( ( Uint32 )( _g ) << 8 ) | \
63 ( ( Uint32 )( _b ) ) )
65 typedef struct SDL_MessageBoxButtonDataX11 {
73 } SDL_MessageBoxButtonDataX11;
75 typedef struct TextLineData {
81 typedef struct SDL_MessageBoxDataX11
88 Atom wm_delete_message;
94 XFontStruct *font_struct;
98 TextLineData linedata[ MAX_TEXT_LINES ];
102 int button_press_index;
103 int mouse_over_index;
107 SDL_MessageBoxButtonDataX11 buttonpos[ MAX_BUTTONS ];
112 } SDL_MessageBoxDataX11;
116 IntMax(
int a,
int b )
118 return ( a > b ) ? a :
b;
123 GetTextWidthHeight( SDL_MessageBoxDataX11 *
data,
const char *
str,
int nbytes,
int *pwidth,
int *pheight )
126 XRectangle overall_ink, overall_logical;
127 Xutf8TextExtents(data->font_set, str, nbytes, &overall_ink, &overall_logical);
128 *pwidth = overall_logical.width;
129 *pheight = overall_logical.height;
131 XCharStruct text_structure;
132 int font_direction, font_ascent, font_descent;
134 &font_direction, &font_ascent, &font_descent,
136 *pwidth = text_structure.width;
137 *pheight = text_structure.ascent + text_structure.descent;
143 GetHitButtonIndex( SDL_MessageBoxDataX11 *data,
int x,
int y )
146 int numbuttons = data->numbuttons;
147 SDL_MessageBoxButtonDataX11 *buttonpos = data->buttonpos;
149 for ( i = 0; i < numbuttons; i++ ) {
152 if ( ( x >= rect->
x ) &&
153 ( x <= ( rect->
x + rect->
w ) ) &&
155 ( y <= ( rect->
y + rect->
h ) ) ) {
165 X11_MessageBoxInit( SDL_MessageBoxDataX11 *data,
const SDL_MessageBoxData * messageboxdata,
int * pbuttonid )
172 if ( numbuttons > MAX_BUTTONS ) {
173 return SDL_SetError(
"Too many buttons (%d max allowed)", MAX_BUTTONS);
176 data->dialog_width = MIN_DIALOG_WIDTH;
177 data->dialog_height = MIN_DIALOG_HEIGHT;
178 data->messageboxdata = messageboxdata;
179 data->buttondata = buttondata;
180 data->numbuttons = numbuttons;
181 data->pbuttonid = pbuttonid;
184 if ( !data->display ) {
189 char **missing =
NULL;
192 &missing, &num_missing,
NULL);
193 if ( missing !=
NULL ) {
196 if ( data->font_set ==
NULL ) {
197 return SDL_SetError(
"Couldn't load font %s", g_MessageBoxFont);
200 data->font_struct =
XLoadQueryFont( data->display, g_MessageBoxFontLatin1 );
201 if ( data->font_struct ==
NULL ) {
202 return SDL_SetError(
"Couldn't load font %s", g_MessageBoxFontLatin1);
209 colorhints = g_default_colors;
214 data->color[
i ] = SDL_MAKE_RGB( colorhints[ i ].
r, colorhints[ i ].
g, colorhints[ i ].b );
222 X11_MessageBoxInitPositions( SDL_MessageBoxDataX11 *data )
226 int text_width_max = 0;
227 int button_text_height = 0;
228 int button_width = MIN_BUTTON_WIDTH;
233 const char *text = messageboxdata->
message;
234 TextLineData *plinedata = data->linedata;
236 for ( i = 0; i < MAX_TEXT_LINES; i++, plinedata++ ) {
238 char *lf =
SDL_strchr( (
char * )text,
'\n' );
243 plinedata->length = ( lf && ( i < MAX_TEXT_LINES - 1 ) ) ? ( lf - text ) :
SDL_strlen( text );
244 plinedata->text = text;
246 GetTextWidthHeight( data, text, plinedata->length, &plinedata->width, &height );
249 data->text_height = IntMax( data->text_height, height );
250 text_width_max = IntMax( text_width_max, plinedata->width );
252 if (lf && (lf > text) && (lf[-1] ==
'\r')) {
256 text += plinedata->length + 1;
264 data->text_height += 2;
268 for ( i = 0; i < data->numbuttons; i++ ) {
271 data->buttonpos[
i ].buttondata = &data->buttondata[
i ];
272 data->buttonpos[
i ].length =
SDL_strlen( data->buttondata[ i ].text );
274 GetTextWidthHeight( data, data->buttondata[ i ].text,
SDL_strlen( data->buttondata[ i ].text ),
275 &data->buttonpos[ i ].text_width, &height );
277 button_width = IntMax( button_width, data->buttonpos[ i ].text_width );
278 button_text_height = IntMax( button_text_height, height );
281 if ( data->numlines ) {
283 data->xtext = data->text_height;
284 data->ytext = data->text_height + data->text_height;
287 ybuttons = 3 * data->ytext / 2 + ( data->numlines - 1 ) * data->text_height;
290 data->dialog_width = IntMax( data->dialog_width, 2 * data->xtext + text_width_max );
291 data->dialog_height = IntMax( data->dialog_height, ybuttons );
294 ybuttons = button_text_height;
297 if ( data->numbuttons ) {
299 int width_of_buttons;
300 int button_spacing = button_text_height;
301 int button_height = 2 * button_text_height;
304 button_width += button_text_height;
307 width_of_buttons = data->numbuttons * button_width + ( data->numbuttons - 1 ) * button_spacing;
310 data->dialog_width = IntMax( data->dialog_width, width_of_buttons + 2 * button_spacing );
311 data->dialog_height = IntMax( data->dialog_height, ybuttons + 2 * button_height );
314 x = ( data->dialog_width - width_of_buttons ) / 2;
315 y = ybuttons + ( data->dialog_height - ybuttons - button_height ) / 2;
317 for ( i = 0; i < data->numbuttons; i++ ) {
319 data->buttonpos[
i ].rect.x =
x;
320 data->buttonpos[
i ].rect.y =
y;
321 data->buttonpos[
i ].rect.w = button_width;
322 data->buttonpos[
i ].rect.h = button_height;
325 data->buttonpos[
i ].x = x + ( button_width - data->buttonpos[
i ].text_width ) / 2;
326 data->buttonpos[
i ].y = y + ( button_height - button_text_height - 1 ) / 2 + button_text_height;
329 x += button_width + button_spacing;
338 X11_MessageBoxShutdown( SDL_MessageBoxDataX11 *data )
340 if ( data->font_set !=
NULL ) {
341 XFreeFontSet( data->display, data->font_set );
342 data->font_set =
NULL;
345 if ( data->font_struct !=
NULL ) {
346 XFreeFont( data->display, data->font_struct );
347 data->font_struct =
NULL;
350 if ( data->display ) {
351 if ( data->window != None ) {
358 data->display =
NULL;
364 X11_MessageBoxCreateWindow( SDL_MessageBoxDataX11 *data )
367 XSizeHints *sizehints;
368 XSetWindowAttributes wnd_attr;
369 Display *
display = data->display;
373 if ( messageboxdata->
window ) {
377 data->screen = displaydata->
screen;
379 data->screen = DefaultScreen( display );
382 data->event_mask = ExposureMask |
383 ButtonPressMask | ButtonReleaseMask | KeyPressMask | KeyReleaseMask |
384 StructureNotifyMask | FocusChangeMask | PointerMotionMask;
385 wnd_attr.event_mask = data->event_mask;
387 data->window = XCreateWindow(
388 display, RootWindow(display, data->screen),
390 data->dialog_width, data->dialog_height,
391 0, CopyFromParent, InputOutput, CopyFromParent,
392 CWEventMask, &wnd_attr );
393 if ( data->window == None ) {
402 XStoreName( display, data->window, messageboxdata->
title );
405 data->wm_protocols =
XInternAtom( display,
"WM_PROTOCOLS", False );
406 data->wm_delete_message =
XInternAtom( display,
"WM_DELETE_WINDOW", False );
407 XSetWMProtocols( display, data->window, &data->wm_delete_message, 1 );
410 XWindowAttributes attrib;
414 x = attrib.x + ( attrib.width - data->dialog_width ) / 2;
415 y = attrib.y + ( attrib.height - data->dialog_height ) / 3 ;
416 XTranslateCoordinates(display, windowdata->
xwindow, RootWindow(display, data->screen), x, y, &x, &y, &dummy);
418 x = ( DisplayWidth( display, data->screen ) - data->dialog_width ) / 2;
419 y = ( DisplayHeight( display, data->screen ) - data->dialog_height ) / 3 ;
423 sizehints = XAllocSizeHints();
425 sizehints->flags = USPosition | USSize | PMaxSize | PMinSize;
428 sizehints->width = data->dialog_width;
429 sizehints->height = data->dialog_height;
431 sizehints->min_width = sizehints->max_width = data->dialog_width;
432 sizehints->min_height = sizehints->max_height = data->dialog_height;
439 XMapRaised( display, data->window );
445 X11_MessageBoxDraw( SDL_MessageBoxDataX11 *data, GC
ctx )
448 Window window = data->window;
449 Display *display = data->display;
452 XFillRectangle( display, window, ctx, 0, 0, data->dialog_width, data->dialog_height );
455 for ( i = 0; i < data->numlines; i++ ) {
456 TextLineData *plinedata = &data->linedata[
i ];
459 Xutf8DrawString( display, window, data->font_set, ctx,
460 data->xtext, data->ytext + i * data->text_height,
461 plinedata->text, plinedata->length );
464 data->xtext, data->ytext + i * data->text_height,
465 plinedata->text, plinedata->length );
469 for ( i = 0; i < data->numbuttons; i++ ) {
470 SDL_MessageBoxButtonDataX11 *buttondatax11 = &data->buttonpos[
i ];
473 int offset = ( ( data->mouse_over_index ==
i ) && ( data->button_press_index == data->mouse_over_index ) ) ? 1 : 0;
477 buttondatax11->rect.x - border, buttondatax11->rect.y - border,
478 buttondatax11->rect.w + 2 * border, buttondatax11->rect.h + 2 * border );
482 buttondatax11->rect.x, buttondatax11->rect.y,
483 buttondatax11->rect.w, buttondatax11->rect.h );
490 Xutf8DrawString( display, window, data->font_set, ctx,
491 buttondatax11->x + offset,
492 buttondatax11->y + offset,
493 buttondata->
text, buttondatax11->length );
496 buttondatax11->x + offset, buttondatax11->y + offset,
497 buttondata->
text, buttondatax11->length );
504 X11_MessageBoxLoop( SDL_MessageBoxDataX11 *data )
511 unsigned long gcflags = GCForeground | GCBackground;
519 ctx_vals.font = data->font_struct->fid;
522 ctx = XCreateGC( data->display, data->window, gcflags, &ctx_vals );
524 return SDL_SetError(
"Couldn't create graphics context");
527 data->button_press_index = -1;
528 data->mouse_over_index = -1;
530 while( !close_dialog ) {
534 XWindowEvent( data->display, data->window, data->event_mask, &e );
538 if ( ( e.type != Expose ) && XFilterEvent( &e, None ) )
543 if ( e.xexpose.count > 0 ) {
556 data->button_press_index = -1;
557 data->mouse_over_index = -1;
563 data->mouse_over_index = GetHitButtonIndex( data, e.xbutton.x, e.xbutton.y );
568 if ( e.xclient.message_type == data->wm_protocols &&
569 e.xclient.format == 32 &&
570 e.xclient.data.l[ 0 ] == data->wm_delete_message ) {
577 last_key_pressed = XLookupKeysym( &e.xkey, 0 );
582 KeySym key = XLookupKeysym( &e.xkey, 0 );
585 if ( key != last_key_pressed )
597 for ( i = 0; i < data->numbuttons; i++ ) {
598 SDL_MessageBoxButtonDataX11 *buttondatax11 = &data->buttonpos[
i ];
600 if ( buttondatax11->buttondata->flags & mask ) {
601 *data->pbuttonid = buttondatax11->buttondata->buttonid;
611 data->button_press_index = -1;
612 if ( e.xbutton.button == Button1 ) {
614 data->button_press_index = GetHitButtonIndex( data, e.xbutton.x, e.xbutton.y );
620 if ( ( e.xbutton.button == Button1 ) && ( data->button_press_index >= 0 ) ) {
621 int button = GetHitButtonIndex( data, e.xbutton.x, e.xbutton.y );
623 if ( data->button_press_index == button ) {
624 SDL_MessageBoxButtonDataX11 *buttondatax11 = &data->buttonpos[ button ];
626 *data->pbuttonid = buttondatax11->buttondata->buttonid;
630 data->button_press_index = -1;
636 X11_MessageBoxDraw( data, ctx );
648 SDL_MessageBoxDataX11
data;
659 origlocale = setlocale(LC_ALL,
NULL);
660 if (origlocale !=
NULL) {
662 if (origlocale ==
NULL) {
665 setlocale(LC_ALL,
"");
676 ret = X11_MessageBoxInit( &data, messageboxdata, buttonid );
678 ret = X11_MessageBoxInitPositions( &data );
680 ret = X11_MessageBoxCreateWindow( &data );
682 ret = X11_MessageBoxLoop( &data );
687 X11_MessageBoxShutdown( &data );
691 setlocale(LC_ALL, origlocale);
703 #if SDL_FORK_MESSAGEBOX
712 if (pipe(fds) == -1) {
713 return X11_ShowMessageBoxImpl(messageboxdata, buttonid);
720 return X11_ShowMessageBoxImpl(messageboxdata, buttonid);
721 }
else if (pid == 0) {
724 status = X11_ShowMessageBoxImpl(messageboxdata, buttonid);
725 if (write(fds[1], &status,
sizeof (
int)) !=
sizeof (
int))
727 else if (write(fds[1], buttonid,
sizeof (
int)) !=
sizeof (
int))
735 rc = waitpid(pid, &status, 0);
736 }
while ((rc == -1) && (errno == EINTR));
740 if ((rc == -1) || (!WIFEXITED(status)) || (WEXITSTATUS(status) != 0)) {
744 if (read(fds[0], &status,
sizeof (
int)) !=
sizeof (
int))
746 else if (read(fds[0], buttonid,
sizeof (
int)) !=
sizeof (
int))
753 return X11_ShowMessageBoxImpl(messageboxdata, buttonid);
return Display return Display Bool Bool int int int return Display XEvent Bool(*) XPointer retur XCloseDisplay)
return Display return Display Bool Bool int int int return Display XEvent Bool(*) XPointer return Display return Display Drawable _Xconst char unsigned int unsigned int return Display Pixmap Pixmap XColor XColor unsigned int unsigned int return Display _Xconst char char int char return Display Visual unsigned int int int char unsigned int unsigned int int int return Display Window Cursor return Display Window return Display Drawable GC int int unsigned int unsigned int return Display Drawable GC int int _Xconst char int return Display Drawable GC int int unsigned int unsigned int return Display return Display Cursor return Display GC return XModifierKeymap return char Display Window int return Display return Display Atom return Display Window XWindowAttributes return Display Window return Display XEvent Bool(*) XPointer return Display Window Bool unsigned int int int Window Cursor Time return Display Window int return KeySym return Display _Xconst char Bool return Display _Xconst char return XKeyEvent char int KeySym XComposeStatus return Display int int int XVisualInfo return Display Window int int retur XOpenDisplay)
return Display return Display Bool Bool int int int return Display XEvent Bool(*) XPointer return Display return Display Drawable _Xconst char unsigned int unsigned int return Display Pixmap Pixmap XColor XColor unsigned int unsigned int return Display _Xconst char char int char return Display Visual unsigned int int int char unsigned int unsigned int int int return Display Window Cursor return Display Window return Display Drawable GC int int unsigned int unsigned int return Display Drawable GC int int _Xconst char int return Display Drawable GC int int unsigned int unsigned int retur XFlush)
return Display return Display Bool Bool int int int return Display XEvent Bool(*) XPointer return Display return Display Drawable _Xconst char unsigned int unsigned int return Display Pixmap Pixmap XColor XColor unsigned int unsigned int return Display _Xconst char char int char return Display Visual unsigned int int int char unsigned int unsigned int int int return Display Window Cursor return Display Window return Display Drawable GC int int unsigned int unsigned int return Display Drawable GC int int _Xconst char int retur XFillRectangle)
return Display return Display Bool Bool int int int return Display XEvent Bool(*) XPointer return Display return Display Drawable _Xconst char unsigned int unsigned int return Display Pixmap Pixmap XColor XColor unsigned int unsigned int return Display _Xconst char char int char return Display Visual unsigned int int int char unsigned int unsigned int int int return Display Window Cursor return Display Window return Display Drawable GC int int unsigned int unsigned int return Display Drawable GC int int _Xconst char int return Display Drawable GC int int unsigned int unsigned int return Display return Display Cursor return Display GC return XModifierKeymap retur XFreeStringList)
return Display return Display Bool Bool int int e
DECLSPEC void SDLCALL SDL_free(void *mem)
EGLSurface EGLint EGLint EGLint EGLint height
GLboolean GLboolean GLboolean GLboolean a
DECLSPEC char *SDLCALL SDL_strchr(const char *str, int c)
#define SDL_X11_HAVE_UTF8
return Display return Display Bool Bool int int int return Display XEvent Bool(*) XPointer return Display return Display Drawable _Xconst char unsigned int unsigned int return Display Pixmap Pixmap XColor XColor unsigned int unsigned int return Display _Xconst char char int char return Display Visual unsigned int int int char unsigned int unsigned int int int return Display Window Cursor return Display Window retur XDrawRectangle)
RGB value used in a message box color scheme.
return Display return Display Bool Bool int int int return Display XEvent Bool(*) XPointer return Display return Display Drawable _Xconst char unsigned int unsigned int return Display Pixmap Pixmap XColor XColor unsigned int unsigned int return Display _Xconst char char int char return Display Visual unsigned int int int char unsigned int unsigned int int int return Display Window Cursor return Display Window return Display Drawable GC int int unsigned int unsigned int return Display Drawable GC int int _Xconst char int return Display Drawable GC int int unsigned int unsigned int return Display return Display Cursor return Display GC return XModifierKeymap return char Display Window int return Display return Display Atom return Display Window XWindowAttributes return Display Window return Display XEvent Bool(*) XPointer return Display Window Bool unsigned int int int Window Cursor Time return Display Window int return KeySym return Display _Xconst char Bool return Display _Xconst char return XKeyEvent char int KeySym XComposeStatus return Display int int int XVisualInfo return Display Window int int return _Xconst char return Display XEvent return Display Drawable GC XImage int int int int unsigned int unsigned int return Display Window Window Window int int int int unsigned int return Display Window Window int int return Display Window unsigned int unsigned int return Display Window Bool long XEvent return Display GC unsigned long return Display Window int Time retur XSetTransientForHint)
return Display return Display Bool Bool int int int return Display XEvent Bool(*) XPointer return Display return Display Drawable _Xconst char unsigned int unsigned int return Display Pixmap Pixmap XColor XColor unsigned int unsigned int return Display _Xconst char char int char return Display Visual unsigned int int int char unsigned int unsigned int int int return Display Window Cursor return Display Window return Display Drawable GC int int unsigned int unsigned int return Display Drawable GC int int _Xconst char int return Display Drawable GC int int unsigned int unsigned int return Display return Display Cursor return Display GC return XModifierKeymap return char Display Window int return Display return Display Atom return Display Window XWindowAttributes return Display Window return Display XEvent Bool(*) XPointer return Display Window Bool unsigned int int int Window Cursor Time return Display Window int return KeySym return Display _Xconst char Bool retur XLoadQueryFont)
uint32_t Uint32
An unsigned 32-bit integer type.
return Display return Display Bool Bool int int int return Display XEvent Bool(*) XPointer return Display return Display Drawable _Xconst char unsigned int unsigned int return Display Pixmap Pixmap XColor XColor unsigned int unsigned int return Display _Xconst char char int char return Display Visual unsigned int int int char unsigned int unsigned int int int return Display Window Cursor return Display Window return Display Drawable GC int int unsigned int unsigned int return Display Drawable GC int int _Xconst char int return Display Drawable GC int int unsigned int unsigned int return Display return Display Cursor return Display GC return XModifierKeymap return char Display Window int return Display return Display Atom return Display Window XWindowAttributes return Display Window return Display XEvent Bool(*) XPointer return Display Window Bool unsigned int int int Window Cursor Time return Display Window int return KeySym retur XInternAtom)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
EGLSurface EGLint EGLint EGLint width
DECLSPEC char *SDLCALL SDL_strdup(const char *str)
int SDL_X11_LoadSymbols(void)
DECLSPEC int SDLCALL SDL_SetError(const char *fmt,...)
GLint GLenum GLsizei GLsizei GLsizei GLint border
return Display return Display Bool Bool int int int return Display XEvent Bool(*) XPointer return Display return Display Drawable _Xconst char unsigned int unsigned int return Display Pixmap Pixmap XColor XColor unsigned int unsigned int return Display _Xconst char char int char return Display Visual unsigned int int int char unsigned int unsigned int int int return Display Window Cursor return Display Window return Display Drawable GC int int unsigned int unsigned int return Display Drawable GC int int _Xconst char int return Display Drawable GC int int unsigned int unsigned int return Display return Display Cursor return Display GC return XModifierKeymap return char Display Window int return Display return Display Atom retur XGetWindowAttributes)
const SDL_MessageBoxButtonData * buttons
MessageBox structure containing title, text, window, etc.
return Display return Display Bool Bool int int int return Display XEvent Bool(*) XPointer return Display return Display Drawable _Xconst char unsigned int unsigned int return Display Pixmap Pixmap XColor XColor unsigned int unsigned int return Display _Xconst char char int char return Display Visual unsigned int int int char unsigned int unsigned int int int return Display Window Cursor return Display Window return Display Drawable GC int int unsigned int unsigned int return Display Drawable GC int int _Xconst char int return Display Drawable GC int int unsigned int unsigned int return Display return Display Cursor return Display GC return XModifierKeymap return char Display Window int return Display return Display Atom return Display Window XWindowAttributes return Display Window return Display XEvent Bool(*) XPointer return Display Window Bool unsigned int int int Window Cursor Time return Display Window int return KeySym return Display _Xconst char Bool return Display _Xconst char return XKeyEvent char int KeySym XComposeStatus return Display int int int XVisualInfo return Display Window int int return _Xconst char return Display XEvent return Display Drawable GC XImage int int int int unsigned int unsigned int return Display Window Window Window int int int int unsigned int return Display Window Window int int return Display Window unsigned int unsigned int return Display Window Bool long XEvent retur XSetForeground)
#define SDL_assert(condition)
DECLSPEC size_t SDLCALL SDL_strlen(const char *str)
return Display return Display Bool Bool int int int return Display XEvent Bool(*) XPointer return Display return Display Drawable _Xconst char unsigned int unsigned int return Display Pixmap Pixmap XColor XColor unsigned int unsigned int retur XCreateFontSet)
EGLSurface EGLint EGLint y
#define SDL_OutOfMemory()
SDL_VideoDisplay * SDL_GetDisplayForWindow(SDL_Window *window)
return Display return Display Bool Bool int int int return Display XEvent Bool(*) XPointer return Display return Display Drawable _Xconst char unsigned int unsigned int return Display Pixmap Pixmap XColor XColor unsigned int unsigned int return Display _Xconst char char int char return Display Visual unsigned int int int char unsigned int unsigned int int int return Display Window Cursor return Display Window return Display Drawable GC int int unsigned int unsigned int retur XDrawString)
GLint GLint GLint GLint GLint GLint GLint GLbitfield mask
return Display return Display Bool Bool int int int return Display XEvent Bool(*) XPointer return Display return Display Drawable _Xconst char unsigned int unsigned int return Display Pixmap Pixmap XColor XColor unsigned int unsigned int return Display _Xconst char char int char return Display Visual unsigned int int int char unsigned int unsigned int int int return Display Window Cursor return Display Window return Display Drawable GC int int unsigned int unsigned int return Display Drawable GC int int _Xconst char int return Display Drawable GC int int unsigned int unsigned int return Display return Display Cursor return Display GC return XModifierKeymap return char Display Window int return Display return Display Atom return Display Window XWindowAttributes return Display Window return Display XEvent Bool(*) XPointer return Display Window Bool unsigned int int int Window Cursor Time return Display Window int return KeySym return Display _Xconst char Bool return Display _Xconst char return XKeyEvent char int KeySym XComposeStatus return Display int int int XVisualInfo return Display Window int int return _Xconst char return Display XEvent return Display Drawable GC XImage int int int int unsigned int unsigned int return Display Window Window Window int int int int unsigned int return Display Window Window int int return Display Window unsigned int unsigned int return Display Window Bool long XEvent return Display GC unsigned long return Display Window int Time return Display Window Window return Display Window unsigned long return Display Window XSizeHints Display Colormap XColor int return char int XTextProperty retur XTextExtents)
return Display return Display Bool Bool int int int return Display XEvent Bool(*) XPointer return Display return Display Drawable _Xconst char unsigned int unsigned int return Display Pixmap Pixmap XColor XColor unsigned int unsigned int return Display _Xconst char char int char return Display Visual unsigned int int int char unsigned int unsigned int int int return Display Window Cursor return Display Window return Display Drawable GC int int unsigned int unsigned int return Display Drawable GC int int _Xconst char int return Display Drawable GC int int unsigned int unsigned int return Display return Display Cursor return Display GC return XModifierKeymap return char Display Window int return Display return Display Atom return Display Window XWindowAttributes return Display Window return Display XEvent Bool(*) XPointer return Display Window Bool unsigned int int int Window Cursor Time return Display Window int return KeySym return Display _Xconst char Bool return Display _Xconst char return XKeyEvent char int KeySym XComposeStatus return Display int int int XVisualInfo return Display Window int int return _Xconst char return Display XEvent return Display Drawable GC XImage int int int int unsigned int unsigned int return Display Window Window Window int int int int unsigned int return Display Window Window int int return Display Window unsigned int unsigned int return Display Window Bool long XEvent return Display GC unsigned long return Display Window int Time return Display Window Window return Display Window unsigned long return Display Window XSizeHints Display Colormap XColor int return char int XTextProperty return XFontStruct _Xconst char int int int int XCharStruct return Display Window return Display Time return Display Colormap return Display Window Window int int unsigned int unsigned int int int retur XWithdrawWindow)
return Display return Display Bool Bool int int int return Display XEvent Bool(*) XPointer return Display return Display Drawable _Xconst char unsigned int unsigned int return Display Pixmap Pixmap XColor XColor unsigned int unsigned int return Display _Xconst char char int char return Display Visual unsigned int int int char unsigned int unsigned int int int return Display Window Cursor return Display Window return Display Drawable GC int int unsigned int unsigned int return Display Drawable GC int int _Xconst char int return Display Drawable GC int int unsigned int unsigned int return Display return Display Cursor return Display GC return XModifierKeymap return char Display Window int return Display return Display Atom return Display Window XWindowAttributes return Display Window return Display XEvent Bool(*) XPointer return Display Window Bool unsigned int int int Window Cursor Time return Display Window int return KeySym return Display _Xconst char Bool return Display _Xconst char return XKeyEvent char int KeySym XComposeStatus return Display int int int XVisualInfo return Display Window int int return _Xconst char return Display XEvent return Display Drawable GC XImage int int int int unsigned int unsigned int return Display Window Window Window int int int int unsigned int return Display Window Window int int return Display Window unsigned int unsigned int return Display Window Bool long XEvent return Display GC unsigned long return Display Window int Time return Display Window Window return Display Window unsigned long retur XSetWMNormalHints)
GLdouble GLdouble GLdouble r
GLdouble GLdouble GLdouble b
return Display return Display Bool Bool int int int return Display XEvent Bool(*) XPointer return Display return Display Drawable _Xconst char unsigned int unsigned int return Display Pixmap Pixmap XColor XColor unsigned int unsigned int return Display _Xconst char char int char return Display Visual unsigned int int int char unsigned int unsigned int int int return Display Window Cursor retur XDestroyWindow)
const SDL_MessageBoxColorScheme * colorScheme
SDL_MessageBoxColor colors[SDL_MESSAGEBOX_COLOR_MAX]
return Display return Display Bool Bool int int int return Display XEvent Bool(*) XPointer return Display return Display Drawable _Xconst char unsigned int unsigned int return Display Pixmap Pixmap XColor XColor unsigned int unsigned int return Display _Xconst char char int char return Display Visual unsigned int int int char unsigned int unsigned int int int return Display Window Cursor return Display Window return Display Drawable GC int int unsigned int unsigned int return Display Drawable GC int int _Xconst char int return Display Drawable GC int int unsigned int unsigned int return Display return Display Cursor retur XFreeGC)
A rectangle, with the origin at the upper left.
return Display return Display Bool Bool int int int return Display XEvent Bool(*) XPointer return Display return Display Drawable _Xconst char unsigned int unsigned int return Display Pixmap Pixmap XColor XColor unsigned int unsigned int return Display _Xconst char char int char return Display Visual unsigned int int int char unsigned int unsigned int int int return Display Window Cursor return Display Window return Display Drawable GC int int unsigned int unsigned int return Display Drawable GC int int _Xconst char int return Display Drawable GC int int unsigned int unsigned int return Display return Display Cursor return Display GC return XModifierKeymap return char Display Window int return Display return Display Atom return Display Window XWindowAttributes return Display Window return Display XEvent Bool(*) XPointer return Display Window Bool unsigned int int int Window Cursor Time return Display Window int return KeySym return Display _Xconst char Bool return Display _Xconst char return XKeyEvent char int KeySym XComposeStatus return Display int int int XVisualInfo retur XMoveWindow)