Exemplo n.º 1
0
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);
}
Exemplo n.º 2
0
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);
}