Changeset 1af103e in mainline for uspace/lib/ui/test/wdecor.c
- Timestamp:
- 2023-09-13T17:29:07Z (20 months ago)
- Branches:
- master, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 61643c8
- Parents:
- 46bd63c9
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/ui/test/wdecor.c
r46bd63c9 r1af103e 62 62 }; 63 63 64 static void test_wdecor_sysmenu(ui_wdecor_t *, void *, sysarg_t); 64 65 static void test_wdecor_minimize(ui_wdecor_t *, void *); 65 66 static void test_wdecor_maximize(ui_wdecor_t *, void *); … … 72 73 73 74 static ui_wdecor_cb_t test_wdecor_cb = { 75 .sysmenu = test_wdecor_sysmenu, 74 76 .minimize = test_wdecor_minimize, 75 77 .maximize = test_wdecor_maximize, … … 102 104 103 105 typedef struct { 106 bool sysmenu; 104 107 bool minimize; 105 108 bool maximize; … … 109 112 gfx_coord2_t pos; 110 113 sysarg_t pos_id; 114 sysarg_t idev_id; 111 115 bool resize; 112 116 ui_wdecor_rsztype_t rsztype; … … 241 245 rc = gfx_context_delete(gc); 242 246 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 247 } 248 249 /** Test ui_wdecor_sysmenu() */ 250 PCUT_TEST(sysmenu) 251 { 252 errno_t rc; 253 ui_wdecor_t *wdecor; 254 test_cb_resp_t resp; 255 256 rc = ui_wdecor_create(NULL, "Hello", ui_wds_none, &wdecor); 257 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 258 259 /* Sysmenu callback with no callbacks set */ 260 ui_wdecor_sysmenu(wdecor, 42); 261 262 /* Sysmenu callback with sysmenu callback not implemented */ 263 ui_wdecor_set_cb(wdecor, &dummy_wdecor_cb, NULL); 264 ui_wdecor_sysmenu(wdecor, 42); 265 266 /* Sysmenu callback with real callback set */ 267 resp.sysmenu = false; 268 resp.idev_id = 0; 269 ui_wdecor_set_cb(wdecor, &test_wdecor_cb, &resp); 270 ui_wdecor_sysmenu(wdecor, 42); 271 PCUT_ASSERT_TRUE(resp.sysmenu); 272 PCUT_ASSERT_INT_EQUALS(42, resp.idev_id); 273 274 ui_wdecor_destroy(wdecor); 243 275 } 244 276 … … 544 576 PCUT_ASSERT_INT_EQUALS(event.hpos, resp.pos.x); 545 577 PCUT_ASSERT_INT_EQUALS(event.vpos, resp.pos.y); 578 579 ui_wdecor_destroy(wdecor); 580 ui_resource_destroy(resource); 581 582 rc = gfx_context_delete(gc); 583 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 584 } 585 586 /** Pressing F9 generates sysmenu event */ 587 PCUT_TEST(kbd_f9_sysmenu) 588 { 589 errno_t rc; 590 gfx_rect_t rect; 591 kbd_event_t event; 592 gfx_context_t *gc = NULL; 593 test_gc_t tgc; 594 test_cb_resp_t resp; 595 ui_resource_t *resource = NULL; 596 ui_wdecor_t *wdecor; 597 598 memset(&tgc, 0, sizeof(tgc)); 599 rc = gfx_context_new(&ops, &tgc, &gc); 600 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 601 602 rc = ui_resource_create(gc, false, &resource); 603 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 604 PCUT_ASSERT_NOT_NULL(resource); 605 606 rc = ui_wdecor_create(resource, "Hello", ui_wds_decorated, &wdecor); 607 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 608 609 rect.p0.x = 10; 610 rect.p0.y = 20; 611 rect.p1.x = 100; 612 rect.p1.y = 200; 613 614 ui_wdecor_set_rect(wdecor, &rect); 615 616 ui_wdecor_set_cb(wdecor, &test_wdecor_cb, (void *) &resp); 617 618 resp.move = false; 619 resp.pos.x = 0; 620 resp.pos.y = 0; 621 622 event.type = KEY_PRESS; 623 event.mods = 0; 624 event.key = KC_F9; 625 event.kbd_id = 42; 626 ui_wdecor_kbd_event(wdecor, &event); 627 628 PCUT_ASSERT_TRUE(resp.sysmenu); 629 PCUT_ASSERT_INT_EQUALS(event.kbd_id, resp.idev_id); 546 630 547 631 ui_wdecor_destroy(wdecor); … … 1111 1195 } 1112 1196 1197 static void test_wdecor_sysmenu(ui_wdecor_t *wdecor, void *arg, 1198 sysarg_t idev_id) 1199 { 1200 test_cb_resp_t *resp = (test_cb_resp_t *) arg; 1201 1202 resp->sysmenu = true; 1203 resp->idev_id = idev_id; 1204 } 1205 1113 1206 static void test_wdecor_minimize(ui_wdecor_t *wdecor, void *arg) 1114 1207 {
Note:
See TracChangeset
for help on using the changeset viewer.