wlmaker
Loading...
Searching...
No Matches
panel.h
Go to the documentation of this file.
1/* ========================================================================= */
21#ifndef __WLMTK_PANEL_H__
22#define __WLMTK_PANEL_H__
23
24#include <libbase/libbase.h>
25#include <stdbool.h>
26#include <stdint.h>
27
28#include "container.h" // IWYU pragma: keep
29#include "element.h"
30
37
38#include "layer.h" // IWYU pragma: keep
39
40#ifdef __cplusplus
41extern "C" {
42#endif // __cplusplus
43
59 uint32_t (*request_size)(
60 wlmtk_panel_t *panel_ptr,
61 int width,
62 int height);
63};
64
91
112
122 wlmtk_panel_t *panel_ptr,
123 const wlmtk_panel_positioning_t *positioning_ptr);
124
130void wlmtk_panel_fini(wlmtk_panel_t *panel_ptr);
131
141 wlmtk_panel_t *panel_ptr,
142 const wlmtk_panel_vmt_t *panel_vmt_ptr);
143
146
148bs_dllist_node_t *wlmtk_dlnode_from_panel(wlmtk_panel_t *panel_ptr);
150wlmtk_panel_t *wlmtk_panel_from_dlnode(bs_dllist_node_t *dlnode_ptr);
151
161 wlmtk_layer_t *layer_ptr);
162
165
175 wlmtk_panel_t *panel_ptr,
176 wlmtk_layer_output_t *layer_output_ptr);
177
180
182static inline uint32_t wlmtk_panel_request_size(
183 wlmtk_panel_t *panel_ptr,
184 int width,
185 int height) {
186 return panel_ptr->vmt.request_size(panel_ptr, width, height);
187}
188
197 wlmtk_panel_t *panel_ptr,
198 uint32_t serial,
199 const wlmtk_panel_positioning_t *positioning_ptr);
200
215struct wlr_box wlmtk_panel_compute_dimensions(
216 const wlmtk_panel_t *panel_ptr,
217 const struct wlr_box *full_area_ptr,
218 struct wlr_box *usable_area_ptr);
219
221extern const bs_test_set_t wlmtk_panel_test_set;
222
238 const wlmtk_panel_positioning_t *positioning_ptr);
240void wlmtk_fake_panel_destroy(wlmtk_fake_panel_t *fake_panel_ptr);
241
242#ifdef __cplusplus
243} // extern "C"
244#endif // __cplusplus
245
246#endif /* __WLMTK_PANEL_H__ */
247/* == 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:136
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:159
wlmtk_element_t * wlmtk_panel_element(wlmtk_panel_t *panel_ptr)
Definition panel.c:86
void wlmtk_panel_set_layer_output(wlmtk_panel_t *panel_ptr, wlmtk_layer_output_t *layer_output_ptr)
Definition panel.c:122
const bs_test_set_t wlmtk_panel_test_set
Definition panel.c:355
bs_dllist_node_t * wlmtk_dlnode_from_panel(wlmtk_panel_t *panel_ptr)
Definition panel.c:92
void wlmtk_fake_panel_destroy(wlmtk_fake_panel_t *fake_panel_ptr)
Definition panel.c:308
wlmtk_panel_t * wlmtk_panel_from_dlnode(bs_dllist_node_t *dlnode_ptr)
Definition panel.c:99
bool wlmtk_panel_init(wlmtk_panel_t *panel_ptr, const wlmtk_panel_positioning_t *positioning_ptr)
Definition panel.c:36
void wlmtk_panel_fini(wlmtk_panel_t *panel_ptr)
Definition panel.c:60
void wlmtk_panel_set_layer(wlmtk_panel_t *panel_ptr, wlmtk_layer_t *layer_ptr)
Definition panel.c:106
wlmtk_panel_vmt_t wlmtk_panel_extend(wlmtk_panel_t *panel_ptr, const wlmtk_panel_vmt_t *panel_vmt_ptr)
Definition panel.c:72
static uint32_t wlmtk_panel_request_size(wlmtk_panel_t *panel_ptr, int width, int height)
Definition panel.h:182
wlmtk_layer_output_t * wlmtk_panel_get_layer_output(wlmtk_panel_t *panel_ptr)
Definition panel.c:130
wlmtk_fake_panel_t * wlmtk_fake_panel_create(const wlmtk_panel_positioning_t *positioning_ptr)
Definition panel.c:288
wlmtk_layer_t * wlmtk_panel_get_layer(wlmtk_panel_t *panel_ptr)
Definition panel.c:116
Definition container.h:43
Definition element.h:188
Definition panel.h:226
int requested_width
Definition panel.h:232
uint32_t serial
Definition panel.h:230
wlmtk_panel_t panel
Definition panel.h:228
int requested_height
Definition panel.h:234
Definition layer.c:54
Definition layer.c:44
Definition panel.h:66
int margin_top
Definition panel.h:84
int desired_width
Definition panel.h:68
uint32_t anchor
Definition panel.h:72
int desired_height
Definition panel.h:70
int margin_right
Definition panel.h:82
uint32_t exclusive_edge
Definition panel.h:77
int margin_bottom
Definition panel.h:86
int exclusive_zone
Definition panel.h:89
int margin_left
Definition panel.h:80
Definition panel.h:93
wlmtk_layer_output_t * layer_output_ptr
Definition panel.h:105
wlmtk_panel_vmt_t vmt
Definition panel.h:97
bs_dllist_node_t dlnode
Definition panel.h:107
wlmtk_container_t popup_container
Definition panel.h:100
wlmtk_container_t super_container
Definition panel.h:95
wlmtk_layer_t * layer_ptr
Definition panel.h:103
wlmtk_panel_positioning_t positioning
Definition panel.h:110
Definition panel.h:45
uint32_t(* request_size)(wlmtk_panel_t *panel_ptr, int width, int height)
Definition panel.h:59