Ignore:
File:
1 edited

Legend:

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

    rf6304727 raccdf882  
    11/*
    2  * Copyright (c) 2026 Jiri Svoboda
     2 * Copyright (c) 2025 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    5454        nav_menu_t *menu;
    5555        ui_menu_t *mfile;
    56         ui_menu_entry_t *mnew;
    57         ui_menu_entry_t *mnewdir;
    5856        ui_menu_entry_t *mopen;
    5957        ui_menu_entry_t *medit;
    60         ui_menu_entry_t *mverify;
    61         ui_menu_entry_t *mcopy;
    62         ui_menu_entry_t *mrename;
    63         ui_menu_entry_t *mmove;
    64         ui_menu_entry_t *mdelete;
    6558        ui_menu_entry_t *mfsep;
    6659        ui_menu_entry_t *mexit;
     60        gfx_rect_t arect;
     61        gfx_rect_t rect;
    6762        errno_t rc;
    6863
     
    8378                goto error;
    8479
    85         rc = ui_menu_entry_create(mfile, "~N~ew File", "Ctrl-M", &mnew);
    86         if (rc != EOK)
    87                 goto error;
    88 
    89         ui_menu_entry_set_cb(mnew, nav_menu_file_new_file, (void *) menu);
    90 
    91         rc = ui_menu_entry_create(mfile, "New D~i~rectory", "Ctrl-N", &mnewdir);
    92         if (rc != EOK)
    93                 goto error;
    94 
    95         ui_menu_entry_set_cb(mnewdir, nav_menu_file_new_dir, (void *) menu);
    96 
    9780        rc = ui_menu_entry_create(mfile, "~O~pen", "Enter", &mopen);
    9881        if (rc != EOK)
     
    10790        ui_menu_entry_set_cb(medit, nav_menu_file_edit, (void *) menu);
    10891
    109         rc = ui_menu_entry_create(mfile, "~V~erify", "Ctrl-V", &mverify);
    110         if (rc != EOK)
    111                 goto error;
    112 
    113         ui_menu_entry_set_cb(mverify, nav_menu_file_verify, (void *) menu);
    114 
    115         rc = ui_menu_entry_create(mfile, "~C~opy", "Ctrl-C", &mcopy);
    116         if (rc != EOK)
    117                 goto error;
    118 
    119         ui_menu_entry_set_cb(mcopy, nav_menu_file_copy, (void *) menu);
    120 
    121         rc = ui_menu_entry_create(mfile, "~R~ename", "Ctrl-R", &mrename);
    122         if (rc != EOK)
    123                 goto error;
    124 
    125         ui_menu_entry_set_cb(mrename, nav_menu_file_rename, (void *) menu);
    126 
    127         rc = ui_menu_entry_create(mfile, "~M~ove", "Ctrl-X", &mmove);
    128         if (rc != EOK)
    129                 goto error;
    130 
    131         ui_menu_entry_set_cb(mmove, nav_menu_file_move, (void *) menu);
    132 
    133         rc = ui_menu_entry_create(mfile, "~D~elete", "Ctrl-D", &mdelete);
    134         if (rc != EOK)
    135                 goto error;
    136 
    137         ui_menu_entry_set_cb(mdelete, nav_menu_file_delete, (void *) menu);
    138 
    13992        rc = ui_menu_entry_sep_create(mfile, &mfsep);
    14093        if (rc != EOK)
     
    14699
    147100        ui_menu_entry_set_cb(mexit, nav_menu_file_exit, (void *) menu);
    148         nav_menu_resize(menu);
    149 
    150         *rmenu = menu;
    151         return EOK;
    152 error:
    153         nav_menu_destroy(menu);
    154         return rc;
    155 }
    156 
    157 /** Resize navigator menu.
    158  *
    159  * @param menu Menu
    160  */
    161 void nav_menu_resize(nav_menu_t *menu)
    162 {
    163         gfx_rect_t arect;
    164         gfx_rect_t rect;
    165101
    166102        ui_window_get_app_rect(menu->window, &arect);
     
    170106        rect.p1.y = arect.p0.y + 1;
    171107        ui_menu_bar_set_rect(menu->menubar, &rect);
     108
     109        *rmenu = menu;
     110        return EOK;
     111error:
     112        nav_menu_destroy(menu);
     113        return rc;
    172114}
    173115
     
    206148}
    207149
    208 /** File / New File menu entry selected.
    209  *
    210  * @param mentry Menu entry
    211  * @param arg Argument (navigator_t *)
    212  */
    213 void nav_menu_file_new_file(ui_menu_entry_t *mentry, void *arg)
    214 {
    215         nav_menu_t *menu = (nav_menu_t *)arg;
    216 
    217         if (menu->cb != NULL && menu->cb->file_new_file != NULL)
    218                 menu->cb->file_new_file(menu->cb_arg);
    219 }
    220 
    221 /** File / New Directory menu entry selected.
    222  *
    223  * @param mentry Menu entry
    224  * @param arg Argument (navigator_t *)
    225  */
    226 void nav_menu_file_new_dir(ui_menu_entry_t *mentry, void *arg)
    227 {
    228         nav_menu_t *menu = (nav_menu_t *)arg;
    229 
    230         if (menu->cb != NULL && menu->cb->file_new_dir != NULL)
    231                 menu->cb->file_new_dir(menu->cb_arg);
    232 }
    233 
    234150/** File / Open menu entry selected.
    235151 *
     
    258174}
    259175
    260 /** File / Verify menu entry selected.
    261  *
    262  * @param mentry Menu entry
    263  * @param arg Argument (navigator_t *)
    264  */
    265 void nav_menu_file_verify(ui_menu_entry_t *mentry, void *arg)
    266 {
    267         nav_menu_t *menu = (nav_menu_t *)arg;
    268 
    269         if (menu->cb != NULL && menu->cb->file_verify != NULL)
    270                 menu->cb->file_verify(menu->cb_arg);
    271 }
    272 
    273 /** File / Copy menu entry selected.
    274  *
    275  * @param mentry Menu entry
    276  * @param arg Argument (navigator_t *)
    277  */
    278 void nav_menu_file_copy(ui_menu_entry_t *mentry, void *arg)
    279 {
    280         nav_menu_t *menu = (nav_menu_t *)arg;
    281 
    282         if (menu->cb != NULL && menu->cb->file_copy != NULL)
    283                 menu->cb->file_copy(menu->cb_arg);
    284 }
    285 
    286 /** File / Rename menu entry selected.
    287  *
    288  * @param mentry Menu entry
    289  * @param arg Argument (navigator_t *)
    290  */
    291 void nav_menu_file_rename(ui_menu_entry_t *mentry, void *arg)
    292 {
    293         nav_menu_t *menu = (nav_menu_t *)arg;
    294 
    295         if (menu->cb != NULL && menu->cb->file_rename != NULL)
    296                 menu->cb->file_rename(menu->cb_arg);
    297 }
    298 
    299 /** File / Move menu entry selected.
    300  *
    301  * @param mentry Menu entry
    302  * @param arg Argument (navigator_t *)
    303  */
    304 void nav_menu_file_move(ui_menu_entry_t *mentry, void *arg)
    305 {
    306         nav_menu_t *menu = (nav_menu_t *)arg;
    307 
    308         if (menu->cb != NULL && menu->cb->file_move != NULL)
    309                 menu->cb->file_move(menu->cb_arg);
    310 }
    311 
    312 /** File / Delete menu entry selected.
    313  *
    314  * @param mentry Menu entry
    315  * @param arg Argument (navigator_t *)
    316  */
    317 void nav_menu_file_delete(ui_menu_entry_t *mentry, void *arg)
    318 {
    319         nav_menu_t *menu = (nav_menu_t *)arg;
    320 
    321         if (menu->cb != NULL && menu->cb->file_delete != NULL)
    322                 menu->cb->file_delete(menu->cb_arg);
    323 }
    324 
    325176/** File / Exit menu entry selected.
    326177 *
Note: See TracChangeset for help on using the changeset viewer.