void gui_widget_resize(gui_widget_t* widget, graphics_size_t width, graphics_size_t height) { graphics_size_t old_width = gui_widget_width(widget); graphics_size_t old_height = gui_widget_height(widget); if(old_width == width && old_height == height) return; graphics_size_t paint_width = MAX(width, old_width); graphics_size_t paint_height = MAX(height, old_height); rect_set_width(&widget->rect, width); rect_set_height(&widget->rect, height); gui_resize_event_t event; gui_resize_event_init(&event, width, height); gui_widget_resize_event(widget, &event); gui_object_t* parent = gui_object_parent(GUI_OBJECT(widget)); if(parent){ point_t point; gui_repaint_event_t event; gui_widget_screen_position(widget, &point); gui_repaint_event_init(&event, point.x, point.y, paint_width, paint_height); gui_widget_repaint_event(GUI_WIDGET(parent), &event); } gui_widget_repaint(widget, NULL); }
void rect_init(RECT *rect, int top, int left, int height, int width) { rect->top = top; rect->left = left; rect_set_height(rect, height); rect_set_width(rect, width); }