Changeset f59212cc in mainline for uspace/app/nav/menu.c


Ignore:
Timestamp:
2021-10-25T00:32:45Z (2 years ago)
Author:
jxsvoboda <5887334+jxsvoboda@…>
Branches:
master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
c632c96
Parents:
5bbb4453
git-author:
Jiri Svoboda <jiri@…> (2021-10-19 20:54:17)
git-committer:
jxsvoboda <5887334+jxsvoboda@…> (2021-10-25 00:32:45)
Message:

Add File / Open, properly deliver menu events to Navigator

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/nav/menu.c

    r5bbb4453 rf59212cc  
    4343#include "nav.h"
    4444
    45 static void nav_file_exit(ui_menu_entry_t *, void *);
    46 
    4745/** Create navigator menu.
    4846 *
     
    5553        nav_menu_t *menu;
    5654        ui_menu_t *mfile;
     55        ui_menu_entry_t *mopen;
     56        ui_menu_entry_t *mfsep;
    5757        ui_menu_entry_t *mexit;
    5858        gfx_rect_t arect;
     
    7676                goto error;
    7777
     78        rc = ui_menu_entry_create(mfile, "Open", "Enter", &mopen);
     79        if (rc != EOK)
     80                goto error;
     81
     82        ui_menu_entry_set_cb(mopen, nav_menu_file_open, (void *) menu);
     83
     84        rc = ui_menu_entry_sep_create(mfile, &mfsep);
     85        if (rc != EOK)
     86                goto error;
     87
    7888        rc = ui_menu_entry_create(mfile, "Exit", "Ctrl-Q", &mexit);
    7989        if (rc != EOK)
    8090                goto error;
    8191
    82         ui_menu_entry_set_cb(mexit, nav_file_exit, (void *) menu);
     92        ui_menu_entry_set_cb(mexit, nav_menu_file_exit, (void *) menu);
    8393
    8494        ui_window_get_app_rect(menu->window, &arect);
     
    94104        nav_menu_destroy(menu);
    95105        return rc;
     106}
     107
     108/** Set navigator menu callbacks.
     109 *
     110 * @param menu Menu
     111 * @param cb Callbacks
     112 * @param arg Argument to callback functions
     113 */
     114void nav_menu_set_cb(nav_menu_t *menu, nav_menu_cb_t *cb, void *arg)
     115{
     116        menu->cb = cb;
     117        menu->cb_arg = arg;
    96118}
    97119
     
    118140}
    119141
     142/** File / Open menu entry selected.
     143 *
     144 * @param mentry Menu entry
     145 * @param arg Argument (navigator_t *)
     146 */
     147void nav_menu_file_open(ui_menu_entry_t *mentry, void *arg)
     148{
     149        nav_menu_t *menu = (nav_menu_t *)arg;
     150
     151        if (menu->cb != NULL && menu->cb->file_open != NULL)
     152                menu->cb->file_open(menu->cb_arg);
     153}
     154
    120155/** File / Exit menu entry selected.
    121156 *
     
    123158 * @param arg Argument (navigator_t *)
    124159 */
    125 static void nav_file_exit(ui_menu_entry_t *mentry, void *arg)
     160void nav_menu_file_exit(ui_menu_entry_t *mentry, void *arg)
    126161{
    127         navigator_t *navigator = (navigator_t *) arg;
     162        nav_menu_t *menu = (nav_menu_t *)arg;
    128163
    129         ui_quit(navigator->ui);
     164        if (menu->cb != NULL && menu->cb->file_exit != NULL)
     165                menu->cb->file_exit(menu->cb_arg);
    130166}
    131167
Note: See TracChangeset for help on using the changeset viewer.