20#ifndef FREERDP_CLIENT_X11_WINDOW_H
21#define FREERDP_CLIENT_X11_WINDOW_H
25#include <winpr/platform.h>
26#include <freerdp/freerdp.h>
27#include <freerdp/gdi/gfx.h>
31#include "xf_floatbar.h"
37WINPR_PRAGMA_DIAG_IGNORED_RESERVED_ID_MACRO
39#define NET_WM_MOVERESIZE_SIZE_TOPLEFT 0
40#define NET_WM_MOVERESIZE_SIZE_TOP 1
41#define NET_WM_MOVERESIZE_SIZE_TOPRIGHT 2
42#define NET_WM_MOVERESIZE_SIZE_RIGHT 3
43#define NET_WM_MOVERESIZE_SIZE_BOTTOMRIGHT 4
44#define NET_WM_MOVERESIZE_SIZE_BOTTOM 5
45#define NET_WM_MOVERESIZE_SIZE_BOTTOMLEFT 6
46#define NET_WM_MOVERESIZE_SIZE_LEFT 7
47#define NET_WM_MOVERESIZE_MOVE 8
48#define NET_WM_MOVERESIZE_SIZE_KEYBOARD 9
49#define NET_WM_MOVERESIZE_MOVE_KEYBOARD 10
50#define NET_WM_MOVERESIZE_CANCEL 11
52#define NET_WM_STATE_REMOVE 0
53#define NET_WM_STATE_ADD 1
54#define NET_WM_STATE_TOGGLE 2
76void xf_ewmhints_init(xfContext* xfc);
78BOOL xf_GetWorkArea(xfContext* xfc);
80void xf_SetWindowFullscreen(xfContext* xfc, xfWindow* window, BOOL fullscreen);
81void xf_SetWindowMinimized(xfContext* xfc, xfWindow* window);
82void xf_SetWindowDecorations(xfContext* xfc, Window window, BOOL show);
83void xf_SetWindowUnlisted(xfContext* xfc, Window window);
85void xf_DestroyDesktopWindow(xfContext* xfc, xfWindow* window);
87WINPR_ATTR_MALLOC(xf_DestroyDesktopWindow, 2)
88xfWindow* xf_CreateDesktopWindow(xfContext* xfc,
char* name,
int width,
int height);
90void xf_ResizeDesktopWindow(xfContext* xfc, xfWindow* window,
int width,
int height);
92Window xf_CreateDummyWindow(xfContext* xfc);
93void xf_DestroyDummyWindow(xfContext* xfc, Window window);
95BOOL xf_GetWindowProperty(xfContext* xfc, Window window, Atom property,
int length,
96 unsigned long* nitems,
unsigned long* bytes, BYTE** prop);
97void xf_SendClientEvent(xfContext* xfc, Window window, Atom atom,
unsigned int numArgs, ...);
99BOOL xf_AppWindowCreate(xfContext* xfc, xfAppWindow* appWindow);
100int xf_AppWindowInit(xfContext* xfc, xfAppWindow* appWindow);
102BOOL xf_AppWindowResize(xfContext* xfc, xfAppWindow* appWindow);
104void xf_SetWindowText(xfContext* xfc, xfAppWindow* appWindow, const
char* name);
105void xf_MoveWindow(xfContext* xfc, xfAppWindow* appWindow,
int x,
int y,
int width,
int height);
106void xf_ShowWindow(xfContext* xfc, xfAppWindow* appWindow, BYTE state);
108void xf_SetWindowRects(xfContext* xfc, xfAppWindow* appWindow,
RECTANGLE_16* rects,
int nrects);
109void xf_SetWindowVisibilityRects(xfContext* xfc, xfAppWindow* appWindow, UINT32 rectsOffsetX,
111void xf_SetWindowStyle(xfContext* xfc, xfAppWindow* appWindow, UINT32 style, UINT32 ex_style);
112void xf_SetWindowActions(xfContext* xfc, xfAppWindow* appWindow);
113void xf_UpdateWindowArea(xfContext* xfc, xfAppWindow* appWindow,
int x,
int y,
int width,
115UINT xf_AppUpdateWindowFromSurface(xfContext* xfc, gdiGfxSurface* surface);
117void xf_AppWindowDestroyImage(xfAppWindow* appWindow);
118void xf_DestroyWindow(xfContext* xfc, xfAppWindow* appWindow);
119void xf_SetWindowMinMaxInfo(xfContext* xfc, xfAppWindow* appWindow,
int maxWidth,
int maxHeight,
120 int maxPosX,
int maxPosY,
int minTrackWidth,
int minTrackHeight,
121 int maxTrackWidth,
int maxTrackHeight);
122void xf_StartLocalMoveSize(xfContext* xfc, xfAppWindow* appWindow,
int direction,
int x,
int y);
123void xf_EndLocalMoveSize(xfContext* xfc, xfAppWindow* appWindow);
125WINPR_ATTR_MALLOC(xf_rail_return_window, 1)
126xfAppWindow* xf_AppWindowFromX11Window(xfContext* xfc, Window wnd);
128const
char* window_styles_to_string(UINT32 style,
char* buffer,
size_t length);
129const
char* window_styles_ex_to_string(UINT32 styleEx,
char* buffer,
size_t length);