wlmaker
Loading...
Searching...
No Matches
content.h
Go to the documentation of this file.
1/* ========================================================================= */
20#ifndef __WLMTK_CONTENT_H__
21#define __WLMTK_CONTENT_H__
22
23#include <stdbool.h>
24#include <stddef.h>
25#include <stdint.h>
26
27struct _wlmtk_content_t;
33
34#include "container.h" // IWYU pragma: keep
35#include "element.h"
36#include "libbase/libbase.h"
37#include "popup.h"
38#include "surface.h"
39#include "util.h"
40#include "window.h" // IWYU pragma: keep
41
43
46;
48
49;
51
52#ifdef __cplusplus
53extern "C" {
54#endif // __cplusplus
55
70 uint32_t (*request_maximized)(wlmtk_content_t *content_ptr,
71 bool maximized);
72
86 uint32_t (*request_fullscreen)(wlmtk_content_t *content_ptr,
87 bool fullscreen);
88
102 uint32_t (*request_size)(wlmtk_content_t *content_ptr,
103 int width,
104 int height);
105
111 void (*request_close)(wlmtk_content_t *content_ptr);
112
123 void (*set_activated)(wlmtk_content_t *content_ptr, bool activated);
124};
125
132
135
137 // TODO(kaeser@gubbe.ch): Re-think whether this better be part of window?
138 // To consider: positioning relative to window's content *is* desirable.
140
145
147 // TODO(kaeser@gubbe.ch): Should not be stored here & this way.
149
155
160
162 bs_dllist_t popups;
164 bs_dllist_node_t dlnode;
165};
166
176 wlmtk_content_t *content_ptr,
177 wlmtk_element_t *element_ptr);
178
185 wlmtk_content_t *content_ptr);
186
194 wlmtk_content_t *content_ptr,
195 wlmtk_element_t *element_ptr);
196
206 wlmtk_content_t *content_ptr,
207 const wlmtk_content_vmt_t *content_vmt_ptr);
208
210static inline uint32_t wlmtk_content_request_maximized(
211 wlmtk_content_t *content_ptr,
212 bool maximized) {
213 if (NULL == content_ptr->vmt.request_maximized) return 0;
214 return content_ptr->vmt.request_maximized(content_ptr, maximized);
215}
216
218static inline uint32_t wlmtk_content_request_fullscreen(
219 wlmtk_content_t *content_ptr,
220 bool fullscreen) {
221 if (NULL == content_ptr->vmt.request_fullscreen) return 0;
222 return content_ptr->vmt.request_fullscreen(content_ptr, fullscreen);
223}
224
226static inline uint32_t wlmtk_content_request_size(
227 wlmtk_content_t *content_ptr,
228 int width,
229 int height) {
230 return content_ptr->vmt.request_size(content_ptr, width, height);
231}
232
234static inline void wlmtk_content_request_close(wlmtk_content_t *content_ptr) {
235 if (NULL == content_ptr->vmt.request_close) return;
236 return content_ptr->vmt.request_close(content_ptr);
237}
238
241 wlmtk_content_t *content_ptr,
242 bool activated) {
243 if (NULL == content_ptr->vmt.set_activated) return;
244 content_ptr->vmt.set_activated(content_ptr, activated);
245}
246
247
257 wlmtk_content_t *content_ptr,
258 wlmtk_window_t *window_ptr);
259
262 wlmtk_content_t *content_ptr,
263 int *width_ptr,
264 int *height_ptr);
265
268 wlmtk_content_t *content_ptr,
269 int width,
270 int height,
271 uint32_t serial);
272
275
283 wlmtk_content_t *content_ptr,
284 wlmtk_content_t *popup_content_ptr);
285
295 wlmtk_content_t *content_ptr,
296 wlmtk_content_t *popup_content_ptr);
297
305 wlmtk_content_t *content_ptr,
306 wlmtk_popup_t *popup_ptr);
307
317 wlmtk_content_t *content_ptr,
318 wlmtk_popup_t *popup_ptr);
319
322 wlmtk_content_t *content_ptr);
323
325extern const bs_test_case_t wlmtk_content_test_cases[];
326
346
349 wlmtk_fake_surface_t *fake_surface_ptr);
353void wlmtk_fake_content_commit(wlmtk_fake_content_t *fake_content_ptr);
354
355#ifdef __cplusplus
356} // extern "C"
357#endif // __cplusplus
358
359#endif /* __WLMTK_CONTENT_H__ */
360/* == End of content.h ===================================================== */
wlmtk_element_t * wlmtk_content_element(wlmtk_content_t *content_ptr)
Definition content.c:204
bool wlmtk_content_init(wlmtk_content_t *content_ptr, wlmtk_element_t *element_ptr)
Definition content.c:56
static void wlmtk_content_request_close(wlmtk_content_t *content_ptr)
Definition content.h:234
wlmtk_content_t * wlmtk_content_get_parent_content(wlmtk_content_t *content_ptr)
Definition content.c:265
void wlmtk_fake_content_commit(wlmtk_fake_content_t *fake_content_ptr)
Definition content.c:364
void wlmtk_content_set_window(wlmtk_content_t *content_ptr, wlmtk_window_t *window_ptr)
Definition content.c:196
void wlmtk_content_commit(wlmtk_content_t *content_ptr, int width, int height, uint32_t serial)
Definition content.c:182
void wlmtk_content_set_element(wlmtk_content_t *content_ptr, wlmtk_element_t *element_ptr)
Definition content.c:113
static uint32_t wlmtk_content_request_fullscreen(wlmtk_content_t *content_ptr, bool fullscreen)
Definition content.h:218
void wlmtk_content_remove_wlmtk_popup(wlmtk_content_t *content_ptr, wlmtk_popup_t *popup_ptr)
Definition content.c:255
const bs_test_case_t wlmtk_content_test_cases[]
Definition content.c:415
static uint32_t wlmtk_content_request_maximized(wlmtk_content_t *content_ptr, bool maximized)
Definition content.h:210
wlmtk_content_vmt_t wlmtk_content_extend(wlmtk_content_t *content_ptr, const wlmtk_content_vmt_t *content_vmt_ptr)
Definition content.c:141
void wlmtk_content_get_size(wlmtk_content_t *content_ptr, int *width_ptr, int *height_ptr)
Definition content.c:172
void wlmtk_content_add_wlmtk_popup(wlmtk_content_t *content_ptr, wlmtk_popup_t *popup_ptr)
Definition content.c:245
static void wlmtk_content_set_activated(wlmtk_content_t *content_ptr, bool activated)
Definition content.h:240
static uint32_t wlmtk_content_request_size(wlmtk_content_t *content_ptr, int width, int height)
Definition content.h:226
void wlmtk_content_fini(wlmtk_content_t *content_ptr)
Definition content.c:87
void wlmtk_content_add_popup(wlmtk_content_t *content_ptr, wlmtk_content_t *popup_content_ptr)
Definition content.c:210
wlmtk_fake_content_t * wlmtk_fake_content_create(wlmtk_fake_surface_t *fake_surface_ptr)
Definition content.c:337
void wlmtk_fake_content_destroy(wlmtk_fake_content_t *fake_content_ptr)
Definition content.c:357
void wlmtk_content_remove_popup(wlmtk_content_t *content_ptr, wlmtk_content_t *popup_content_ptr)
Definition content.c:228
Definition container.h:60
Definition content.h:127
wlmtk_container_t popup_container
Definition content.h:139
wlmtk_content_vmt_t vmt
Definition content.h:131
int committed_width
Definition content.h:157
wlmtk_element_t * element_ptr
Definition content.h:142
wlmtk_element_vmt_t orig_super_element_vmt
Definition content.h:134
wlmtk_container_t super_container
Definition content.h:129
bs_dllist_t popups
Definition content.h:162
int committed_height
Definition content.h:159
bs_dllist_node_t dlnode
Definition content.h:164
wlmtk_content_t * parent_content_ptr
Definition content.h:154
wlmtk_window_t * window_ptr
Definition content.h:144
wlmtk_util_client_t client
Definition content.h:148
Definition content.h:57
uint32_t(* request_maximized)(wlmtk_content_t *content_ptr, bool maximized)
Definition content.h:70
void(* request_close)(wlmtk_content_t *content_ptr)
Definition content.h:111
uint32_t(* request_fullscreen)(wlmtk_content_t *content_ptr, bool fullscreen)
Definition content.h:86
void(* set_activated)(wlmtk_content_t *content_ptr, bool activated)
Definition content.h:123
uint32_t(* request_size)(wlmtk_content_t *content_ptr, int width, int height)
Definition content.h:102
Definition element.h:175
Definition element.h:67
Definition content.h:328
int requested_width
Definition content.h:340
wlmtk_fake_surface_t * fake_surface_ptr
Definition content.h:332
bool activated
Definition content.h:344
int requested_height
Definition content.h:342
bool request_close_called
Definition content.h:335
wlmtk_content_t content
Definition content.h:330
uint32_t serial
Definition content.h:338
Definition surface.h:154
Definition popup.h:43
Definition surface.h:47
Definition window.c:82
Definition util.h:35