Ignore:
File:
1 edited

Legend:

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

    raccdf882 rf6304727  
    11/*
    2  * Copyright (c) 2025 Jiri Svoboda
     2 * Copyright (c) 2026 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;
    5658        ui_menu_entry_t *mopen;
    5759        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;
    5865        ui_menu_entry_t *mfsep;
    5966        ui_menu_entry_t *mexit;
    60         gfx_rect_t arect;
    61         gfx_rect_t rect;
    6267        errno_t rc;
    6368
     
    7883                goto error;
    7984
     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
    8097        rc = ui_menu_entry_create(mfile, "~O~pen", "Enter", &mopen);
    8198        if (rc != EOK)
     
    90107        ui_menu_entry_set_cb(medit, nav_menu_file_edit, (void *) menu);
    91108
     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
    92139        rc = ui_menu_entry_sep_create(mfile, &mfsep);
    93140        if (rc != EOK)
     
    99146
    100147        ui_menu_entry_set_cb(mexit, nav_menu_file_exit, (void *) menu);
    101 
    102         ui_window_get_app_rect(menu->window, &arect);
    103 
    104         rect.p0 = arect.p0;
    105         rect.p1.x = arect.p1.x;
    106         rect.p1.y = arect.p0.y + 1;
    107         ui_menu_bar_set_rect(menu->menubar, &rect);
     148        nav_menu_resize(menu);
    108149
    109150        *rmenu = menu;
     
    114155}
    115156
     157/** Resize navigator menu.
     158 *
     159 * @param menu Menu
     160 */
     161void nav_menu_resize(nav_menu_t *menu)
     162{
     163        gfx_rect_t arect;
     164        gfx_rect_t rect;
     165
     166        ui_window_get_app_rect(menu->window, &arect);
     167
     168        rect.p0 = arect.p0;
     169        rect.p1.x = arect.p1.x;
     170        rect.p1.y = arect.p0.y + 1;
     171        ui_menu_bar_set_rect(menu->menubar, &rect);
     172}
     173
    116174/** Set navigator menu callbacks.
    117175 *
     
    148206}
    149207
     208/** File / New File menu entry selected.
     209 *
     210 * @param mentry Menu entry
     211 * @param arg Argument (navigator_t *)
     212 */
     213void 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 */
     226void 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
    150234/** File / Open menu entry selected.
    151235 *
     
    174258}
    175259
     260/** File / Verify menu entry selected.
     261 *
     262 * @param mentry Menu entry
     263 * @param arg Argument (navigator_t *)
     264 */
     265void 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 */
     278void 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 */
     291void 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 */
     304void 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 */
     317void 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
    176325/** File / Exit menu entry selected.
    177326 *
Note: See TracChangeset for help on using the changeset viewer.