Changeset e022819 in mainline for uspace/lib
- Timestamp:
- 2020-03-14T00:30:53Z (6 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 03c8081
- Parents:
- 1e4a937
- Location:
- uspace/lib
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/display/include/types/display.h
r1e4a937 re022819 70 70 /** Position event */ 71 71 void (*pos_event)(void *, pos_event_t *); 72 /** Resize event */ 73 void (*resize_event)(void *, gfx_rect_t *); 72 74 /** Unfocus event */ 73 75 void (*unfocus_event)(void *); -
uspace/lib/display/include/types/display/event.h
r1e4a937 re022819 36 36 #define _LIBDISPLAY_TYPES_DISPLAY_EVENT_H_ 37 37 38 #include <gfx/coord.h> 38 39 #include <io/kbd_event.h> 39 40 #include <io/pos_event.h> … … 49 50 /** Position event */ 50 51 wev_pos, 52 /** Resize event */ 53 wev_resize, 51 54 /** Window lost focus */ 52 55 wev_unfocus 53 56 } display_wnd_ev_type_t; 57 58 /** Display window resize event */ 59 typedef struct { 60 gfx_rect_t rect; 61 } display_wnd_resize_ev_t; 54 62 55 63 /** Display window event */ … … 62 70 /** Position event data */ 63 71 pos_event_t pos; 72 /** Resize event data */ 73 display_wnd_resize_ev_t resize; 64 74 } ev; 65 75 } display_wnd_ev_t; -
uspace/lib/display/src/display.c
r1e4a937 re022819 460 460 } 461 461 break; 462 case wev_resize: 463 if (window->cb != NULL && window->cb->resize_event != NULL) { 464 window->cb->resize_event(window->cb_arg, 465 &event.ev.resize.rect); 466 } 467 break; 462 468 case wev_unfocus: 463 469 if (window->cb != NULL && window->cb->unfocus_event != NULL) { -
uspace/lib/gui/window.c
r1e4a937 re022819 87 87 static void window_kbd_event(void *, kbd_event_t *); 88 88 static void window_pos_event(void *, pos_event_t *); 89 static void window_resize_event(void *, gfx_rect_t *); 89 90 static void window_unfocus_event(void *); 90 91 … … 94 95 .kbd_event = window_kbd_event, 95 96 .pos_event = window_pos_event, 97 .resize_event = window_resize_event, 96 98 .unfocus_event = window_unfocus_event 97 99 }; … … 313 315 } else if (left && btn_left) { 314 316 (void) display_window_resize_req(widget->window->dwindow, 315 display_wr_ bottom, &pos);317 display_wr_left, &pos); 316 318 } else if (bottom && btn_left) { 317 319 (void) display_window_resize_req(widget->window->dwindow, … … 319 321 } else if (right && btn_left) { 320 322 (void) display_window_resize_req(widget->window->dwindow, 321 display_wr_ bottom, &pos);323 display_wr_right, &pos); 322 324 } else if (close && btn_left) { 323 325 window_close(widget->window); … … 815 817 } 816 818 819 static 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 817 838 static void window_unfocus_event(void *arg) 818 839 {
Note:
See TracChangeset
for help on using the changeset viewer.