Changeset cde067e in mainline
- Timestamp:
- 2024-08-22T16:52:45Z (3 months ago)
- Branches:
- master
- Children:
- ca95ccd
- Parents:
- 69d4aba
- Location:
- uspace/lib/ui
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/ui/include/types/ui/window.h
r69d4aba rcde067e 1 1 /* 2 * Copyright (c) 202 3Jiri Svoboda2 * Copyright (c) 2024 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 100 100 void (*maximize)(ui_window_t *, void *); 101 101 void (*unmaximize)(ui_window_t *, void *); 102 void (*resize)(ui_window_t *, void *); 102 103 void (*close)(ui_window_t *, void *); 103 104 void (*focus)(ui_window_t *, void *, unsigned); -
uspace/lib/ui/include/ui/window.h
r69d4aba rcde067e 1 1 /* 2 * Copyright (c) 202 3Jiri Svoboda2 * Copyright (c) 2024 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 74 74 extern void ui_window_def_pos(ui_window_t *, pos_event_t *); 75 75 extern void ui_window_def_unfocus(ui_window_t *, unsigned); 76 extern void ui_window_def_resize(ui_window_t *); 76 77 77 78 #endif -
uspace/lib/ui/private/window.h
r69d4aba rcde067e 1 1 /* 2 * Copyright (c) 202 3Jiri Svoboda2 * Copyright (c) 2024 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 133 133 extern void ui_window_send_pos(ui_window_t *, pos_event_t *); 134 134 extern void ui_window_send_unfocus(ui_window_t *, unsigned); 135 extern void ui_window_send_resize(ui_window_t *); 135 136 extern errno_t ui_window_size_change(ui_window_t *, gfx_rect_t *, 136 137 ui_wnd_sc_op_t); -
uspace/lib/ui/src/window.c
r69d4aba rcde067e 1047 1047 ui_lock(ui); 1048 1048 (void) ui_window_resize(window, rect); 1049 (void) ui_window_paint(window);1049 ui_window_send_resize(window); 1050 1050 ui_unlock(ui); 1051 1051 } … … 1395 1395 } 1396 1396 1397 /** Send window resize event. 1398 * 1399 * @param window Window 1400 */ 1401 void ui_window_send_resize(ui_window_t *window) 1402 { 1403 if (window->cb != NULL && window->cb->resize != NULL) 1404 window->cb->resize(window, window->arg); 1405 else 1406 return ui_window_def_resize(window); 1407 } 1408 1397 1409 /** Default window sysmenu routine. 1398 1410 * … … 1573 1585 if (window->control != NULL) 1574 1586 ui_control_unfocus(window->control, nfocus); 1587 } 1588 1589 /** Default window resize routine. 1590 * 1591 * @param window Window 1592 * @return EOK on success or an error code 1593 */ 1594 void ui_window_def_resize(ui_window_t *window) 1595 { 1596 ui_window_paint(window); 1575 1597 } 1576 1598 -
uspace/lib/ui/test/window.c
r69d4aba rcde067e 1 1 /* 2 * Copyright (c) 202 3Jiri Svoboda2 * Copyright (c) 2024 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 55 55 static void test_window_pos(ui_window_t *, void *, pos_event_t *); 56 56 static void test_window_unfocus(ui_window_t *, void *, unsigned); 57 static void test_window_resize(ui_window_t *, void *); 57 58 58 59 static ui_window_cb_t test_window_cb = { … … 66 67 .paint = test_window_paint, 67 68 .pos = test_window_pos, 68 .unfocus = test_window_unfocus 69 .unfocus = test_window_unfocus, 70 .resize = test_window_resize 69 71 }; 70 72 … … 99 101 bool unfocus; 100 102 unsigned unfocus_nfocus; 103 bool resize; 101 104 } test_cb_resp_t; 102 105 … … 936 939 } 937 940 941 /** ui_window_send_resize() calls resize callback set via ui_window_set_cb() */ 942 PCUT_TEST(send_resize) 943 { 944 errno_t rc; 945 ui_t *ui = NULL; 946 ui_wnd_params_t params; 947 ui_window_t *window = NULL; 948 test_cb_resp_t resp; 949 950 rc = ui_create_disp(NULL, &ui); 951 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 952 953 ui_wnd_params_init(¶ms); 954 params.caption = "Hello"; 955 956 rc = ui_window_create(ui, ¶ms, &window); 957 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 958 PCUT_ASSERT_NOT_NULL(window); 959 960 /* Resize callback with no callbacks set */ 961 ui_window_send_resize(window); 962 963 /* Resize callback with resize callback not implemented */ 964 ui_window_set_cb(window, &dummy_window_cb, NULL); 965 ui_window_send_resize(window); 966 967 /* Resize callback with real callback set */ 968 resp.close = false; 969 ui_window_set_cb(window, &test_window_cb, &resp); 970 ui_window_send_resize(window); 971 PCUT_ASSERT_TRUE(resp.resize); 972 973 ui_window_destroy(window); 974 ui_destroy(ui); 975 } 976 938 977 static void test_window_sysmenu(ui_window_t *window, void *arg, sysarg_t idev_id) 939 978 { … … 1014 1053 } 1015 1054 1055 static void test_window_resize(ui_window_t *window, void *arg) 1056 { 1057 test_cb_resp_t *resp = (test_cb_resp_t *) arg; 1058 1059 resp->resize = true; 1060 } 1061 1016 1062 static errno_t test_ctl_paint(void *arg) 1017 1063 {
Note:
See TracChangeset
for help on using the changeset viewer.