Changeset e022819 in mainline for uspace/lib/gui/window.c


Ignore:
Timestamp:
2020-03-14T00:30:53Z (5 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
03c8081
Parents:
1e4a937
Message:

Resizing windows

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/gui/window.c

    r1e4a937 re022819  
    8787static void window_kbd_event(void *, kbd_event_t *);
    8888static void window_pos_event(void *, pos_event_t *);
     89static void window_resize_event(void *, gfx_rect_t *);
    8990static void window_unfocus_event(void *);
    9091
     
    9495        .kbd_event = window_kbd_event,
    9596        .pos_event = window_pos_event,
     97        .resize_event = window_resize_event,
    9698        .unfocus_event = window_unfocus_event
    9799};
     
    313315                } else if (left && btn_left) {
    314316                        (void) display_window_resize_req(widget->window->dwindow,
    315                             display_wr_bottom, &pos);
     317                            display_wr_left, &pos);
    316318                } else if (bottom && btn_left) {
    317319                        (void) display_window_resize_req(widget->window->dwindow,
     
    319321                } else if (right && btn_left) {
    320322                        (void) display_window_resize_req(widget->window->dwindow,
    321                             display_wr_bottom, &pos);
     323                            display_wr_right, &pos);
    322324                } else if (close && btn_left) {
    323325                        window_close(widget->window);
     
    815817}
    816818
     819static void window_resize_event(void *arg, gfx_rect_t *nrect)
     820{
     821        window_t *win = (window_t *) arg;
     822        window_event_t *event;
     823
     824        event = (window_event_t *) calloc(1, sizeof(window_event_t));
     825        if (event == NULL)
     826                return;
     827
     828        link_initialize(&event->link);
     829        event->type = ET_WINDOW_RESIZE;
     830        event->data.resize.offset_x = nrect->p0.x;
     831        event->data.resize.offset_y = nrect->p0.y;
     832        event->data.resize.width = nrect->p1.x - nrect->p0.x;
     833        event->data.resize.height = nrect->p1.y - nrect->p0.y;
     834        event->data.resize.placement_flags = WINDOW_PLACEMENT_ANY;
     835        prodcons_produce(&win->events, &event->link);
     836}
     837
    817838static void window_unfocus_event(void *arg)
    818839{
Note: See TracChangeset for help on using the changeset viewer.