SDL 2.0
The xdg_wm_base interface

Data Structures

struct  xdg_wm_base_listener
 

Macros

#define XDG_WM_BASE_PING_SINCE_VERSION   1
 
#define XDG_WM_BASE_DESTROY_SINCE_VERSION   1
 
#define XDG_WM_BASE_CREATE_POSITIONER_SINCE_VERSION   1
 
#define XDG_WM_BASE_GET_XDG_SURFACE_SINCE_VERSION   1
 
#define XDG_WM_BASE_PONG_SINCE_VERSION   1
 

Functions

static int xdg_wm_base_add_listener (struct xdg_wm_base *xdg_wm_base, const struct xdg_wm_base_listener *listener, void *data)
 
static void xdg_wm_base_set_user_data (struct xdg_wm_base *xdg_wm_base, void *user_data)
 
static voidxdg_wm_base_get_user_data (struct xdg_wm_base *xdg_wm_base)
 
static void xdg_wm_base_destroy (struct xdg_wm_base *xdg_wm_base)
 
static struct xdg_positioner * xdg_wm_base_create_positioner (struct xdg_wm_base *xdg_wm_base)
 
static struct xdg_surface * xdg_wm_base_get_xdg_surface (struct xdg_wm_base *xdg_wm_base, struct wl_surface *surface)
 
static void xdg_wm_base_pong (struct xdg_wm_base *xdg_wm_base, uint32_t serial)
 

Detailed Description

The xdg_wm_base interface is exposed as a global object enabling clients to turn their wl_surfaces into windows in a desktop environment. It defines the basic functionality needed for clients and the compositor to create windows that can be dragged, resized, maximized, etc, as well as creating transient windows such as popup menus.

Macro Definition Documentation

◆ XDG_WM_BASE_CREATE_POSITIONER_SINCE_VERSION

#define XDG_WM_BASE_CREATE_POSITIONER_SINCE_VERSION   1

Definition at line 440 of file xdg-shell-client-protocol.h.

◆ XDG_WM_BASE_DESTROY_SINCE_VERSION

#define XDG_WM_BASE_DESTROY_SINCE_VERSION   1

Definition at line 436 of file xdg-shell-client-protocol.h.

◆ XDG_WM_BASE_GET_XDG_SURFACE_SINCE_VERSION

#define XDG_WM_BASE_GET_XDG_SURFACE_SINCE_VERSION   1

Definition at line 444 of file xdg-shell-client-protocol.h.

◆ XDG_WM_BASE_PING_SINCE_VERSION

#define XDG_WM_BASE_PING_SINCE_VERSION   1

Definition at line 431 of file xdg-shell-client-protocol.h.

◆ XDG_WM_BASE_PONG_SINCE_VERSION

#define XDG_WM_BASE_PONG_SINCE_VERSION   1

Definition at line 448 of file xdg-shell-client-protocol.h.

Function Documentation

◆ xdg_wm_base_add_listener()

static int xdg_wm_base_add_listener ( struct xdg_wm_base *  xdg_wm_base,
const struct xdg_wm_base_listener listener,
void data 
)
inlinestatic

Definition at line 416 of file xdg-shell-client-protocol.h.

418{
419 return wl_proxy_add_listener((struct wl_proxy *) xdg_wm_base,
420 (void (**)(void)) listener, data);
421}
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: SDL_opengl.h:1974

◆ xdg_wm_base_create_positioner()

static struct xdg_positioner * xdg_wm_base_create_positioner ( struct xdg_wm_base *  xdg_wm_base)
inlinestatic

Create a positioner object. A positioner object is used to position surfaces relative to some parent surface. See the interface description and xdg_surface.get_popup for details.

Definition at line 494 of file xdg-shell-client-protocol.h.

495{
496 struct wl_proxy *id;
497
498 id = wl_proxy_marshal_flags((struct wl_proxy *) xdg_wm_base,
499 XDG_WM_BASE_CREATE_POSITIONER, &xdg_positioner_interface, wl_proxy_get_version((struct wl_proxy *) xdg_wm_base), 0, NULL);
500
501 return (struct xdg_positioner *) id;
502}
GLuint id
#define NULL
Definition: begin_code.h:167
const struct wl_interface xdg_positioner_interface
#define XDG_WM_BASE_CREATE_POSITIONER

References NULL, xdg_positioner_interface, and XDG_WM_BASE_CREATE_POSITIONER.

◆ xdg_wm_base_destroy()

static void xdg_wm_base_destroy ( struct xdg_wm_base *  xdg_wm_base)
inlinestatic

Destroy this xdg_wm_base object.

Destroying a bound xdg_wm_base object while there are surfaces still alive created by this xdg_wm_base object instance is illegal and will result in a protocol error.

Definition at line 480 of file xdg-shell-client-protocol.h.

481{
482 wl_proxy_marshal_flags((struct wl_proxy *) xdg_wm_base,
483 XDG_WM_BASE_DESTROY, NULL, wl_proxy_get_version((struct wl_proxy *) xdg_wm_base), WL_MARSHAL_FLAG_DESTROY);
484}
#define XDG_WM_BASE_DESTROY

References NULL, and XDG_WM_BASE_DESTROY.

◆ xdg_wm_base_get_user_data()

static void * xdg_wm_base_get_user_data ( struct xdg_wm_base *  xdg_wm_base)
inlinestatic

Definition at line 459 of file xdg-shell-client-protocol.h.

460{
461 return wl_proxy_get_user_data((struct wl_proxy *) xdg_wm_base);
462}

◆ xdg_wm_base_get_xdg_surface()

static struct xdg_surface * xdg_wm_base_get_xdg_surface ( struct xdg_wm_base *  xdg_wm_base,
struct wl_surface *  surface 
)
inlinestatic

This creates an xdg_surface for the given surface. While xdg_surface itself is not a role, the corresponding surface may only be assigned a role extending xdg_surface, such as xdg_toplevel or xdg_popup.

This creates an xdg_surface for the given surface. An xdg_surface is used as basis to define a role to a given surface, such as xdg_toplevel or xdg_popup. It also manages functionality shared between xdg_surface based surface roles.

See the documentation of xdg_surface for more details about what an xdg_surface is and how it is used.

Definition at line 520 of file xdg-shell-client-protocol.h.

521{
522 struct wl_proxy *id;
523
524 id = wl_proxy_marshal_flags((struct wl_proxy *) xdg_wm_base,
525 XDG_WM_BASE_GET_XDG_SURFACE, &xdg_surface_interface, wl_proxy_get_version((struct wl_proxy *) xdg_wm_base), 0, NULL, surface);
526
527 return (struct xdg_surface *) id;
528}
EGLSurface surface
Definition: eglext.h:248
#define XDG_WM_BASE_GET_XDG_SURFACE
const struct wl_interface xdg_surface_interface

References NULL, xdg_surface_interface, and XDG_WM_BASE_GET_XDG_SURFACE.

◆ xdg_wm_base_pong()

static void xdg_wm_base_pong ( struct xdg_wm_base *  xdg_wm_base,
uint32_t  serial 
)
inlinestatic

A client must respond to a ping event with a pong request or the client may be deemed unresponsive. See xdg_wm_base.ping.

Definition at line 537 of file xdg-shell-client-protocol.h.

538{
539 wl_proxy_marshal_flags((struct wl_proxy *) xdg_wm_base,
540 XDG_WM_BASE_PONG, NULL, wl_proxy_get_version((struct wl_proxy *) xdg_wm_base), 0, serial);
541}
#define XDG_WM_BASE_PONG

References NULL, and XDG_WM_BASE_PONG.

◆ xdg_wm_base_set_user_data()

static void xdg_wm_base_set_user_data ( struct xdg_wm_base *  xdg_wm_base,
void user_data 
)
inlinestatic

Definition at line 452 of file xdg-shell-client-protocol.h.

453{
454 wl_proxy_set_user_data((struct wl_proxy *) xdg_wm_base, user_data);
455}