9#ifndef GP_WIDGET_RENDER_H
10#define GP_WIDGET_RENDER_H
13#include <gfx/gp_gfx.h>
14#include <text/gp_text.h>
18#include <widgets/gp_widget_types.h>
19#include <widgets/gp_widgets_color_scheme.h>
21struct gp_widget_render_ctx {
24 enum gp_widgets_color_scheme color_scheme;
28 gp_pixel colors[GP_WIDGETS_THEME_COLORS + 16];
57 } __attribute__((packed));
62 gp_text_style *font_bold;
64 gp_text_style *font_big;
65 gp_text_style *font_big_bold;
67 gp_text_style *font_mono;
68 gp_text_style *font_mono_bold;
96 int focused_is_bold:1;
101static inline int gp_widgets_is_dclick(uint64_t time_now, uint64_t time_prev,
102 const gp_widget_render_ctx *ctx)
104 if (time_now - time_prev < (uint64_t)ctx->dclick_ms)
115const gp_pixmap *gp_widget_render_buffer(
void);
117typedef struct gp_widget_timer {
118 uint32_t (*callback)(
void *priv);
124enum gp_widget_render_timer_flags {
125 GP_TIMER_RESCHEDULE = 0x01,
128void gp_widget_render_timer(gp_widget *self,
int flags,
unsigned int timeout_ms);
129void gp_widget_render_timer_cancel(gp_widget *self);
136const gp_widget_render_ctx *gp_widgets_render_ctx(
void);
144void gp_widgets_getopt(
int *argc,
char **argv[]);
154void gp_widgets_register_callback(
int (*on_event)(gp_event *));
167void gp_widgets_main_loop(
struct gp_widget *layout,
168 void (*init)(
int argc,
char *argv[]),
169 int argc,
char *argv[])
170 __attribute__((noreturn));
177void gp_widgets_exit(
int exit_value) __attribute__((noreturn));
186gp_widget *gp_widget_layout_replace(gp_widget *layout);
205void gp_widgets_clipboard_set(
const char *str,
size_t len);
215char *gp_widgets_clipboard_get(
void);
224void gp_widgets_clipboard_request(gp_widget *self);
234void gp_widgets_clipboard_request_cancel(gp_widget *self);
239void gp_widgets_redraw(gp_widget *layout);
244int gp_widgets_process_events(gp_widget *layout);
249void gp_widgets_layout_init(gp_widget *layout,
const char *win_tittle);
258void gp_widget_render_zoom(
int zoom_inc);
uint32_t gp_pixel
Pixel integer value.
A bounding box implementation.
Includes all core headers.
gp_pixel_type
List of all pixel types.
Timers and timer queue implementation.