Changeset 59768c7 in mainline for uspace/lib/ui/test/menubar.c


Ignore:
Timestamp:
2022-01-10T19:29:00Z (2 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
5de852c
Parents:
9754ed2
git-author:
Jiri Svoboda <jiri@…> (2022-01-10 19:27:55)
git-committer:
Jiri Svoboda <jiri@…> (2022-01-10 19:29:00)
Message:

Menu control using F10, cursor keys, Enter, Escape

File:
1 edited

Legend:

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

    r9754ed2 r59768c7  
    11/*
    2  * Copyright (c) 2021 Jiri Svoboda
     2 * Copyright (c) 2022 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    149149}
    150150
    151 /** Press event on menu bar entry selects menu */
    152 PCUT_TEST(pos_event_select)
     151/** Deliver menu bar keyboard event */
     152PCUT_TEST(kbd_event)
    153153{
    154154        ui_t *ui = NULL;
     
    158158        ui_menu_t *menu = NULL;
    159159        ui_evclaim_t claimed;
    160         pos_event_t event;
     160        kbd_event_t event;
    161161        gfx_rect_t rect;
    162162        errno_t rc;
     
    186186        PCUT_ASSERT_NOT_NULL(menu);
    187187
     188        event.type = KEY_PRESS;
     189        event.key = KC_ESCAPE;
     190        claimed = ui_menu_kbd_pos_event(mbar, &event);
     191        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     192        PCUT_ASSERT_EQUALS(ui_claimed, claimed);
     193
     194        ui_menu_bar_destroy(mbar);
     195        ui_window_destroy(window);
     196        ui_destroy(ui);
     197}
     198
     199/** Press event on menu bar entry selects menu */
     200PCUT_TEST(pos_event_select)
     201{
     202        ui_t *ui = NULL;
     203        ui_window_t *window = NULL;
     204        ui_wnd_params_t params;
     205        ui_menu_bar_t *mbar = NULL;
     206        ui_menu_t *menu = NULL;
     207        ui_evclaim_t claimed;
     208        pos_event_t event;
     209        gfx_rect_t rect;
     210        errno_t rc;
     211
     212        rc = ui_create_disp(NULL, &ui);
     213        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     214
     215        ui_wnd_params_init(&params);
     216        params.caption = "Hello";
     217
     218        rc = ui_window_create(ui, &params, &window);
     219        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     220        PCUT_ASSERT_NOT_NULL(window);
     221
     222        rc = ui_menu_bar_create(ui, window, &mbar);
     223        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     224        PCUT_ASSERT_NOT_NULL(mbar);
     225
     226        rect.p0.x = 0;
     227        rect.p0.y = 0;
     228        rect.p1.x = 50;
     229        rect.p1.y = 25;
     230        ui_menu_bar_set_rect(mbar, &rect);
     231
     232        rc = ui_menu_create(mbar, "Test", &menu);
     233        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     234        PCUT_ASSERT_NOT_NULL(menu);
     235
    188236        event.type = POS_PRESS;
    189237        event.hpos = 4;
     
    209257        ui_menu_bar_t *mbar = NULL;
    210258        ui_menu_t *menu = NULL;
    211         gfx_rect_t rect;
    212259        errno_t rc;
    213260
     
    230277        PCUT_ASSERT_NOT_NULL(menu);
    231278
    232         rect.p0.x = 0;
    233         rect.p0.y = 0;
    234         rect.p1.x = 0;
    235         rect.p1.y = 0;
    236         ui_menu_bar_select(mbar, &rect, menu);
     279        ui_menu_bar_select(mbar, menu, true);
    237280        PCUT_ASSERT_EQUALS(menu, mbar->selected);
    238281
    239282        /* Selecting again should unselect the menu */
    240         ui_menu_bar_select(mbar, &rect, menu);
     283        ui_menu_bar_select(mbar, menu, true);
    241284        PCUT_ASSERT_NULL(mbar->selected);
    242285
     
    255298        ui_menu_t *menu1 = NULL;
    256299        ui_menu_t *menu2 = NULL;
    257         gfx_rect_t rect;
    258300        errno_t rc;
    259301
     
    280322        PCUT_ASSERT_NOT_NULL(menu2);
    281323
    282         rect.p0.x = 0;
    283         rect.p0.y = 0;
    284         rect.p1.x = 0;
    285         rect.p1.y = 0;
    286         ui_menu_bar_select(mbar, &rect, menu1);
     324        ui_menu_bar_select(mbar, menu1, true);
    287325        PCUT_ASSERT_EQUALS(menu1, mbar->selected);
    288326
    289327        /* Selecting different menu should select it */
    290         ui_menu_bar_select(mbar, &rect, menu2);
     328        ui_menu_bar_select(mbar, menu2, true);
    291329        PCUT_ASSERT_EQUALS(menu2, mbar->selected);
    292330
     
    296334}
    297335
     336/** ui_menu_bar_activate() activates/deactivates menu bar */
     337PCUT_TEST(activate_deactivate)
     338{
     339        ui_t *ui = NULL;
     340        ui_window_t *window = NULL;
     341        ui_wnd_params_t params;
     342        ui_menu_bar_t *mbar = NULL;
     343        ui_menu_t *menu = NULL;
     344        errno_t rc;
     345
     346        rc = ui_create_disp(NULL, &ui);
     347        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     348
     349        ui_wnd_params_init(&params);
     350        params.caption = "Hello";
     351
     352        rc = ui_window_create(ui, &params, &window);
     353        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     354        PCUT_ASSERT_NOT_NULL(window);
     355
     356        rc = ui_menu_bar_create(ui, window, &mbar);
     357        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     358        PCUT_ASSERT_NOT_NULL(mbar);
     359
     360        rc = ui_menu_create(mbar, "Test", &menu);
     361        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     362        PCUT_ASSERT_NOT_NULL(menu);
     363
     364        ui_menu_bar_activate(mbar);
     365        PCUT_ASSERT_EQUALS(menu, mbar->selected);
     366
     367        ui_menu_bar_deactivate(mbar);
     368        PCUT_ASSERT_NULL(mbar->selected);
     369
     370        ui_menu_bar_destroy(mbar);
     371        ui_window_destroy(window);
     372        ui_destroy(ui);
     373}
     374
    298375PCUT_EXPORT(menubar);
Note: See TracChangeset for help on using the changeset viewer.