wlmaker
Loading...
Searching...
No Matches
window.h
Go to the documentation of this file.
1/* ========================================================================= */
21#ifndef __WLMTK_WINDOW2_H__
22#define __WLMTK_WINDOW2_H__
23
24#include <libbase/libbase.h>
25#include <libbase/plist.h>
26#include <stdbool.h>
27#include <stdint.h>
28#include <wayland-server-core.h>
29
30struct wlr_output;
31
34
37
38#include "element.h"
39#include "menu.h"
40#include "resizebar.h" // IWYU pragma: keep
41#include "style.h"
42#include "util.h"
43#include "workspace.h" // IWYU pragma: keep
44
45#ifdef __cplusplus
46extern "C" {
47#endif // __cplusplus
48
50typedef struct {
64 struct wl_signal state_changed;
65
67 struct wl_signal set_activated;
68
74 struct wl_signal request_close;
75
81 struct wl_signal request_size;
82
88 struct wl_signal request_fullscreen;
89
95 struct wl_signal request_maximized;
97
109
126
137 wlmtk_element_t *content_element_ptr,
138 wlmtk_window_style_ref_t *style_ref_ptr,
139 wlmtk_menu_style_ref_t *menu_style_ref_ptr);
140
146void wlmtk_window_destroy(wlmtk_window_t *window_ptr);
147
156
165
174
182struct wlr_box wlmtk_window_get_bounding_box(wlmtk_window_t *window_ptr);
183
186
194 wlmtk_window_t *window_ptr,
195 uint32_t properties);
196
206 wlmtk_window_t *window_ptr,
207 const wlmtk_util_client_t *client_ptr);
208
217 wlmtk_window_t *window_ptr);
218
229 wlmtk_window_t *window_ptr,
230 struct wlr_output *wlr_output_ptr);
231
243struct wlr_output *wlmtk_window_get_wlr_output(
244 wlmtk_window_t *window_ptr);
245
257 wlmtk_window_t *window_ptr,
258 const char *title_ptr);
259
269const char *wlmtk_window_get_title(wlmtk_window_t *window_ptr);
270
281 wlmtk_window_t *window_ptr,
282 bool activated);
283
286
294 wlmtk_window_t *window_ptr,
295 const struct wlr_box *box_ptr);
296
306 wlmtk_window_t *window_ptr,
307 int width, int height);
308
317struct wlr_box wlmtk_window_get_size(wlmtk_window_t *window_ptr);
318
326 wlmtk_window_t *window_ptr,
327 uint32_t edges);
328
331
338
345
352void wlmtk_window_request_fullscreen(wlmtk_window_t *window_ptr, bool fullscreen);
353
356
365 wlmtk_window_t *window_ptr,
366 bool fullscreen);
367
379 wlmtk_window_t *window_ptr,
380 bool maximized);
381
384
395 wlmtk_window_t *window_ptr,
396 bool maximized);
397
404void wlmtk_window_request_shaded(wlmtk_window_t *window_ptr, bool shaded);
405
407bool wlmtk_window_is_shaded(wlmtk_window_t *window_ptr);
408
415void wlmtk_window_menu_set_enabled(wlmtk_window_t *window_ptr, bool enabled);
416
425
433 wlmtk_window_t *window_ptr,
434 bool decorated);
435
443 wlmtk_window_t *window_ptr,
444 uint32_t move_modifier);
445
455 wlmtk_window_t *window_ptr,
456 wlmtk_workspace_t *workspace_ptr);
457
460
462bs_dllist_node_t *wlmtk_dlnode_from_window(wlmtk_window_t *window_ptr);
464wlmtk_window_t *wlmtk_window_from_dlnode(bs_dllist_node_t *dlnode_ptr);
465
476 wlmtk_window_t *window_ptr,
477 wlmtk_window_style_ref_t *style_ref_ptr,
478 wlmtk_menu_style_ref_t *menu_style_ref_ptr);
479
486
489 struct wlmtk_window_style *window_style_ptr);
490
493 wlmtk_window_style_ref_t *ref_ptr);
496
499 bspl_object_t *object_ptr,
500 const union bspl_desc_value *desc_value_ptr,
501 void *value_ptr);
503bool wlmtk_window_style_decode_init(void *dst_ptr);
505void wlmtk_window_style_decode_fini(void *dst_ptr);
506
508extern const bs_test_set_t wlmtk_window_test_set;
509
518
519#ifdef __cplusplus
520} // extern "C"
521#endif // __cplusplus
522
523#endif /* __WLMTK_WINDOW2_H__ */
524/* == End of window.h ===================================================== */
Definition element.h:188
Definition menu.c:65
Definition menu.c:39
Definition window.c:144
Definition window.c:53
Definition workspace.c:50
Definition style.h:116
Definition resizebar.h:36
Definition style.h:124
Definition util.h:38
Definition window.h:50
Definition window.h:99
struct wlmtk_titlebar_style titlebar
Definition window.h:101
struct wlmtk_margin_style margin
Definition window.h:107
struct wlmtk_margin_style border
Definition window.h:105
struct wlmtk_resizebar_style resizebar
Definition window.h:103
wlmtk_window_t * wlmtk_window_from_element(wlmtk_element_t *element_ptr)
Definition window.c:357
bool wlmtk_window_is_fullscreen(wlmtk_window_t *window_ptr)
Definition window.c:601
bool wlmtk_window_style_decode_init(void *dst_ptr)
Definition window.c:900
struct wlr_box wlmtk_window_get_size(wlmtk_window_t *window_ptr)
Definition window.c:545
uint32_t wlmtk_window_get_resize_edges(wlmtk_window_t *window_ptr)
Definition window.c:561
void wlmtk_window_commit_maximized(wlmtk_window_t *window_ptr, bool maximized)
Definition window.c:662
void wlmtk_window_destroy(wlmtk_window_t *window_ptr)
Definition window.c:297
void wlmtk_window_request_maximized(wlmtk_window_t *window_ptr, bool maximized)
Definition window.c:637
bool wlmtk_window_is_activated(wlmtk_window_t *window_ptr)
Definition window.c:505
void wlmtk_window_request_close(wlmtk_window_t *window_ptr)
Definition window.c:567
wlmtk_menu_t * wlmtk_window_menu(wlmtk_window_t *window_ptr)
Definition window.c:751
void wlmtk_window_set_properties(wlmtk_window_t *window_ptr, uint32_t properties)
Definition window.c:386
void wlmtk_window_set_options(wlmtk_window_t *window_ptr, uint32_t move_modifier)
Definition window.c:768
void wlmtk_window_set_activated(wlmtk_window_t *window_ptr, bool activated)
Definition window.c:481
void wlmtk_window_request_minimize(wlmtk_window_t *window_ptr)
Definition window.c:574
void wlmtk_window_position_changed(wlmtk_window_t *window_ptr)
Definition window.c:376
const char * wlmtk_window_get_title(wlmtk_window_t *window_ptr)
Definition window.c:474
void wlmtk_window_request_size(wlmtk_window_t *window_ptr, const struct wlr_box *box_ptr)
Definition window.c:511
wlmtk_workspace_t * wlmtk_window_get_workspace(wlmtk_window_t *window_ptr)
Definition window.c:787
bool wlmtk_window_is_maximized(wlmtk_window_t *window_ptr)
Definition window.c:656
wlmtk_window_property_t
Definition window.h:111
@ WLMTK_WINDOW_PROPERTY_RIGHTCLICK
Definition window.h:124
@ WLMTK_WINDOW_PROPERTY_ICONIFIABLE
Definition window.h:115
@ WLMTK_WINDOW_PROPERTY_CLOSABLE
Definition window.h:117
@ WLMTK_WINDOW_PROPERTY_RESIZABLE
Definition window.h:113
bool wlmtk_window_style_decode(bspl_object_t *object_ptr, const union bspl_desc_value *desc_value_ptr, void *value_ptr)
Definition window.c:886
void wlmtk_window_set_preferred_wlr_output(wlmtk_window_t *window_ptr, struct wlr_output *wlr_output_ptr)
Definition window.c:412
void wlmtk_window_set_client(wlmtk_window_t *window_ptr, const wlmtk_util_client_t *client_ptr)
Definition window.c:397
struct wlmtk_window_style * wlmtk_window_style_create(void)
Definition window.c:848
void wlmtk_window_menu_set_enabled(wlmtk_window_t *window_ptr, bool enabled)
Definition window.c:712
struct wlr_box wlmtk_window_get_bounding_box(wlmtk_window_t *window_ptr)
Definition window.c:364
const bs_test_set_t wlmtk_window_test_set
Definition window.c:1299
void wlmtk_window_set_server_side_decorated(wlmtk_window_t *window_ptr, bool decorated)
Definition window.c:757
wlmtk_window_events_t * wlmtk_window_events(wlmtk_window_t *window_ptr)
Definition window.c:345
wlmtk_element_t * wlmtk_window_element(wlmtk_window_t *window_ptr)
Definition window.c:351
bool wlmtk_window_set_style(wlmtk_window_t *window_ptr, wlmtk_window_style_ref_t *style_ref_ptr, wlmtk_menu_style_ref_t *menu_style_ref_ptr)
Definition window.c:805
void wlmtk_window_style_decode_fini(void *dst_ptr)
Definition window.c:908
bs_dllist_node_t * wlmtk_dlnode_from_window(wlmtk_window_t *window_ptr)
Definition window.c:793
void wlmtk_window_request_fullscreen(wlmtk_window_t *window_ptr, bool fullscreen)
Definition window.c:580
wlmtk_window_t * wlmtk_test_window_create(wlmtk_element_t *content_element_ptr)
Definition window.c:1322
void wlmtk_window_commit_fullscreen(wlmtk_window_t *window_ptr, bool fullscreen)
Definition window.c:607
wlmtk_window_style_ref_t * wlmtk_window_style_to_ref(struct wlmtk_window_style *window_style_ptr)
Definition window.c:858
void wlmtk_window_set_resize_edges(wlmtk_window_t *window_ptr, uint32_t edges)
Definition window.c:551
bool wlmtk_window_is_shaded(wlmtk_window_t *window_ptr)
Definition window.c:706
bool wlmtk_window_set_title(wlmtk_window_t *window_ptr, const char *title_ptr)
Definition window.c:443
const wlmtk_util_client_t * wlmtk_window_get_client_ptr(wlmtk_window_t *window_ptr)
Definition window.c:405
void wlmtk_window_set_workspace(wlmtk_window_t *window_ptr, wlmtk_workspace_t *workspace_ptr)
Definition window.c:776
wlmtk_window_t * wlmtk_window_create(wlmtk_element_t *content_element_ptr, wlmtk_window_style_ref_t *style_ref_ptr, wlmtk_menu_style_ref_t *menu_style_ref_ptr)
Definition window.c:221
void wlmtk_window_commit_size(wlmtk_window_t *window_ptr, int width, int height)
Definition window.c:525
void wlmtk_window_request_shaded(wlmtk_window_t *window_ptr, bool shaded)
Definition window.c:686
wlmtk_window_t * wlmtk_window_from_dlnode(bs_dllist_node_t *dlnode_ptr)
Definition window.c:799
void wlmtk_window_style_ref_release(wlmtk_window_style_ref_t *ref_ptr)
Definition window.c:880
const struct wlmtk_window_style * wlmtk_window_style_ref_retain(wlmtk_window_style_ref_t *ref_ptr)
Definition window.c:870
struct wlr_output * wlmtk_window_get_wlr_output(wlmtk_window_t *window_ptr)
Definition window.c:420