Changeset 8d1bcd7 in mainline for uspace/lib/ui/test/menubar.c


Ignore:
Timestamp:
2023-09-26T20:26:55Z (8 months ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
master, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
5afc1aa
Parents:
ed1a948
Message:

Handover between system menu and menu bar

We can move between them using Left and Right keys in either closed
or open state. One can now open system menu with F10, Left, Down in
a window with menu bar, or just F10 in a window without menu bar.

File:
1 edited

Legend:

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

    red1a948 r8d1bcd7  
    3737#include <ui/window.h>
    3838#include "../private/menubar.h"
     39#include "../private/wdecor.h"
     40#include "../private/window.h"
    3941
    4042PCUT_INIT;
     
    4547PCUT_TEST(create_destroy)
    4648{
    47         ui_menu_bar_t *mbar = NULL;
    48         errno_t rc;
    49 
    50         rc = ui_menu_bar_create(NULL, NULL, &mbar);
    51         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    52         PCUT_ASSERT_NOT_NULL(mbar);
    53 
    54         ui_menu_bar_destroy(mbar);
     49        ui_t *ui = NULL;
     50        ui_window_t *window = NULL;
     51        ui_wnd_params_t params;
     52        ui_menu_bar_t *mbar = NULL;
     53        errno_t rc;
     54
     55        rc = ui_create_disp(NULL, &ui);
     56        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     57
     58        ui_wnd_params_init(&params);
     59        params.caption = "Hello";
     60
     61        rc = ui_window_create(ui, &params, &window);
     62        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     63        PCUT_ASSERT_NOT_NULL(window);
     64
     65        rc = ui_menu_bar_create(ui, window, &mbar);
     66        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     67        PCUT_ASSERT_NOT_NULL(mbar);
     68
     69        ui_menu_bar_destroy(mbar);
     70        ui_window_destroy(window);
     71        ui_destroy(ui);
    5572}
    5673
     
    6481PCUT_TEST(ctl)
    6582{
     83        ui_t *ui = NULL;
     84        ui_window_t *window = NULL;
     85        ui_wnd_params_t params;
    6686        ui_menu_bar_t *mbar = NULL;
    6787        ui_control_t *control;
    6888        errno_t rc;
    6989
    70         rc = ui_menu_bar_create(NULL, NULL, &mbar);
     90        rc = ui_create_disp(NULL, &ui);
     91        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     92
     93        ui_wnd_params_init(&params);
     94        params.caption = "Hello";
     95
     96        rc = ui_window_create(ui, &params, &window);
     97        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     98        PCUT_ASSERT_NOT_NULL(window);
     99
     100        rc = ui_menu_bar_create(ui, window, &mbar);
    71101        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    72102        PCUT_ASSERT_NOT_NULL(mbar);
     
    76106
    77107        ui_control_destroy(control);
     108        ui_window_destroy(window);
     109        ui_destroy(ui);
    78110}
    79111
     
    344376}
    345377
     378/** ui_menu_bar_select_first/last() selects first/last drop-down */
     379PCUT_TEST(select_first_last)
     380{
     381        ui_t *ui = NULL;
     382        ui_window_t *window = NULL;
     383        ui_wnd_params_t params;
     384        ui_menu_bar_t *mbar = NULL;
     385        ui_menu_dd_t *mdd1 = NULL;
     386        ui_menu_dd_t *mdd2 = NULL;
     387        errno_t rc;
     388
     389        rc = ui_create_disp(NULL, &ui);
     390        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     391
     392        ui_wnd_params_init(&params);
     393        params.caption = "Hello";
     394
     395        rc = ui_window_create(ui, &params, &window);
     396        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     397        PCUT_ASSERT_NOT_NULL(window);
     398
     399        rc = ui_menu_bar_create(ui, window, &mbar);
     400        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     401        PCUT_ASSERT_NOT_NULL(mbar);
     402
     403        rc = ui_menu_dd_create(mbar, "Test 1", &mdd1, NULL);
     404        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     405        PCUT_ASSERT_NOT_NULL(mdd1);
     406
     407        rc = ui_menu_dd_create(mbar, "Test 2", &mdd2, NULL);
     408        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     409        PCUT_ASSERT_NOT_NULL(mdd2);
     410
     411        ui_menu_bar_select_first(mbar, true, 0);
     412        PCUT_ASSERT_EQUALS(mdd1, mbar->selected);
     413
     414        ui_menu_bar_select_last(mbar, true, 0);
     415        PCUT_ASSERT_EQUALS(mdd2, mbar->selected);
     416
     417        ui_menu_bar_destroy(mbar);
     418        ui_window_destroy(window);
     419        ui_destroy(ui);
     420}
     421
     422/** ui_menu_bar_select_sysmenu() activates system menu */
     423PCUT_TEST(select_sysmenu)
     424{
     425        ui_t *ui = NULL;
     426        ui_window_t *window = NULL;
     427        ui_wnd_params_t params;
     428        ui_menu_bar_t *mbar = NULL;
     429        ui_menu_dd_t *mdd1 = NULL;
     430        ui_menu_dd_t *mdd2 = NULL;
     431        errno_t rc;
     432
     433        rc = ui_create_disp(NULL, &ui);
     434        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     435
     436        ui_wnd_params_init(&params);
     437        params.caption = "Hello";
     438
     439        rc = ui_window_create(ui, &params, &window);
     440        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     441        PCUT_ASSERT_NOT_NULL(window);
     442
     443        rc = ui_menu_bar_create(ui, window, &mbar);
     444        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     445        PCUT_ASSERT_NOT_NULL(mbar);
     446
     447        rc = ui_menu_dd_create(mbar, "Test 1", &mdd1, NULL);
     448        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     449        PCUT_ASSERT_NOT_NULL(mdd1);
     450
     451        rc = ui_menu_dd_create(mbar, "Test 2", &mdd2, NULL);
     452        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     453        PCUT_ASSERT_NOT_NULL(mdd2);
     454
     455        ui_menu_bar_select_sysmenu(mbar, 0);
     456        PCUT_ASSERT_TRUE(window->wdecor->sysmenu_hdl_active);
     457
     458        ui_menu_bar_destroy(mbar);
     459        ui_window_destroy(window);
     460        ui_destroy(ui);
     461}
     462
    346463/** ui_menu_bar_activate() activates/deactivates menu bar */
    347464PCUT_TEST(activate_deactivate)
Note: See TracChangeset for help on using the changeset viewer.