wlmaker
Loading...
Searching...
No Matches
panel.h
Go to the documentation of this file.
1/* ========================================================================= */
20#ifndef __WLMTK_PANEL_H__
21#define __WLMTK_PANEL_H__
22
23#include <libbase/libbase.h>
24#include <stdbool.h>
25#include <stdint.h>
26
27#include "container.h"
28#include "element.h"
29
32struct _wlmtk_panel_t;
34
41
42#include "layer.h" // IWYU pragma: keep
43
44#ifdef __cplusplus
45extern "C" {
46#endif // __cplusplus
47
63 uint32_t (*request_size)(
64 wlmtk_panel_t *panel_ptr,
65 int width,
66 int height);
67};
68
90
114
124 wlmtk_panel_t *panel_ptr,
125 const wlmtk_panel_positioning_t *positioning_ptr);
126
132void wlmtk_panel_fini(wlmtk_panel_t *panel_ptr);
133
143 wlmtk_panel_t *panel_ptr,
144 const wlmtk_panel_vmt_t *panel_vmt_ptr);
145
148
150bs_dllist_node_t *wlmtk_dlnode_from_panel(wlmtk_panel_t *panel_ptr);
152wlmtk_panel_t *wlmtk_panel_from_dlnode(bs_dllist_node_t *dlnode_ptr);
153
163 wlmtk_layer_t *layer_ptr);
164
167
177 wlmtk_panel_t *panel_ptr,
178 wlmtk_layer_output_t *layer_output_ptr);
179
182
184static inline uint32_t wlmtk_panel_request_size(
185 wlmtk_panel_t *panel_ptr,
186 int width,
187 int height) {
188 return panel_ptr->vmt.request_size(panel_ptr, width, height);
189}
190
199 wlmtk_panel_t *panel_ptr,
200 uint32_t serial,
201 const wlmtk_panel_positioning_t *positioning_ptr);
202
217struct wlr_box wlmtk_panel_compute_dimensions(
218 const wlmtk_panel_t *panel_ptr,
219 const struct wlr_box *full_area_ptr,
220 struct wlr_box *usable_area_ptr);
221
223extern const bs_test_case_t wlmtk_panel_test_cases[];
224
240 const wlmtk_panel_positioning_t *positioning_ptr);
242void wlmtk_fake_panel_destroy(wlmtk_fake_panel_t *fake_panel_ptr);
243
244#ifdef __cplusplus
245} // extern "C"
246#endif // __cplusplus
247
248#endif /* __WLMTK_PANEL_H__ */
249/* == End of panel.h ======================================================= */
void wlmtk_panel_commit(wlmtk_panel_t *panel_ptr, uint32_t serial, const wlmtk_panel_positioning_t *positioning_ptr)
Definition panel.c:135
struct wlr_box wlmtk_panel_compute_dimensions(const wlmtk_panel_t *panel_ptr, const struct wlr_box *full_area_ptr, struct wlr_box *usable_area_ptr)
Definition panel.c:158
wlmtk_element_t * wlmtk_panel_element(wlmtk_panel_t *panel_ptr)
Definition panel.c:85
void wlmtk_panel_set_layer_output(wlmtk_panel_t *panel_ptr, wlmtk_layer_output_t *layer_output_ptr)
Definition panel.c:121
const bs_test_case_t wlmtk_panel_test_cases[]
Definition panel.c:315
bs_dllist_node_t * wlmtk_dlnode_from_panel(wlmtk_panel_t *panel_ptr)
Definition panel.c:91
void wlmtk_fake_panel_destroy(wlmtk_fake_panel_t *fake_panel_ptr)
Definition panel.c:280
wlmtk_panel_t * wlmtk_panel_from_dlnode(bs_dllist_node_t *dlnode_ptr)
Definition panel.c:98
bool wlmtk_panel_init(wlmtk_panel_t *panel_ptr, const wlmtk_panel_positioning_t *positioning_ptr)
Definition panel.c:35
void wlmtk_panel_fini(wlmtk_panel_t *panel_ptr)
Definition panel.c:59
void wlmtk_panel_set_layer(wlmtk_panel_t *panel_ptr, wlmtk_layer_t *layer_ptr)
Definition panel.c:105
wlmtk_panel_vmt_t wlmtk_panel_extend(wlmtk_panel_t *panel_ptr, const wlmtk_panel_vmt_t *panel_vmt_ptr)
Definition panel.c:71
static uint32_t wlmtk_panel_request_size(wlmtk_panel_t *panel_ptr, int width, int height)
Definition panel.h:184
wlmtk_layer_output_t * wlmtk_panel_get_layer_output(wlmtk_panel_t *panel_ptr)
Definition panel.c:129
wlmtk_fake_panel_t * wlmtk_fake_panel_create(const wlmtk_panel_positioning_t *positioning_ptr)
Definition panel.c:260
wlmtk_layer_t * wlmtk_panel_get_layer(wlmtk_panel_t *panel_ptr)
Definition panel.c:115
Definition container.h:60
Definition container.h:43
Definition element.h:175
Definition panel.h:228
int requested_width
Definition panel.h:234
uint32_t serial
Definition panel.h:232
wlmtk_panel_t panel
Definition panel.h:230
int requested_height
Definition panel.h:236
Definition layer.c:62
Definition layer.c:43
Definition panel.h:70
int margin_top
Definition panel.h:83
int desired_width
Definition panel.h:72
uint32_t anchor
Definition panel.h:76
int desired_height
Definition panel.h:74
int margin_right
Definition panel.h:81
int margin_bottom
Definition panel.h:85
int exclusive_zone
Definition panel.h:88
int margin_left
Definition panel.h:79
Definition panel.h:92
wlmtk_layer_output_t * layer_output_ptr
Definition panel.h:107
wlmtk_panel_vmt_t vmt
Definition panel.h:96
bs_dllist_node_t dlnode
Definition panel.h:109
wlmtk_container_t popup_container
Definition panel.h:102
wlmtk_container_t super_container
Definition panel.h:94
wlmtk_layer_t * layer_ptr
Definition panel.h:105
wlmtk_container_vmt_t orig_super_container_vmt
Definition panel.h:99
wlmtk_panel_positioning_t positioning
Definition panel.h:112
Definition panel.h:49
uint32_t(* request_size)(wlmtk_panel_t *panel_ptr, int width, int height)
Definition panel.h:63