Changeset 3c8c580 in mainline for uspace/lib/ui/test/menubar.c


Ignore:
Timestamp:
2021-06-10T13:22:33Z (3 years ago)
Author:
jxsvoboda <5887334+jxsvoboda@…>
Branches:
master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
c68c18b9
Parents:
d091007
git-author:
Jiri Svoboda <jiri@…> (2021-05-20 15:34:03)
git-committer:
jxsvoboda <5887334+jxsvoboda@…> (2021-06-10 13:22:33)
Message:

Open menu in separate popup window (WIP)

File:
1 edited

Legend:

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

    rd091007 r3c8c580  
    5050        errno_t rc;
    5151
    52         rc = ui_menu_bar_create(NULL, &mbar);
     52        rc = ui_menu_bar_create(NULL, NULL, &mbar);
    5353        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    5454        PCUT_ASSERT_NOT_NULL(mbar);
     
    7070        errno_t rc;
    7171
    72         rc = ui_menu_bar_create(NULL, &mbar);
     72        rc = ui_menu_bar_create(NULL, NULL, &mbar);
    7373        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    7474        PCUT_ASSERT_NOT_NULL(mbar);
     
    9999        PCUT_ASSERT_NOT_NULL(resource);
    100100
    101         rc = ui_menu_bar_create(resource, &mbar);
     101        rc = ui_menu_bar_create(NULL, resource, &mbar);
    102102        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    103103        PCUT_ASSERT_NOT_NULL(mbar);
     
    137137        PCUT_ASSERT_NOT_NULL(resource);
    138138
    139         rc = ui_menu_bar_create(resource, &mbar);
     139        rc = ui_menu_bar_create(NULL, resource, &mbar);
    140140        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    141141        PCUT_ASSERT_NOT_NULL(mbar);
     
    154154        dummy_gc_t *dgc;
    155155        gfx_context_t *gc;
     156        ui_t *ui = NULL;
    156157        ui_resource_t *resource = NULL;
    157158        ui_menu_bar_t *mbar = NULL;
     
    167168        gc = dummygc_get_ctx(dgc);
    168169
    169         rc = ui_resource_create(gc, false, &resource);
    170         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    171         PCUT_ASSERT_NOT_NULL(resource);
    172 
    173         rc = ui_menu_bar_create(resource, &mbar);
     170        rc = ui_create_disp(NULL, &ui);
     171        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     172
     173        rc = ui_resource_create(gc, false, &resource);
     174        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     175        PCUT_ASSERT_NOT_NULL(resource);
     176
     177        rc = ui_menu_bar_create(ui, resource, &mbar);
    174178        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    175179        PCUT_ASSERT_NOT_NULL(mbar);
     
    197201        ui_menu_bar_destroy(mbar);
    198202        ui_resource_destroy(resource);
    199         dummygc_destroy(dgc);
    200 }
    201 
    202 /** Position event is forwarded to menu */
    203 PCUT_TEST(pos_event_menu)
    204 {
    205         dummy_gc_t *dgc;
    206         gfx_context_t *gc;
     203        ui_destroy(ui);
     204        dummygc_destroy(dgc);
     205}
     206
     207/** Calling ui_menu_bar_select() with the same menu twice deselects it */
     208PCUT_TEST(select_same)
     209{
     210        dummy_gc_t *dgc;
     211        gfx_context_t *gc;
     212        ui_t *ui = NULL;
    207213        ui_resource_t *resource = NULL;
    208214        ui_menu_bar_t *mbar = NULL;
    209215        ui_menu_t *menu = NULL;
    210         ui_evclaim_t claimed;
    211         pos_event_t event;
    212         gfx_coord2_t pos;
    213216        gfx_rect_t rect;
    214217        errno_t rc;
     
    219222        gc = dummygc_get_ctx(dgc);
    220223
    221         rc = ui_resource_create(gc, false, &resource);
    222         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    223         PCUT_ASSERT_NOT_NULL(resource);
    224 
    225         rc = ui_menu_bar_create(resource, &mbar);
    226         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    227         PCUT_ASSERT_NOT_NULL(mbar);
     224        rc = ui_create_disp(NULL, &ui);
     225        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     226
     227        rc = ui_resource_create(gc, false, &resource);
     228        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     229        PCUT_ASSERT_NOT_NULL(resource);
     230
     231        rc = ui_menu_bar_create(ui, resource, &mbar);
     232        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     233        PCUT_ASSERT_NOT_NULL(mbar);
     234
     235        rc = ui_menu_create(mbar, "Test", &menu);
     236        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     237        PCUT_ASSERT_NOT_NULL(menu);
    228238
    229239        rect.p0.x = 0;
    230240        rect.p0.y = 0;
    231         rect.p1.x = 50;
    232         rect.p1.y = 25;
    233         ui_menu_bar_set_rect(mbar, &rect);
    234 
    235         rc = ui_menu_create(mbar, "Test", &menu);
    236         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    237         PCUT_ASSERT_NOT_NULL(menu);
    238 
    239         pos.x = 0;
    240         pos.y = 0;
    241         ui_menu_bar_select(mbar, &pos, menu);
     241        rect.p1.x = 0;
     242        rect.p1.y = 0;
     243        ui_menu_bar_select(mbar, &rect, menu);
    242244        PCUT_ASSERT_EQUALS(menu, mbar->selected);
    243245
    244         event.type = POS_PRESS;
    245         event.hpos = 4;
    246         event.vpos = 30;
    247         claimed = ui_menu_bar_pos_event(mbar, &event);
    248         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    249         PCUT_ASSERT_EQUALS(ui_claimed, claimed);
    250 
    251         ui_menu_bar_destroy(mbar);
    252         ui_resource_destroy(resource);
    253         dummygc_destroy(dgc);
    254 }
    255 
    256 /* Unfocusing window closes open menu */
    257 PCUT_TEST(unfocus)
    258 {
    259         dummy_gc_t *dgc;
    260         gfx_context_t *gc;
    261         ui_resource_t *resource = NULL;
    262         ui_menu_bar_t *mbar = NULL;
    263         ui_menu_t *menu = NULL;
    264         gfx_coord2_t pos;
    265         errno_t rc;
    266 
    267         rc = dummygc_create(&dgc);
    268         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    269 
    270         gc = dummygc_get_ctx(dgc);
    271 
    272         rc = ui_resource_create(gc, false, &resource);
    273         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    274         PCUT_ASSERT_NOT_NULL(resource);
    275 
    276         rc = ui_menu_bar_create(resource, &mbar);
    277         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    278         PCUT_ASSERT_NOT_NULL(mbar);
    279 
    280         rc = ui_menu_create(mbar, "Test", &menu);
    281         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    282         PCUT_ASSERT_NOT_NULL(menu);
    283 
    284         /*
    285          * Position does not matter here. Probably should get rid of this
    286          * argument, storing the position in the menu itself.
    287          */
    288         pos.x = 0;
    289         pos.y = 0;
    290         ui_menu_bar_select(mbar, &pos, menu);
    291         PCUT_ASSERT_EQUALS(menu, mbar->selected);
    292 
    293         /* This should unselect the menu */
    294         ui_menu_bar_unfocus(mbar);
     246        /* Selecting again should unselect the menu */
     247        ui_menu_bar_select(mbar, &rect, menu);
    295248        PCUT_ASSERT_NULL(mbar->selected);
    296249
    297250        ui_menu_bar_destroy(mbar);
    298251        ui_resource_destroy(resource);
    299         dummygc_destroy(dgc);
    300 }
    301 
    302 /** Calling ui_menu_bar_select() with the same menu twice deselects it */
    303 PCUT_TEST(select_same)
    304 {
    305         dummy_gc_t *dgc;
    306         gfx_context_t *gc;
    307         ui_resource_t *resource = NULL;
    308         ui_menu_bar_t *mbar = NULL;
    309         ui_menu_t *menu = NULL;
    310         gfx_coord2_t pos;
    311         errno_t rc;
    312 
    313         rc = dummygc_create(&dgc);
    314         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    315 
    316         gc = dummygc_get_ctx(dgc);
    317 
    318         rc = ui_resource_create(gc, false, &resource);
    319         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    320         PCUT_ASSERT_NOT_NULL(resource);
    321 
    322         rc = ui_menu_bar_create(resource, &mbar);
    323         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    324         PCUT_ASSERT_NOT_NULL(mbar);
    325 
    326         rc = ui_menu_create(mbar, "Test", &menu);
    327         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    328         PCUT_ASSERT_NOT_NULL(menu);
    329 
    330         pos.x = 0;
    331         pos.y = 0;
    332         ui_menu_bar_select(mbar, &pos, menu);
    333         PCUT_ASSERT_EQUALS(menu, mbar->selected);
    334 
    335         /* Selecting again should unselect the menu */
    336         ui_menu_bar_select(mbar, &pos, menu);
    337         PCUT_ASSERT_NULL(mbar->selected);
    338 
    339         ui_menu_bar_destroy(mbar);
    340         ui_resource_destroy(resource);
     252        ui_destroy(ui);
    341253        dummygc_destroy(dgc);
    342254}
     
    347259        dummy_gc_t *dgc;
    348260        gfx_context_t *gc;
     261        ui_t *ui = NULL;
    349262        ui_resource_t *resource = NULL;
    350263        ui_menu_bar_t *mbar = NULL;
    351264        ui_menu_t *menu1 = NULL;
    352265        ui_menu_t *menu2 = NULL;
    353         gfx_coord2_t pos;
    354         errno_t rc;
    355 
    356         rc = dummygc_create(&dgc);
    357         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    358 
    359         gc = dummygc_get_ctx(dgc);
    360 
    361         rc = ui_resource_create(gc, false, &resource);
    362         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    363         PCUT_ASSERT_NOT_NULL(resource);
    364 
    365         rc = ui_menu_bar_create(resource, &mbar);
     266        gfx_rect_t rect;
     267        errno_t rc;
     268
     269        rc = dummygc_create(&dgc);
     270        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     271
     272        gc = dummygc_get_ctx(dgc);
     273
     274        rc = ui_create_disp(NULL, &ui);
     275        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     276
     277        rc = ui_resource_create(gc, false, &resource);
     278        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     279        PCUT_ASSERT_NOT_NULL(resource);
     280
     281        rc = ui_menu_bar_create(ui, resource, &mbar);
    366282        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    367283        PCUT_ASSERT_NOT_NULL(mbar);
     
    375291        PCUT_ASSERT_NOT_NULL(menu2);
    376292
    377         pos.x = 0;
    378         pos.y = 0;
    379         ui_menu_bar_select(mbar, &pos, menu1);
     293        rect.p0.x = 0;
     294        rect.p0.y = 0;
     295        rect.p1.x = 0;
     296        rect.p1.y = 0;
     297        ui_menu_bar_select(mbar, &rect, menu1);
    380298        PCUT_ASSERT_EQUALS(menu1, mbar->selected);
    381299
    382300        /* Selecting different menu should select it */
    383         ui_menu_bar_select(mbar, &pos, menu2);
     301        ui_menu_bar_select(mbar, &rect, menu2);
    384302        PCUT_ASSERT_EQUALS(menu2, mbar->selected);
    385303
    386304        ui_menu_bar_destroy(mbar);
    387305        ui_resource_destroy(resource);
     306        ui_destroy(ui);
    388307        dummygc_destroy(dgc);
    389308}
Note: See TracChangeset for help on using the changeset viewer.