wlmaker
Loading...
Searching...
No Matches
src
toolkit
menu_item.h
Go to the documentation of this file.
1
/* ========================================================================= */
20
#ifndef __WLMTK_MENU_ITEM_H__
21
#define __WLMTK_MENU_ITEM_H__
22
23
#include <libbase/libbase.h>
24
26
typedef
struct
_wlmtk_menu_item_t
wlmtk_menu_item_t
;
28
typedef
struct
_wlmtk_menu_item_vmt_t
wlmtk_menu_item_vmt_t
;
30
typedef
struct
_wlmtk_menu_item_style_t
wlmtk_menu_item_style_t
;
31
32
#include "
buffer.h
"
33
#include "
element.h
"
34
#include "
env.h
"
35
#include "
style.h
"
36
37
#ifdef __cplusplus
38
extern
"C"
{
39
#endif
// __cplusplus
40
42
typedef
enum
{
43
MENU_ITEM_ENABLED,
44
MENU_ITEM_HIGHLIGHTED,
45
MENU_ITEM_DISABLED
46
}
wlmtk_menu_item_state_t
;
47
49
struct
_wlmtk_menu_item_style_t
{
51
wlmtk_style_fill_t
fill
;
53
wlmtk_style_fill_t
highlighted_fill
;
55
wlmtk_style_font_t
font
;
57
uint64_t
height
;
59
uint64_t
bezel_width
;
61
uint32_t
enabled_text_color
;
63
uint32_t
highlighted_text_color
;
65
uint32_t
disabled_text_color
;
67
uint64_t
width
;
68
};
69
71
struct
_wlmtk_menu_item_vmt_t
{
73
void (*
clicked
)(
wlmtk_menu_item_t
*menu_item_ptr);
74
};
75
77
struct
_wlmtk_menu_item_t
{
79
wlmtk_buffer_t
super_buffer
;
81
wlmtk_element_vmt_t
orig_super_element_vmt
;
83
wlmtk_menu_item_vmt_t
vmt
;
84
86
bs_dllist_node_t
dlnode
;
87
89
char
*
text_ptr
;
91
int
width
;
92
94
struct
wlr_buffer *
enabled_wlr_buffer_ptr
;
96
struct
wlr_buffer *
highlighted_wlr_buffer_ptr
;
98
struct
wlr_buffer *
disabled_wlr_buffer_ptr
;
99
101
bool
enabled
;
102
104
wlmtk_menu_item_state_t
state
;
105
107
wlmtk_menu_item_style_t
style
;
108
};
109
121
bool
wlmtk_menu_item_init
(
122
wlmtk_menu_item_t
*menu_item_ptr,
123
const
wlmtk_menu_item_style_t
*style_ptr,
124
wlmtk_env_t
*env_ptr);
125
134
wlmtk_menu_item_vmt_t
wlmtk_menu_item_extend
(
135
wlmtk_menu_item_t
*menu_item_ptr,
136
const
wlmtk_menu_item_vmt_t
*menu_item_vmt_ptr);
137
143
void
wlmtk_menu_item_fini
(
wlmtk_menu_item_t
*menu_item_ptr);
144
151
bool
wlmtk_menu_item_set_text
(
152
wlmtk_menu_item_t
*menu_item_ptr,
153
const
char
*text_ptr);
154
161
void
wlmtk_menu_item_set_enabled
(
162
wlmtk_menu_item_t
*menu_item_ptr,
163
bool
enabled);
164
166
bs_dllist_node_t *
wlmtk_dlnode_from_menu_item
(
167
wlmtk_menu_item_t
*menu_item_ptr);
168
170
wlmtk_menu_item_t
*
wlmtk_menu_item_from_dlnode
(bs_dllist_node_t *dlnode_ptr);
171
173
wlmtk_element_t
*
wlmtk_menu_item_element
(
wlmtk_menu_item_t
*menu_item_ptr);
174
176
typedef
struct
{
178
wlmtk_menu_item_t
menu_item
;
180
wlmtk_menu_item_vmt_t
orig_vmt
;
182
bool
clicked_called
;
183
}
wlmtk_fake_menu_item_t
;
184
186
wlmtk_fake_menu_item_t
*
wlmtk_fake_menu_item_create
(
void
);
188
void
wlmtk_fake_menu_item_destroy
(
wlmtk_fake_menu_item_t
*fake_menu_item_ptr);
189
191
extern
const
bs_test_case_t
wlmtk_menu_item_test_cases
[];
192
193
#ifdef __cplusplus
194
}
// extern "C"
195
#endif
// __cplusplus
196
197
#endif
/* __WLMTK_MENU_ITEM_H__ */
198
/* == End of menu_item.h =================================================== */
element.h
env.h
wlmtk_menu_item_init
bool wlmtk_menu_item_init(wlmtk_menu_item_t *menu_item_ptr, const wlmtk_menu_item_style_t *style_ptr, wlmtk_env_t *env_ptr)
Definition
menu_item.c:73
wlmtk_menu_item_state_t
wlmtk_menu_item_state_t
Definition
menu_item.h:42
wlmtk_menu_item_set_enabled
void wlmtk_menu_item_set_enabled(wlmtk_menu_item_t *menu_item_ptr, bool enabled)
Definition
menu_item.c:141
wlmtk_menu_item_from_dlnode
wlmtk_menu_item_t * wlmtk_menu_item_from_dlnode(bs_dllist_node_t *dlnode_ptr)
Definition
menu_item.c:170
wlmtk_dlnode_from_menu_item
bs_dllist_node_t * wlmtk_dlnode_from_menu_item(wlmtk_menu_item_t *menu_item_ptr)
Definition
menu_item.c:163
wlmtk_menu_item_element
wlmtk_element_t * wlmtk_menu_item_element(wlmtk_menu_item_t *menu_item_ptr)
Definition
menu_item.c:176
wlmtk_menu_item_extend
wlmtk_menu_item_vmt_t wlmtk_menu_item_extend(wlmtk_menu_item_t *menu_item_ptr, const wlmtk_menu_item_vmt_t *menu_item_vmt_ptr)
Definition
menu_item.c:98
wlmtk_fake_menu_item_destroy
void wlmtk_fake_menu_item_destroy(wlmtk_fake_menu_item_t *fake_menu_item_ptr)
Definition
menu_item.c:382
wlmtk_fake_menu_item_create
wlmtk_fake_menu_item_t * wlmtk_fake_menu_item_create(void)
Definition
menu_item.c:359
wlmtk_menu_item_set_text
bool wlmtk_menu_item_set_text(wlmtk_menu_item_t *menu_item_ptr, const char *text_ptr)
Definition
menu_item.c:127
wlmtk_menu_item_test_cases
const bs_test_case_t wlmtk_menu_item_test_cases[]
Definition
menu_item.c:414
wlmtk_menu_item_fini
void wlmtk_menu_item_fini(wlmtk_menu_item_t *menu_item_ptr)
Definition
menu_item.c:112
buffer.h
_wlmtk_buffer_t
Definition
buffer.h:40
_wlmtk_element_t
Definition
element.h:172
_wlmtk_element_vmt_t
Definition
element.h:54
_wlmtk_env_t
Definition
env.c:32
_wlmtk_menu_item_style_t
Definition
menu_item.h:49
_wlmtk_menu_item_style_t::enabled_text_color
uint32_t enabled_text_color
Definition
menu_item.h:61
_wlmtk_menu_item_style_t::font
wlmtk_style_font_t font
Definition
menu_item.h:55
_wlmtk_menu_item_style_t::height
uint64_t height
Definition
menu_item.h:57
_wlmtk_menu_item_style_t::disabled_text_color
uint32_t disabled_text_color
Definition
menu_item.h:65
_wlmtk_menu_item_style_t::highlighted_fill
wlmtk_style_fill_t highlighted_fill
Definition
menu_item.h:53
_wlmtk_menu_item_style_t::fill
wlmtk_style_fill_t fill
Definition
menu_item.h:51
_wlmtk_menu_item_style_t::bezel_width
uint64_t bezel_width
Definition
menu_item.h:59
_wlmtk_menu_item_style_t::width
uint64_t width
Definition
menu_item.h:67
_wlmtk_menu_item_style_t::highlighted_text_color
uint32_t highlighted_text_color
Definition
menu_item.h:63
_wlmtk_menu_item_t
Definition
menu_item.h:77
_wlmtk_menu_item_t::dlnode
bs_dllist_node_t dlnode
Definition
menu_item.h:86
_wlmtk_menu_item_t::width
int width
Definition
menu_item.h:91
_wlmtk_menu_item_t::highlighted_wlr_buffer_ptr
struct wlr_buffer * highlighted_wlr_buffer_ptr
Definition
menu_item.h:96
_wlmtk_menu_item_t::disabled_wlr_buffer_ptr
struct wlr_buffer * disabled_wlr_buffer_ptr
Definition
menu_item.h:98
_wlmtk_menu_item_t::state
wlmtk_menu_item_state_t state
Definition
menu_item.h:104
_wlmtk_menu_item_t::vmt
wlmtk_menu_item_vmt_t vmt
Definition
menu_item.h:83
_wlmtk_menu_item_t::enabled
bool enabled
Definition
menu_item.h:101
_wlmtk_menu_item_t::super_buffer
wlmtk_buffer_t super_buffer
Definition
menu_item.h:79
_wlmtk_menu_item_t::style
wlmtk_menu_item_style_t style
Definition
menu_item.h:107
_wlmtk_menu_item_t::orig_super_element_vmt
wlmtk_element_vmt_t orig_super_element_vmt
Definition
menu_item.h:81
_wlmtk_menu_item_t::enabled_wlr_buffer_ptr
struct wlr_buffer * enabled_wlr_buffer_ptr
Definition
menu_item.h:94
_wlmtk_menu_item_t::text_ptr
char * text_ptr
Definition
menu_item.h:89
_wlmtk_menu_item_vmt_t
Definition
menu_item.h:71
_wlmtk_menu_item_vmt_t::clicked
void(* clicked)(wlmtk_menu_item_t *menu_item_ptr)
Definition
menu_item.h:73
wlmtk_fake_menu_item_t
Definition
menu_item.h:176
wlmtk_fake_menu_item_t::orig_vmt
wlmtk_menu_item_vmt_t orig_vmt
Definition
menu_item.h:180
wlmtk_fake_menu_item_t::clicked_called
bool clicked_called
Definition
menu_item.h:182
wlmtk_fake_menu_item_t::menu_item
wlmtk_menu_item_t menu_item
Definition
menu_item.h:178
wlmtk_style_fill_t
Definition
style.h:73
wlmtk_style_font_t
Definition
style.h:101
style.h
Generated by
1.10.0