Changeset ed1a948 in mainline for uspace/lib/ui/test/wdecor.c


Ignore:
Timestamp:
2023-09-20T13:10:28Z (20 months ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
master, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
8d1bcd7
Parents:
153dd3b
git-author:
Jiri Svoboda <jiri@…> (2023-09-19 17:10:04)
git-committer:
Jiri Svoboda <jiri@…> (2023-09-20 13:10:28)
Message:

System menu handle

Graphical element allowing to open system menu using mouse.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/ui/test/wdecor.c

    r153dd3b red1a948  
    119119} test_cb_resp_t;
    120120
    121 /** Create and destroy button */
     121/** Create and destroy window decoration */
    122122PCUT_TEST(create_destroy)
    123123{
     
    217217}
    218218
    219 /** Paint button */
    220 PCUT_TEST(paint)
     219/** Setting system menu handle as active/inactive */
     220PCUT_TEST(sysmenu_hdl_set_active)
    221221{
    222222        errno_t rc;
     
    234234        PCUT_ASSERT_NOT_NULL(resource);
    235235
    236         rc = ui_wdecor_create(resource, "Hello", ui_wds_none, &wdecor);
     236        rc = ui_wdecor_create(resource, "Hello", ui_wds_decorated, &wdecor);
     237        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     238
     239        PCUT_ASSERT_FALSE(wdecor->sysmenu_hdl_active);
     240        ui_wdecor_sysmenu_hdl_set_active(wdecor, true);
     241        PCUT_ASSERT_TRUE(wdecor->sysmenu_hdl_active);
     242        ui_wdecor_sysmenu_hdl_set_active(wdecor, false);
     243        PCUT_ASSERT_FALSE(wdecor->sysmenu_hdl_active);
     244
     245        ui_wdecor_destroy(wdecor);
     246        ui_resource_destroy(resource);
     247
     248        rc = gfx_context_delete(gc);
     249        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     250}
     251
     252/** Paint system menu handle */
     253PCUT_TEST(sysmenu_hdl_paint)
     254{
     255        errno_t rc;
     256        gfx_context_t *gc = NULL;
     257        test_gc_t tgc;
     258        ui_resource_t *resource = NULL;
     259        ui_wdecor_t *wdecor;
     260        ui_wdecor_geom_t geom;
     261
     262        memset(&tgc, 0, sizeof(tgc));
     263        rc = gfx_context_new(&ops, &tgc, &gc);
     264        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     265
     266        rc = ui_resource_create(gc, false, &resource);
     267        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     268        PCUT_ASSERT_NOT_NULL(resource);
     269
     270        rc = ui_wdecor_create(resource, "Hello", ui_wds_decorated, &wdecor);
     271        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     272
     273        ui_wdecor_get_geom(wdecor, &geom);
     274        rc = ui_wdecor_sysmenu_hdl_paint(wdecor, &geom.sysmenu_hdl_rect);
     275        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     276
     277        ui_wdecor_destroy(wdecor);
     278        ui_resource_destroy(resource);
     279
     280        rc = gfx_context_delete(gc);
     281        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     282}
     283
     284/** Paint window decoration */
     285PCUT_TEST(paint)
     286{
     287        errno_t rc;
     288        gfx_context_t *gc = NULL;
     289        test_gc_t tgc;
     290        ui_resource_t *resource = NULL;
     291        ui_wdecor_t *wdecor;
     292
     293        memset(&tgc, 0, sizeof(tgc));
     294        rc = gfx_context_new(&ops, &tgc, &gc);
     295        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     296
     297        rc = ui_resource_create(gc, false, &resource);
     298        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     299        PCUT_ASSERT_NOT_NULL(resource);
     300
     301        rc = ui_wdecor_create(resource, "Hello", ui_wds_decorated, &wdecor);
    237302        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    238303
     
    676741        PCUT_ASSERT_INT_EQUALS(0, geom.title_bar_rect.p1.y);
    677742
     743        PCUT_ASSERT_INT_EQUALS(0, geom.sysmenu_hdl_rect.p0.x);
     744        PCUT_ASSERT_INT_EQUALS(0, geom.sysmenu_hdl_rect.p0.y);
     745        PCUT_ASSERT_INT_EQUALS(0, geom.sysmenu_hdl_rect.p1.x);
     746        PCUT_ASSERT_INT_EQUALS(0, geom.sysmenu_hdl_rect.p1.y);
     747
     748        PCUT_ASSERT_INT_EQUALS(0, geom.caption_rect.p0.x);
     749        PCUT_ASSERT_INT_EQUALS(0, geom.caption_rect.p0.y);
     750        PCUT_ASSERT_INT_EQUALS(0, geom.caption_rect.p1.x);
     751        PCUT_ASSERT_INT_EQUALS(0, geom.caption_rect.p1.y);
     752
     753        PCUT_ASSERT_INT_EQUALS(0, geom.btn_min_rect.p0.x);
     754        PCUT_ASSERT_INT_EQUALS(0, geom.btn_min_rect.p0.y);
     755        PCUT_ASSERT_INT_EQUALS(0, geom.btn_min_rect.p1.x);
     756        PCUT_ASSERT_INT_EQUALS(0, geom.btn_min_rect.p1.y);
     757
     758        PCUT_ASSERT_INT_EQUALS(0, geom.btn_max_rect.p0.x);
     759        PCUT_ASSERT_INT_EQUALS(0, geom.btn_max_rect.p0.y);
     760        PCUT_ASSERT_INT_EQUALS(0, geom.btn_max_rect.p1.x);
     761        PCUT_ASSERT_INT_EQUALS(0, geom.btn_max_rect.p1.y);
     762
    678763        PCUT_ASSERT_INT_EQUALS(0, geom.btn_close_rect.p0.x);
    679764        PCUT_ASSERT_INT_EQUALS(0, geom.btn_close_rect.p0.y);
     
    733818        PCUT_ASSERT_INT_EQUALS(0, geom.title_bar_rect.p1.y);
    734819
     820        PCUT_ASSERT_INT_EQUALS(0, geom.sysmenu_hdl_rect.p0.x);
     821        PCUT_ASSERT_INT_EQUALS(0, geom.sysmenu_hdl_rect.p0.y);
     822        PCUT_ASSERT_INT_EQUALS(0, geom.sysmenu_hdl_rect.p1.x);
     823        PCUT_ASSERT_INT_EQUALS(0, geom.sysmenu_hdl_rect.p1.y);
     824
     825        PCUT_ASSERT_INT_EQUALS(0, geom.caption_rect.p0.x);
     826        PCUT_ASSERT_INT_EQUALS(0, geom.caption_rect.p0.y);
     827        PCUT_ASSERT_INT_EQUALS(0, geom.caption_rect.p1.x);
     828        PCUT_ASSERT_INT_EQUALS(0, geom.caption_rect.p1.y);
     829
     830        PCUT_ASSERT_INT_EQUALS(0, geom.btn_min_rect.p0.x);
     831        PCUT_ASSERT_INT_EQUALS(0, geom.btn_min_rect.p0.y);
     832        PCUT_ASSERT_INT_EQUALS(0, geom.btn_min_rect.p1.x);
     833        PCUT_ASSERT_INT_EQUALS(0, geom.btn_min_rect.p1.y);
     834
     835        PCUT_ASSERT_INT_EQUALS(0, geom.btn_max_rect.p0.x);
     836        PCUT_ASSERT_INT_EQUALS(0, geom.btn_max_rect.p0.y);
     837        PCUT_ASSERT_INT_EQUALS(0, geom.btn_max_rect.p1.x);
     838        PCUT_ASSERT_INT_EQUALS(0, geom.btn_max_rect.p1.y);
     839
    735840        PCUT_ASSERT_INT_EQUALS(0, geom.btn_close_rect.p0.x);
    736841        PCUT_ASSERT_INT_EQUALS(0, geom.btn_close_rect.p0.y);
     
    791896        PCUT_ASSERT_INT_EQUALS(46, geom.title_bar_rect.p1.y);
    792897
     898        PCUT_ASSERT_INT_EQUALS(0, geom.sysmenu_hdl_rect.p0.x);
     899        PCUT_ASSERT_INT_EQUALS(0, geom.sysmenu_hdl_rect.p0.y);
     900        PCUT_ASSERT_INT_EQUALS(0, geom.sysmenu_hdl_rect.p1.x);
     901        PCUT_ASSERT_INT_EQUALS(0, geom.sysmenu_hdl_rect.p1.y);
     902
     903        PCUT_ASSERT_INT_EQUALS(18, geom.caption_rect.p0.x);
     904        PCUT_ASSERT_INT_EQUALS(24, geom.caption_rect.p0.y);
     905        PCUT_ASSERT_INT_EQUALS(91, geom.caption_rect.p1.x);
     906        PCUT_ASSERT_INT_EQUALS(46, geom.caption_rect.p1.y);
     907
     908        PCUT_ASSERT_INT_EQUALS(0, geom.btn_min_rect.p0.x);
     909        PCUT_ASSERT_INT_EQUALS(0, geom.btn_min_rect.p0.y);
     910        PCUT_ASSERT_INT_EQUALS(0, geom.btn_min_rect.p1.x);
     911        PCUT_ASSERT_INT_EQUALS(0, geom.btn_min_rect.p1.y);
     912
     913        PCUT_ASSERT_INT_EQUALS(0, geom.btn_max_rect.p0.x);
     914        PCUT_ASSERT_INT_EQUALS(0, geom.btn_max_rect.p0.y);
     915        PCUT_ASSERT_INT_EQUALS(0, geom.btn_max_rect.p1.x);
     916        PCUT_ASSERT_INT_EQUALS(0, geom.btn_max_rect.p1.y);
     917
    793918        PCUT_ASSERT_INT_EQUALS(0, geom.btn_close_rect.p0.x);
    794919        PCUT_ASSERT_INT_EQUALS(0, geom.btn_close_rect.p0.y);
     
    847972        PCUT_ASSERT_INT_EQUALS(96, geom.title_bar_rect.p1.x);
    848973        PCUT_ASSERT_INT_EQUALS(46, geom.title_bar_rect.p1.y);
     974
     975        PCUT_ASSERT_INT_EQUALS(15, geom.sysmenu_hdl_rect.p0.x);
     976        PCUT_ASSERT_INT_EQUALS(25, geom.sysmenu_hdl_rect.p0.y);
     977        PCUT_ASSERT_INT_EQUALS(35, geom.sysmenu_hdl_rect.p1.x);
     978        PCUT_ASSERT_INT_EQUALS(45, geom.sysmenu_hdl_rect.p1.y);
     979
     980        PCUT_ASSERT_INT_EQUALS(38, geom.caption_rect.p0.x);
     981        PCUT_ASSERT_INT_EQUALS(24, geom.caption_rect.p0.y);
     982        PCUT_ASSERT_INT_EQUALS(51, geom.caption_rect.p1.x);
     983        PCUT_ASSERT_INT_EQUALS(46, geom.caption_rect.p1.y);
     984
     985        PCUT_ASSERT_INT_EQUALS(55, geom.btn_min_rect.p0.x);
     986        PCUT_ASSERT_INT_EQUALS(25, geom.btn_min_rect.p0.y);
     987        PCUT_ASSERT_INT_EQUALS(75, geom.btn_min_rect.p1.x);
     988        PCUT_ASSERT_INT_EQUALS(45, geom.btn_min_rect.p1.y);
     989
     990        /* Maximize button is not in ui_wds_decorated */
     991        PCUT_ASSERT_INT_EQUALS(0, geom.btn_max_rect.p0.x);
     992        PCUT_ASSERT_INT_EQUALS(0, geom.btn_max_rect.p0.y);
     993        PCUT_ASSERT_INT_EQUALS(0, geom.btn_max_rect.p1.x);
     994        PCUT_ASSERT_INT_EQUALS(0, geom.btn_max_rect.p1.y);
    849995
    850996        PCUT_ASSERT_INT_EQUALS(75, geom.btn_close_rect.p0.x);
Note: See TracChangeset for help on using the changeset viewer.