Atlas - SDL_x11window.h

Home / ext / SDL2 / src / video / x11 Lines: 1 | Size: 4421 bytes [Download] [Show on GitHub] [Search similar files] [Raw] [Raw (proxy)]
[FILE BEGIN]
1/* 2 Simple DirectMedia Layer 3 Copyright (C) 1997-2018 Sam Lantinga <[email protected]> 4 5 This software is provided 'as-is', without any express or implied 6 warranty. In no event will the authors be held liable for any damages 7 arising from the use of this software. 8 9 Permission is granted to anyone to use this software for any purpose, 10 including commercial applications, and to alter it and redistribute it 11 freely, subject to the following restrictions: 12 13 1. The origin of this software must not be misrepresented; you must not 14 claim that you wrote the original software. If you use this software 15 in a product, an acknowledgment in the product documentation would be 16 appreciated but is not required. 17 2. Altered source versions must be plainly marked as such, and must not be 18 misrepresented as being the original software. 19 3. This notice may not be removed or altered from any source distribution. 20*/ 21#include "../../SDL_internal.h" 22 23#ifndef SDL_x11window_h_ 24#define SDL_x11window_h_ 25 26/* We need to queue the focus in/out changes because they may occur during 27 video mode changes and we can respond to them by triggering more mode 28 changes. 29*/ 30#define PENDING_FOCUS_TIME 200 31 32#if SDL_VIDEO_OPENGL_EGL 33#include <EGL/egl.h> 34#endif 35 36typedef enum 37{ 38 PENDING_FOCUS_NONE, 39 PENDING_FOCUS_IN, 40 PENDING_FOCUS_OUT 41} PendingFocusEnum; 42 43typedef struct 44{ 45 SDL_Window *window; 46 Window xwindow; 47 Window fswindow; /* used if we can't have the WM handle fullscreen. */ 48 Visual *visual; 49 Colormap colormap; 50#ifndef NO_SHARED_MEMORY 51 /* MIT shared memory extension information */ 52 SDL_bool use_mitshm; 53 XShmSegmentInfo shminfo; 54#endif 55 XImage *ximage; 56 GC gc; 57 XIC ic; 58 SDL_bool created; 59 int border_left; 60 int border_right; 61 int border_top; 62 int border_bottom; 63 Uint32 last_focus_event_time; 64 PendingFocusEnum pending_focus; 65 Uint32 pending_focus_time; 66 XConfigureEvent last_xconfigure; 67 struct SDL_VideoData *videodata; 68 unsigned long user_time; 69 Atom xdnd_req; 70 Window xdnd_source; 71#if SDL_VIDEO_OPENGL_EGL 72 EGLSurface egl_surface; 73#endif 74} SDL_WindowData; 75 76extern void X11_SetNetWMState(_THIS, Window xwindow, Uint32 flags); 77extern Uint32 X11_GetNetWMState(_THIS, Window xwindow); 78 79extern int X11_CreateWindow(_THIS, SDL_Window * window); 80extern int X11_CreateWindowFrom(_THIS, SDL_Window * window, const void *data); 81extern char *X11_GetWindowTitle(_THIS, Window xwindow); 82extern void X11_SetWindowTitle(_THIS, SDL_Window * window); 83extern void X11_SetWindowIcon(_THIS, SDL_Window * window, SDL_Surface * icon); 84extern void X11_SetWindowPosition(_THIS, SDL_Window * window); 85extern void X11_SetWindowMinimumSize(_THIS, SDL_Window * window); 86extern void X11_SetWindowMaximumSize(_THIS, SDL_Window * window); 87extern int X11_GetWindowBordersSize(_THIS, SDL_Window * window, int *top, int *left, int *bottom, int *right); 88extern int X11_SetWindowOpacity(_THIS, SDL_Window * window, float opacity); 89extern int X11_SetWindowModalFor(_THIS, SDL_Window * modal_window, SDL_Window * parent_window); 90extern int X11_SetWindowInputFocus(_THIS, SDL_Window * window); 91extern void X11_SetWindowSize(_THIS, SDL_Window * window); 92extern void X11_ShowWindow(_THIS, SDL_Window * window); 93extern void X11_HideWindow(_THIS, SDL_Window * window); 94extern void X11_RaiseWindow(_THIS, SDL_Window * window); 95extern void X11_MaximizeWindow(_THIS, SDL_Window * window); 96extern void X11_MinimizeWindow(_THIS, SDL_Window * window); 97extern void X11_RestoreWindow(_THIS, SDL_Window * window); 98extern void X11_SetWindowBordered(_THIS, SDL_Window * window, SDL_bool bordered); 99extern void X11_SetWindowResizable(_THIS, SDL_Window * window, SDL_bool resizable); 100extern void X11_SetWindowFullscreen(_THIS, SDL_Window * window, SDL_VideoDisplay * display, SDL_bool fullscreen); 101extern int X11_SetWindowGammaRamp(_THIS, SDL_Window * window, const Uint16 * ramp); 102extern void X11_SetWindowGrab(_THIS, SDL_Window * window, SDL_bool grabbed); 103extern void X11_DestroyWindow(_THIS, SDL_Window * window); 104extern SDL_bool X11_GetWindowWMInfo(_THIS, SDL_Window * window, 105 struct SDL_SysWMinfo *info); 106extern int X11_SetWindowHitTest(SDL_Window *window, SDL_bool enabled); 107extern void X11_AcceptDragAndDrop(SDL_Window * window, SDL_bool accept); 108 109#endif /* SDL_x11window_h_ */ 110 111/* vi: set ts=4 sw=4 expandtab: */ 112
[FILE END]
(C) 2025 0x4248 (C) 2025 4248 Media and 4248 Systems, All part of 0x4248 See LICENCE files for more information. Not all files are by 0x4248 always check Licencing.