wlmaker
Loading...
Searching...
No Matches
menu.h
Go to the documentation of this file.
1/* ========================================================================= */
20#ifndef __WLMTK_MENU_H__
21#define __WLMTK_MENU_H__
22
25
26#include <libbase/libbase.h>
27#include <stdbool.h>
28#include <stddef.h>
29#include <wayland-server-core.h>
30
31#include "box.h" // IWYU pragma: keep
32#include "element.h"
33#include "menu_item.h" // IWYU pragma: keep
34#include "pane.h"
35#include "style.h"
36
37#ifdef __cplusplus
38extern "C" {
39#endif // __cplusplus
40
50
61
63typedef struct {
68 struct wl_signal open_changed;
70 struct wl_signal request_close;
72 struct wl_signal destroy;
74
83 const wlmtk_menu_style_t *style_ptr);
84
90void wlmtk_menu_destroy(wlmtk_menu_t *menu_ptr);
91
94
97
100
108void wlmtk_menu_set_open(wlmtk_menu_t *menu_ptr, bool opened);
109
111bool wlmtk_menu_is_open(wlmtk_menu_t *menu_ptr);
112
119void wlmtk_menu_set_mode(wlmtk_menu_t *menu_ptr,
120 enum wlmtk_menu_mode mode);
121
124
131void wlmtk_menu_add_item(wlmtk_menu_t *menu_ptr,
132 wlmtk_menu_item_t *menu_item_ptr);
133
141 wlmtk_menu_item_t *menu_item_ptr);
142
152 wlmtk_menu_item_t *menu_item_ptr);
153
156
164 wlmtk_menu_t *menu_ptr,
165 wlmtk_menu_item_t *menu_item_ptr);
166
172size_t wlmtk_menu_items_size(wlmtk_menu_t *menu_ptr);
173
182
184extern const bs_test_case_t wlmtk_menu_test_cases[];
185
186#ifdef __cplusplus
187} // extern "C"
188#endif // __cplusplus
189
190#endif /* __WLMTK_MENU_H__ */
191/* == End of menu.h ======================================================== */
size_t wlmtk_menu_items_size(wlmtk_menu_t *menu_ptr)
Definition menu.c:270
enum wlmtk_menu_mode wlmtk_menu_get_mode(wlmtk_menu_t *menu_ptr)
Definition menu.c:202
void wlmtk_menu_add_item(wlmtk_menu_t *menu_ptr, wlmtk_menu_item_t *menu_item_ptr)
Definition menu.c:208
void wlmtk_menu_set_parent_item(wlmtk_menu_t *menu_ptr, wlmtk_menu_item_t *menu_item_ptr)
Definition menu.c:238
wlmtk_menu_mode
Definition menu.h:52
@ WLMTK_MENU_MODE_RIGHTCLICK
Definition menu.h:59
@ WLMTK_MENU_MODE_NORMAL
Definition menu.h:54
void wlmtk_menu_destroy(wlmtk_menu_t *menu_ptr)
Definition menu.c:134
wlmtk_menu_events_t * wlmtk_menu_events(wlmtk_menu_t *menu_ptr)
Definition menu.c:162
wlmtk_menu_t * wlmtk_menu_create(const wlmtk_menu_style_t *style_ptr)
Definition menu.c:98
void wlmtk_menu_request_item_highlight(wlmtk_menu_t *menu_ptr, wlmtk_menu_item_t *menu_item_ptr)
Definition menu.c:251
wlmtk_menu_item_t * wlmtk_menu_item_at(wlmtk_menu_t *menu_ptr, size_t i)
Definition menu.c:276
void wlmtk_menu_remove_item(wlmtk_menu_t *menu_ptr, wlmtk_menu_item_t *menu_item_ptr)
Definition menu.c:222
void wlmtk_menu_set_mode(wlmtk_menu_t *menu_ptr, enum wlmtk_menu_mode mode)
Definition menu.c:190
const bs_test_case_t wlmtk_menu_test_cases[]
Definition menu.c:493
wlmtk_pane_t * wlmtk_menu_pane(wlmtk_menu_t *menu_ptr)
Definition menu.c:156
wlmtk_menu_item_t * wlmtk_menu_get_parent_item(wlmtk_menu_t *menu_ptr)
Definition menu.c:245
wlmtk_element_t * wlmtk_menu_element(wlmtk_menu_t *menu_ptr)
Definition menu.c:150
void wlmtk_menu_set_open(wlmtk_menu_t *menu_ptr, bool opened)
Definition menu.c:168
bool wlmtk_menu_is_open(wlmtk_menu_t *menu_ptr)
Definition menu.c:184
Definition element.h:183
Definition menu_item.c:39
Definition menu.c:36
Definition pane.h:38
Definition style.h:112
Definition menu.h:63
Definition style.h:126
Definition menu.h:42
wlmtk_margin_style_t border
Definition menu.h:46
wlmtk_margin_style_t margin
Definition menu.h:44
wlmtk_menu_item_style_t item
Definition menu.h:48