wlmaker
Loading...
Searching...
No Matches
menu.h
Go to the documentation of this file.
1/* ========================================================================= */
21#ifndef __WLMTK_MENU_H__
22#define __WLMTK_MENU_H__
23
26
29
30enum wlmtk_menu_mode; // IWYU pragma: keep
31
32#include <libbase/libbase.h>
33#include <libbase/plist.h>
34#include <stdbool.h>
35#include <stddef.h>
36#include <wayland-server-core.h>
37
38#include "base.h"
39#include "box.h" // IWYU pragma: keep
40#include "element.h"
41#include "menu_item.h" // IWYU pragma: keep
42#include "style.h"
43
44#ifdef __cplusplus
45extern "C" {
46#endif // __cplusplus
47
57
68
70typedef struct {
75 struct wl_signal open_changed;
77 struct wl_signal request_close;
79 struct wl_signal destroy;
81
90 wlmtk_menu_style_ref_t *style_ref_ptr);
91
97void wlmtk_menu_destroy(wlmtk_menu_t *menu_ptr);
98
101
104
107
117 wlmtk_menu_t *menu_ptr,
118 wlmtk_menu_style_ref_t *style_ref_ptr);
119
127void wlmtk_menu_set_open(wlmtk_menu_t *menu_ptr, bool opened);
128
130bool wlmtk_menu_is_open(wlmtk_menu_t *menu_ptr);
131
138void wlmtk_menu_set_mode(wlmtk_menu_t *menu_ptr,
139 enum wlmtk_menu_mode mode);
140
143
150void wlmtk_menu_add_item(wlmtk_menu_t *menu_ptr,
151 wlmtk_menu_item_t *menu_item_ptr);
152
160 wlmtk_menu_item_t *menu_item_ptr);
161
171 wlmtk_menu_item_t *menu_item_ptr);
172
175
183 wlmtk_menu_t *menu_ptr,
184 wlmtk_menu_item_t *menu_item_ptr);
185
191size_t wlmtk_menu_items_size(wlmtk_menu_t *menu_ptr);
192
201
208
211 struct wlmtk_menu_style *menu_style_ptr);
212
215 wlmtk_menu_style_ref_t *ref_ptr);
218
221 bspl_object_t *object_ptr,
222 const union bspl_desc_value *desc_value_ptr,
223 void *value_ptr);
225bool wlmtk_menu_style_decode_init(void *dst_ptr);
227void wlmtk_menu_style_decode_fini(void *dst_ptr);
228
230extern const bs_test_set_t wlmtk_menu_test_set;
231
232#ifdef __cplusplus
233} // extern "C"
234#endif // __cplusplus
235
236#endif /* __WLMTK_MENU_H__ */
237/* == End of menu.h ======================================================== */
size_t wlmtk_menu_items_size(wlmtk_menu_t *menu_ptr)
Definition menu.c:334
struct wlmtk_menu_style * wlmtk_menu_style_create(void)
Definition menu.c:350
enum wlmtk_menu_mode wlmtk_menu_get_mode(wlmtk_menu_t *menu_ptr)
Definition menu.c:266
void wlmtk_menu_add_item(wlmtk_menu_t *menu_ptr, wlmtk_menu_item_t *menu_item_ptr)
Definition menu.c:272
void wlmtk_menu_set_parent_item(wlmtk_menu_t *menu_ptr, wlmtk_menu_item_t *menu_item_ptr)
Definition menu.c:302
wlmtk_menu_mode
Definition menu.h:59
@ WLMTK_MENU_MODE_RIGHTCLICK
Definition menu.h:66
@ WLMTK_MENU_MODE_NORMAL
Definition menu.h:61
bool wlmtk_menu_style_decode(bspl_object_t *object_ptr, const union bspl_desc_value *desc_value_ptr, void *value_ptr)
Definition menu.c:387
void wlmtk_menu_style_decode_fini(void *dst_ptr)
Definition menu.c:409
void wlmtk_menu_destroy(wlmtk_menu_t *menu_ptr)
Definition menu.c:172
wlmtk_menu_events_t * wlmtk_menu_events(wlmtk_menu_t *menu_ptr)
Definition menu.c:203
bool wlmtk_menu_set_style(wlmtk_menu_t *menu_ptr, wlmtk_menu_style_ref_t *style_ref_ptr)
Definition menu.c:209
void wlmtk_menu_request_item_highlight(wlmtk_menu_t *menu_ptr, wlmtk_menu_item_t *menu_item_ptr)
Definition menu.c:315
const struct wlmtk_menu_style * wlmtk_menu_style_ref_retain(wlmtk_menu_style_ref_t *ref_ptr)
Definition menu.c:371
wlmtk_menu_item_t * wlmtk_menu_item_at(wlmtk_menu_t *menu_ptr, size_t i)
Definition menu.c:340
wlmtk_menu_style_ref_t * wlmtk_menu_style_to_ref(struct wlmtk_menu_style *menu_style_ptr)
Definition menu.c:359
void wlmtk_menu_remove_item(wlmtk_menu_t *menu_ptr, wlmtk_menu_item_t *menu_item_ptr)
Definition menu.c:286
void wlmtk_menu_set_mode(wlmtk_menu_t *menu_ptr, enum wlmtk_menu_mode mode)
Definition menu.c:254
wlmtk_menu_t * wlmtk_menu_create(wlmtk_menu_style_ref_t *style_ref_ptr)
Definition menu.c:136
wlmtk_menu_item_t * wlmtk_menu_get_parent_item(wlmtk_menu_t *menu_ptr)
Definition menu.c:309
bool wlmtk_menu_style_decode_init(void *dst_ptr)
Definition menu.c:401
wlmtk_element_t * wlmtk_menu_element(wlmtk_menu_t *menu_ptr)
Definition menu.c:191
const bs_test_set_t wlmtk_menu_test_set
Definition menu.c:670
void wlmtk_menu_set_open(wlmtk_menu_t *menu_ptr, bool opened)
Definition menu.c:232
bool wlmtk_menu_is_open(wlmtk_menu_t *menu_ptr)
Definition menu.c:248
void wlmtk_menu_style_ref_release(wlmtk_menu_style_ref_t *ref_ptr)
Definition menu.c:381
wlmtk_base_t * wlmtk_menu_base(wlmtk_menu_t *menu_ptr)
Definition menu.c:197
Definition base.h:38
Definition element.h:188
Definition menu_item.c:41
Definition menu.c:65
Definition menu.c:39
Definition style.h:116
Definition menu.h:70
Definition menu_item.h:37
Definition menu.h:49
struct wlmtk_margin_style border
Definition menu.h:53
struct wlmtk_menu_item_style item
Definition menu.h:55
struct wlmtk_margin_style margin
Definition menu.h:51