Changeset cd0dce3 in mainline for uspace/app


Ignore:
Timestamp:
2026-02-11T23:17:49Z (5 weeks ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
master
Children:
00d26202
Parents:
f9c30b9a
Message:

Create new directory (Navigator + command line utility).

Location:
uspace/app
Files:
10 added
6 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/meson.build

    rf9c30b9a rcd0dce3  
    7272        'nav',
    7373        'netecho',
     74        'newdir',
    7475        'newfile',
    7576        'nic',
  • uspace/app/nav/menu.c

    rf9c30b9a rcd0dce3  
    5555        ui_menu_t *mfile;
    5656        ui_menu_entry_t *mnew;
     57        ui_menu_entry_t *mnewdir;
    5758        ui_menu_entry_t *mopen;
    5859        ui_menu_entry_t *medit;
     
    8889        ui_menu_entry_set_cb(mnew, nav_menu_file_new_file, (void *) menu);
    8990
     91        rc = ui_menu_entry_create(mfile, "New Di~r~ectory", "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
    9097        rc = ui_menu_entry_create(mfile, "~O~pen", "Enter", &mopen);
    9198        if (rc != EOK)
     
    189196}
    190197
     198/** File / New Directory menu entry selected.
     199 *
     200 * @param mentry Menu entry
     201 * @param arg Argument (navigator_t *)
     202 */
     203void nav_menu_file_new_dir(ui_menu_entry_t *mentry, void *arg)
     204{
     205        nav_menu_t *menu = (nav_menu_t *)arg;
     206
     207        if (menu->cb != NULL && menu->cb->file_new_dir != NULL)
     208                menu->cb->file_new_dir(menu->cb_arg);
     209}
     210
    191211/** File / Open menu entry selected.
    192212 *
  • uspace/app/nav/menu.h

    rf9c30b9a rcd0dce3  
    4646extern void nav_menu_destroy(nav_menu_t *);
    4747extern ui_control_t *nav_menu_ctl(nav_menu_t *);
     48extern void nav_menu_file_new_dir(ui_menu_entry_t *, void *);
    4849extern void nav_menu_file_new_file(ui_menu_entry_t *, void *);
    4950extern void nav_menu_file_open(ui_menu_entry_t *, void *);
  • uspace/app/nav/meson.build

    rf9c30b9a rcd0dce3  
    3333        'dlg/ioerrdlg.c',
    3434        'dlg/movedlg.c',
     35        'dlg/newdirdlg.c',
    3536        'dlg/newfiledlg.c',
    3637        'dlg/progress.c',
     
    4142        'move.c',
    4243        'nav.c',
     44        'newdir.c',
    4345        'newfile.c',
    4446        'panel.c',
     
    5153        'dlg/ioerrdlg.c',
    5254        'dlg/movedlg.c',
     55        'dlg/newdirdlg.c',
    5356        'dlg/newfiledlg.c',
    5457        'dlg/progress.c',
     
    5861        'move.c',
    5962        'nav.c',
     63        'newdir.c',
    6064        'newfile.c',
    6165        'panel.c',
     
    6569        'test/dlg/ioerrdlg.c',
    6670        'test/dlg/movedlg.c',
     71        'test/dlg/newdirdlg.c',
    6772        'test/dlg/newfiledlg.c',
    6873        'test/dlg/progress.c',
  • uspace/app/nav/nav.c

    rf9c30b9a rcd0dce3  
    5353#include "menu.h"
    5454#include "move.h"
     55#include "newdir.h"
    5556#include "newfile.h"
    5657#include "nav.h"
     
    6970
    7071static void navigator_file_new_file(void *);
     72static void navigator_file_new_dir(void *);
    7173static void navigator_file_open(void *);
    7274static void navigator_file_edit(void *);
     
    7880static nav_menu_cb_t navigator_menu_cb = {
    7981        .file_new_file = navigator_file_new_file,
     82        .file_new_dir = navigator_file_new_dir,
    8083        .file_open = navigator_file_open,
    8184        .file_edit = navigator_file_edit,
     
    153156                case KC_M:
    154157                        navigator_new_file_dlg(navigator);
     158                        break;
     159                case KC_N:
     160                        navigator_new_dir_dlg(navigator);
    155161                        break;
    156162                case KC_E:
     
    448454}
    449455
     456/** File / New Directory menu entry selected */
     457static void navigator_file_new_dir(void *arg)
     458{
     459        navigator_t *navigator = (navigator_t *)arg;
     460
     461        navigator_new_dir_dlg(navigator);
     462}
     463
    450464/** File / Open menu entry selected */
    451465static void navigator_file_open(void *arg)
  • uspace/app/nav/types/menu.h

    rf9c30b9a rcd0dce3  
    4545        /** File / New File */
    4646        void (*file_new_file)(void *);
     47        /** File / New Directory */
     48        void (*file_new_dir)(void *);
    4749        /** File / Open */
    4850        void (*file_open)(void *);
Note: See TracChangeset for help on using the changeset viewer.