return 0;
}
-static void widget_redraw(struct wlt_widget *widget, void *data)
+static void widget_redraw(struct wlt_widget *widget, unsigned int flags,
+ void *data)
{
struct wlt_terminal *term = data;
tsm_screen_draw(term->scr, NULL, draw_cell, NULL, term);
}
-static void widget_resize(struct wlt_widget *widget, struct wlt_rect *alloc,
- void *data)
+static void widget_resize(struct wlt_widget *widget, unsigned int flags,
+ struct wlt_rect *alloc, void *data)
{
struct wlt_terminal *term = data;
int ret;
}
static void widget_prepare_resize(struct wlt_widget *widget,
+ unsigned int flags,
unsigned int width, unsigned int height,
unsigned int *min_width,
unsigned int *min_height,
}
}
-static void widget_redraw(struct wlt_widget *widget, void *data)
+static void widget_redraw(struct wlt_widget *widget, unsigned int flags,
+ void *data)
{
struct wlt_theme *theme = data;
unsigned int width, height;
}
static void widget_prepare_resize(struct wlt_widget *widget,
+ unsigned int flags,
unsigned int width, unsigned int height,
unsigned int *min_width,
unsigned int *min_height,
*new_height += minh;
}
-static void widget_resize(struct wlt_widget *widget, struct wlt_rect *alloc,
- void *data)
+static void widget_resize(struct wlt_widget *widget, unsigned int flags,
+ struct wlt_rect *alloc, void *data)
{
struct wlt_theme *theme = data;
unsigned int nwidth, nheight;
{
struct shl_dlist *iter;
struct wlt_widget *widget;
- unsigned int x, y;
+ unsigned int x, y, flags;
struct wlt_rect alloc;
+ flags = 0;
+ if (wnd->maximized)
+ flags |= WLT_WINDOW_MAXIMIZED;
+
alloc.x = 0;
alloc.y = 0;
alloc.width = wnd->buffer.width;
shl_dlist_for_each(iter, &wnd->widget_list) {
widget = shl_dlist_entry(iter, struct wlt_widget, list);
if (widget->resize_cb)
- widget->resize_cb(widget, &alloc, widget->data);
+ widget->resize_cb(widget, flags, &alloc, widget->data);
}
memset(wnd->buffer.data, 0,
shl_dlist_for_each(iter, &wnd->widget_list) {
widget = shl_dlist_entry(iter, struct wlt_widget, list);
if (widget->redraw_cb)
- widget->redraw_cb(widget, widget->data);
+ widget->redraw_cb(widget, flags, widget->data);
}
wnd->skip_damage = false;
struct wlt_pool *old_pool = NULL;
size_t nsize;
int ret;
- unsigned int oldw, oldh, neww, newh, minw, minh;
+ unsigned int oldw, oldh, neww, newh, minw, minh, flags;
if (!wnd || !width || !height)
return -EINVAL;
+ flags = 0;
+ if (wnd->maximized)
+ flags |= WLT_WINDOW_MAXIMIZED;
+
neww = 0;
newh = 0;
minw = 0;
shl_dlist_for_each(iter, &wnd->widget_list) {
widget = shl_dlist_entry(iter, struct wlt_widget, list);
if (widget->prepare_resize_cb)
- widget->prepare_resize_cb(widget, width, height,
+ widget->prepare_resize_cb(widget,
+ flags,
+ width, height,
&minw, &minh,
&neww, &newh,
widget->data);
WLT_CURSOR_NUM,
};
+#define WLT_WINDOW_MAXIMIZED 0x01
+
typedef void (*wlt_display_cb) (struct wlt_display *disp,
unsigned int event,
void *data);
typedef void (*wlt_window_close_cb) (struct wlt_window *wnd, void *data);
typedef void (*wlt_widget_redraw_cb) (struct wlt_widget *widget,
+ unsigned int flags,
void *data);
typedef void (*wlt_widget_destroy_cb) (struct wlt_widget *widget,
void *data);
typedef void (*wlt_widget_prepare_resize_cb) (struct wlt_widget *widget,
+ unsigned int flags,
unsigned int width,
unsigned int height,
unsigned int *min_width,
unsigned int *new_height,
void *data);
typedef void (*wlt_widget_resize_cb) (struct wlt_widget *widget,
+ unsigned int flags,
struct wlt_rect *allocation,
void *data);
typedef void (*wlt_widget_pointer_enter_cb) (struct wlt_widget *widget,