wlmaker
Loading...
Searching...
No Matches
container.h
Go to the documentation of this file.
1/* ========================================================================= */
20#ifndef __WLMTK_CONTAINER_H__
21#define __WLMTK_CONTAINER_H__
22
23#include <stdbool.h>
24#include <wayland-server-core.h>
25
26#include "libbase/libbase.h"
27
30struct wlr_scene_tree;
35
36#include "element.h"
37#include "input.h"
38
39#ifdef __cplusplus
40extern "C" {
41#endif // __cplusplus
42
53 bool (*update_layout)(wlmtk_container_t *container_ptr);
54};
55
93
101bool wlmtk_container_init(wlmtk_container_t *container_ptr);
102
112 wlmtk_container_t *container_ptr,
113 const wlmtk_container_vmt_t *container_vmt_ptr);
114
124 wlmtk_container_t *container_ptr,
125 struct wlr_scene_tree *root_wlr_scene_tree_ptr);
126
135 wlmtk_container_t *container_ptr);
136
147 wlmtk_container_t *container_ptr,
148 wlmtk_element_t *element_ptr);
149
160 wlmtk_container_t *container_ptr,
161 wlmtk_element_t *reference_element_ptr,
162 wlmtk_element_t *element_ptr);
163
175 wlmtk_container_t *container_ptr,
176 wlmtk_element_t *element_ptr);
177
187 wlmtk_container_t *container_ptr,
188 wlmtk_element_t *element_ptr);
189
201// TODO(kaeser@gubbe.ch): Unify handling with pointer grab.
203 wlmtk_container_t *container_ptr,
204 wlmtk_element_t *element_ptr,
205 wlmtk_pointer_motion_event_t *motion_event_ptr);
206
219// TODO(kaeser@gubbe.ch): Merge with @ref wlmtk_container_request_pointer_focus.
221 wlmtk_container_t *container_ptr,
222 wlmtk_element_t *element_ptr);
223
235 wlmtk_container_t *container_ptr,
236 wlmtk_element_t *element_ptr);
237
238
254 wlmtk_container_t *container_ptr,
255 wlmtk_element_t *element_ptr,
256 bool enabled);
257
270 wlmtk_container_t *container_ptr);
271
281struct wlr_scene_tree *wlmtk_container_wlr_scene_tree(
282 wlmtk_container_t *container_ptr);
283
285extern const bs_test_case_t wlmtk_container_test_cases[];
286
291
292#ifdef __cplusplus
293} // extern "C"
294#endif // __cplusplus
295
296#endif /* __WLMTK_CONTAINER_H__ */
297/* == End of container.h =================================================== */
void wlmtk_container_set_keyboard_focus_element(wlmtk_container_t *container_ptr, wlmtk_element_t *element_ptr, bool enabled)
Definition container.c:380
void wlmtk_container_pointer_grab(wlmtk_container_t *container_ptr, wlmtk_element_t *element_ptr)
Definition container.c:329
void wlmtk_container_remove_element(wlmtk_container_t *container_ptr, wlmtk_element_t *element_ptr)
Definition container.c:233
bool wlmtk_container_request_pointer_focus(wlmtk_container_t *container_ptr, wlmtk_element_t *element_ptr, wlmtk_pointer_motion_event_t *motion_event_ptr)
Definition container.c:295
wlmtk_container_vmt_t wlmtk_container_extend(wlmtk_container_t *container_ptr, const wlmtk_container_vmt_t *container_vmt_ptr)
Definition container.c:138
void wlmtk_container_pointer_grab_release(wlmtk_container_t *container_ptr, wlmtk_element_t *element_ptr)
Definition container.c:359
void wlmtk_container_destroy_fake_parent(wlmtk_container_t *container_ptr)
Definition container.c:877
struct wlr_scene_tree * wlmtk_container_wlr_scene_tree(wlmtk_container_t *container_ptr)
Definition container.c:436
void wlmtk_container_add_element(wlmtk_container_t *container_ptr, wlmtk_element_t *element_ptr)
Definition container.c:176
void wlmtk_container_raise_element_to_top(wlmtk_container_t *container_ptr, wlmtk_element_t *element_ptr)
Definition container.c:270
void wlmtk_container_add_element_atop(wlmtk_container_t *container_ptr, wlmtk_element_t *reference_element_ptr, wlmtk_element_t *element_ptr)
Definition container.c:195
bool wlmtk_container_init(wlmtk_container_t *container_ptr)
Definition container.c:101
bool wlmtk_container_init_attached(wlmtk_container_t *container_ptr, struct wlr_scene_tree *root_wlr_scene_tree_ptr)
Definition container.c:119
void wlmtk_container_fini(wlmtk_container_t *container_ptr)
Definition container.c:152
const bs_test_case_t wlmtk_container_test_cases[]
Definition container.c:910
void wlmtk_container_update_layout_and_pointer_focus(wlmtk_container_t *container_ptr)
Definition container.c:412
wlmtk_container_t * wlmtk_container_create_fake_parent(void)
Definition container.c:852
Definition container.h:57
struct wl_listener element_pointer_leave_listener
Definition container.h:79
wlmtk_element_vmt_t orig_super_element_vmt
Definition container.h:61
wlmtk_element_t * keyboard_focus_element_ptr
Definition container.h:88
wlmtk_element_t * pointer_focus_element_ptr
Definition container.h:82
wlmtk_container_vmt_t vmt
Definition container.h:64
bs_dllist_t elements
Definition container.h:71
wlmtk_element_t super_element
Definition container.h:59
struct wlr_scene_tree * wlr_scene_tree_ptr
Definition container.h:74
wlmtk_element_t * pointer_grab_element_ptr
Definition container.h:84
struct wl_listener wlr_scene_tree_node_destroy_listener
Definition container.h:77
wlmtk_element_t * left_button_element_ptr
Definition container.h:86
Definition container.h:44
bool(* update_layout)(wlmtk_container_t *container_ptr)
Definition container.h:53
Definition element.h:183
Definition element.h:69
Definition input.h:73