wlmaker
Loading...
Searching...
No Matches
view.h
Go to the documentation of this file.
1/* ========================================================================= */
45#ifndef __VIEW_H__
46#define __VIEW_H__
47
48#include <stdbool.h>
49#include <stdint.h>
50
51#include <libbase/libbase.h>
52#include <wayland-server-core.h>
53
54#define WLR_USE_UNSTABLE
55#include <wlr/types/wlr_scene.h>
56#undef WLR_USE_UNSTABLE
57
60
61#include "iconified.h"
62#include "interactive.h"
63#include "server.h"
64#include "workspace.h"
65
66#ifdef __cplusplus
67extern "C" {
68#endif // __cplusplus
69
71typedef uint32_t (*wlmaker_view_activate_callback_t)(wlmaker_view_t *view_ptr, bool activated);
76 int width, int height);
77
79typedef struct {
81 pid_t pid;
83 uid_t uid;
85 gid_t gid;
87
89typedef enum {
91 WLMAKER_VIEW_ANCHOR_TOP = (UINT32_C(1) << 0),
93 WLMAKER_VIEW_ANCHOR_BOTTOM= (UINT32_C(1) << 1),
95 WLMAKER_VIEW_ANCHOR_LEFT = (UINT32_C(1) << 2),
97 WLMAKER_VIEW_ANCHOR_RIGHT = (UINT32_C(1) << 3)
99
101typedef struct {
108 uint32_t (*set_activated)(wlmaker_view_t *view_ptr,
109 bool activated);
110
120 void (*get_size)(wlmaker_view_t *view_ptr,
121 uint32_t *width_ptr, uint32_t *height_ptr);
122
132 void (*set_size)(wlmaker_view_t *view_ptr, int width, int height);
133
134 // TODO(kaeser@gubbe.ch): Consider merging the set_maximized &
135 // set_fullscreen methods.
136
142 void (*set_maximized)(wlmaker_view_t *view_ptr, bool maximize);
143
149 void (*set_fullscreen)(wlmaker_view_t *view_ptr, bool maximize);
150
155 void (*handle_axis)(wlmaker_view_t *view_ptr,
156 struct wlr_pointer_axis_event *event_ptr);
157
159
239
251 wlmaker_view_t *view_ptr,
252 const wlmaker_view_impl_t *view_impl_ptr,
253 wlmaker_server_t *server_ptr,
254 struct wlr_surface *wlr_surface_ptr,
255 struct wlr_scene_tree *wlr_scene_tree_ptr,
256 wlmaker_view_send_close_callback_t send_close_callback);
257
263void wlmaker_view_fini(wlmaker_view_t *view_ptr);
264
271
278void wlmaker_view_set_active(wlmaker_view_t *view_ptr, bool active);
279
287wlmaker_view_t *wlmaker_view_from_dlnode(bs_dllist_node_t *node_ptr);
288
296bs_dllist_node_t *wlmaker_dlnode_from_view(wlmaker_view_t *view_ptr);
297
305struct wlr_scene_node *wlmaker_wlr_scene_node_from_view(
306 wlmaker_view_t *view_ptr);
307
313struct wlr_surface *wlmaker_view_get_wlr_surface(wlmaker_view_t *view_ptr);
314
329 wlmaker_server_t *server_ptr,
330 double x,
331 double y,
332 struct wlr_surface **wlr_surface_ptr_ptr,
333 double *rel_x_ptr,
334 double *rel_y_ptr);
335
344 wlmaker_view_t *view_ptr,
345 double x,
346 double y);
347
360 wlmaker_view_t *view_ptr,
361 double x,
362 double y,
363 struct wlr_pointer_button_event *event_ptr);
364
376 wlmaker_view_t *view_ptr,
377 double x,
378 double y,
379 struct wlr_pointer_axis_event *event_ptr);
380
391
400
410
416void wlmaker_view_shade(wlmaker_view_t *view_ptr);
417
427 uint32_t *width_ptr,
428 uint32_t *height_ptr);
429
438 int width, int height);
439
446void wlmaker_view_set_maximized(wlmaker_view_t *view_ptr, bool maximize);
447
454void wlmaker_view_set_fullscreen(wlmaker_view_t *view_ptr, bool fullscreen);
455
462void wlmaker_view_set_iconified(wlmaker_view_t *view_ptr, bool iconified);
463
473 int *x_ptr, int *y_ptr);
474
484 int x, int y);
485
492void wlmaker_view_set_title(wlmaker_view_t *view_ptr, const char *title_ptr);
493
505const char *wlmaker_view_get_title(wlmaker_view_t *view_ptr);
506
513void wlmaker_view_set_app_id(wlmaker_view_t *view_ptr, const char *app_id_ptr);
514
526const char *wlmaker_view_get_app_id(wlmaker_view_t *view_ptr);
527
535void wlmaker_view_map(wlmaker_view_t *view_ptr,
536 wlmaker_workspace_t *workspace_ptr,
538
544void wlmaker_view_unmap(wlmaker_view_t *view_ptr);
545
553uint32_t wlmaker_view_get_anchor(wlmaker_view_t *view_ptr);
554
562struct wlr_output *wlmaker_view_get_wlr_output(wlmaker_view_t *view_ptr);
563
573
574#ifdef __cplusplus
575} // extern "C"
576#endif // __cplusplus
577
578#endif /* __VIEW_H__ */
579/* == End of view.h ======================================================== */
static void handle_axis(wlmaker_view_t *view_ptr, struct wlr_pointer_axis_event *event_ptr)
Definition clip.c:448
Definition iconified.c:34
Definition server.h:60
Definition view.h:161
bool fullscreen
Definition view.h:208
wlmaker_iconified_t * iconified_ptr
Definition view.h:214
bool shaded
Definition view.h:210
struct wlr_scene_node * pointer_focussed_wlr_scene_node_ptr
Definition view.h:229
bool maximized
Definition view.h:206
bs_avltree_t * interactive_tree_ptr
Definition view.h:223
struct wlr_scene_tree * elements_wlr_scene_tree_ptr
Definition view.h:185
char * app_id_ptr
Definition view.h:232
struct wl_listener button_release_listener
Definition view.h:226
wlmaker_workspace_t * workspace_ptr
Definition view.h:170
const wlmaker_view_impl_t * impl_ptr
Definition view.h:163
wlmaker_workspace_layer_t default_layer
Definition view.h:212
wlmaker_server_t * server_ptr
Definition view.h:168
struct wlr_surface * wlr_surface_ptr
Definition view.h:173
struct wlr_scene_buffer * window_menu_wlr_scene_buffer_ptr
Definition view.h:217
wlmaker_view_send_close_callback_t send_close_callback
Definition view.h:190
bool active
Definition view.h:196
char * title_ptr
Definition view.h:234
wlmaker_client_t client
Definition view.h:237
struct wlr_box organic_box
Definition view.h:204
struct wlr_scene_tree * view_wlr_scene_tree_ptr
Definition view.h:187
uint32_t anchor
Definition view.h:193
bs_dllist_node_t views_node
Definition view.h:166
Definition workspace.c:53
Definition view.h:79
uid_t uid
Definition view.h:83
pid_t pid
Definition view.h:81
gid_t gid
Definition view.h:85
Definition view.h:101
static void get_size(wlmaker_view_t *view_ptr, uint32_t *width_ptr, uint32_t *height_ptr)
Definition task_list.c:193
struct wlr_output * wlmaker_view_get_wlr_output(wlmaker_view_t *view_ptr)
Definition view.c:625
void wlmaker_view_set_fullscreen(wlmaker_view_t *view_ptr, bool fullscreen)
Definition view.c:501
void wlmaker_view_set_position(wlmaker_view_t *view_ptr, int x, int y)
Definition view.c:455
wlmaker_view_t * wlmaker_view_at(wlmaker_server_t *server_ptr, double x, double y, struct wlr_surface **wlr_surface_ptr_ptr, double *rel_x_ptr, double *rel_y_ptr)
Definition view.c:229
uint32_t wlmaker_view_get_anchor(wlmaker_view_t *view_ptr)
Definition view.c:619
void wlmaker_view_set_maximized(wlmaker_view_t *view_ptr, bool maximize)
Definition view.c:466
const char * wlmaker_view_get_title(wlmaker_view_t *view_ptr)
Definition view.c:570
void wlmaker_view_cursor_leave(wlmaker_view_t *view_ptr)
Definition view.c:416
void wlmaker_view_set_iconified(wlmaker_view_t *view_ptr, bool iconified)
Definition view.c:544
uint32_t(* wlmaker_view_activate_callback_t)(wlmaker_view_t *view_ptr, bool activated)
Definition view.h:71
bs_dllist_node_t * wlmaker_dlnode_from_view(wlmaker_view_t *view_ptr)
Definition view.c:210
void wlmaker_view_set_title(wlmaker_view_t *view_ptr, const char *title_ptr)
Definition view.c:554
wlmaker_view_t * wlmaker_view_from_dlnode(bs_dllist_node_t *node_ptr)
Definition view.c:204
const char * wlmaker_view_get_app_id(wlmaker_view_t *view_ptr)
Definition view.c:589
void wlmaker_view_handle_axis(wlmaker_view_t *view_ptr, double x, double y, struct wlr_pointer_axis_event *event_ptr)
Definition view.c:318
void wlmaker_view_set_app_id(wlmaker_view_t *view_ptr, const char *app_id_ptr)
Definition view.c:576
struct wlr_surface * wlmaker_view_get_wlr_surface(wlmaker_view_t *view_ptr)
Definition view.c:223
void wlmaker_view_window_menu_show(wlmaker_view_t *view_ptr)
Definition view.c:330
struct wlr_scene_node * wlmaker_wlr_scene_node_from_view(wlmaker_view_t *view_ptr)
Definition view.c:216
void wlmaker_view_set_active(wlmaker_view_t *view_ptr, bool active)
Definition view.c:156
wlmaker_view_anchor_t
Definition view.h:89
@ WLMAKER_VIEW_ANCHOR_BOTTOM
Definition view.h:93
@ WLMAKER_VIEW_ANCHOR_RIGHT
Definition view.h:97
@ WLMAKER_VIEW_ANCHOR_TOP
Definition view.h:91
@ WLMAKER_VIEW_ANCHOR_LEFT
Definition view.h:95
void wlmaker_view_get_size(wlmaker_view_t *view_ptr, uint32_t *width_ptr, uint32_t *height_ptr)
Definition view.c:430
void wlmaker_view_map(wlmaker_view_t *view_ptr, wlmaker_workspace_t *workspace_ptr, wlmaker_workspace_layer_t layer)
Definition view.c:595
void wlmaker_view_window_menu_hide(wlmaker_view_t *view_ptr)
Definition view.c:402
void(* wlmaker_view_set_size_callback_t)(wlmaker_view_t *view_ptr, int width, int height)
Definition view.h:75
void wlmaker_view_unmap(wlmaker_view_t *view_ptr)
Definition view.c:611
void wlmaker_view_handle_button(wlmaker_view_t *view_ptr, double x, double y, struct wlr_pointer_button_event *event_ptr)
Definition view.c:290
void wlmaker_view_handle_motion(wlmaker_view_t *view_ptr, double x, double y)
Definition view.c:271
void wlmaker_view_get_position(wlmaker_view_t *view_ptr, int *x_ptr, int *y_ptr)
Definition view.c:447
void wlmaker_view_init(wlmaker_view_t *view_ptr, const wlmaker_view_impl_t *view_impl_ptr, wlmaker_server_t *server_ptr, struct wlr_surface *wlr_surface_ptr, struct wlr_scene_tree *wlr_scene_tree_ptr, wlmaker_view_send_close_callback_t send_close_callback)
Definition view.c:76
void wlmaker_view_fini(wlmaker_view_t *view_ptr)
Definition view.c:124
void wlmaker_view_shade(wlmaker_view_t *view_ptr)
Definition view.c:423
void(* wlmaker_view_send_close_callback_t)(wlmaker_view_t *view_ptr)
Definition view.h:73
void wlmaker_view_set_size(wlmaker_view_t *view_ptr, int width, int height)
Definition view.c:438
void wlmaker_view_raise_to_top(wlmaker_view_t *view_ptr)
const wlmaker_client_t * wlmaker_view_get_client(wlmaker_view_t *view_ptr)
Definition view.c:639
enum _wlmaker_workspace_layer_t wlmaker_workspace_layer_t
Definition workspace.h:29