1 #ifndef WORKSPACES_CLIENT_PROTOCOL_H
2 #define WORKSPACES_CLIENT_PROTOCOL_H
10 #include "wayland-client.h"
15 struct workspace_manager;
17 extern const struct wl_interface workspace_manager_interface;
20 * workspace_manager - workspaces manager
21 * @state: workspace state
23 * An interface for managing surfaces in workspaces.
25 struct workspace_manager_listener {
27 * state - workspace state
31 * The current workspace state, such as current workspace and
32 * workspace count, has changed.
34 void (*state)(void *data,
35 struct workspace_manager *workspace_manager,
41 workspace_manager_add_listener(struct workspace_manager *workspace_manager,
42 const struct workspace_manager_listener *listener, void *data)
44 return wl_proxy_add_listener((struct wl_proxy *) workspace_manager,
45 (void (**)(void)) listener, data);
48 #define WORKSPACE_MANAGER_MOVE_SURFACE 0
51 workspace_manager_set_user_data(struct workspace_manager *workspace_manager, void *user_data)
53 wl_proxy_set_user_data((struct wl_proxy *) workspace_manager, user_data);
57 workspace_manager_get_user_data(struct workspace_manager *workspace_manager)
59 return wl_proxy_get_user_data((struct wl_proxy *) workspace_manager);
63 workspace_manager_destroy(struct workspace_manager *workspace_manager)
65 wl_proxy_destroy((struct wl_proxy *) workspace_manager);
69 workspace_manager_move_surface(struct workspace_manager *workspace_manager, struct wl_surface *surface, uint32_t workspace)
71 wl_proxy_marshal((struct wl_proxy *) workspace_manager,
72 WORKSPACE_MANAGER_MOVE_SURFACE, surface, workspace);