Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/edit/edit.c

    rec50d65e re0cf963  
    11/*
    2  * Copyright (c) 2024 Jiri Svoboda
     2 * Copyright (c) 2021 Jiri Svoboda
    33 * Copyright (c) 2012 Martin Sucha
    44 * All rights reserved.
     
    6060#include <ui/menu.h>
    6161#include <ui/menubar.h>
    62 #include <ui/menudd.h>
    6362#include <ui/menuentry.h>
    6463#include <ui/promptdialog.h>
     
    238237
    239238static void edit_wnd_close(ui_window_t *, void *);
    240 static void edit_wnd_focus(ui_window_t *, void *, unsigned);
    241239static void edit_wnd_kbd_event(ui_window_t *, void *, kbd_event_t *);
    242 static void edit_wnd_unfocus(ui_window_t *, void *, unsigned);
    243240
    244241static ui_window_cb_t edit_window_cb = {
    245242        .close = edit_wnd_close,
    246         .focus = edit_wnd_focus,
    247         .kbd = edit_wnd_kbd_event,
    248         .unfocus = edit_wnd_unfocus
    249 };
    250 
    251 static void edit_menubar_activate(ui_menu_bar_t *, void *);
    252 static void edit_menubar_deactivate(ui_menu_bar_t *, void *);
    253 
    254 static ui_menu_bar_cb_t edit_menubar_cb = {
    255         .activate = edit_menubar_activate,
    256         .deactivate = edit_menubar_deactivate
     243        .kbd = edit_wnd_kbd_event
    257244};
    258245
     
    443430        }
    444431
    445         ui_menu_bar_set_cb(edit->menubar, &edit_menubar_cb, (void *) edit);
    446 
    447         rc = ui_menu_dd_create(edit->menubar, "~F~ile", NULL, &mfile);
     432        rc = ui_menu_create(edit->menubar, "File", &mfile);
    448433        if (rc != EOK) {
    449434                printf("Error creating menu.\n");
     
    451436        }
    452437
    453         rc = ui_menu_entry_create(mfile, "~S~ave", "Ctrl-S", &msave);
     438        rc = ui_menu_entry_create(mfile, "Save", "Ctrl-S", &msave);
    454439        if (rc != EOK) {
    455440                printf("Error creating menu.\n");
     
    459444        ui_menu_entry_set_cb(msave, edit_file_save, (void *) edit);
    460445
    461         rc = ui_menu_entry_create(mfile, "Save ~A~s", "Ctrl-E", &msaveas);
     446        rc = ui_menu_entry_create(mfile, "Save As", "Ctrl-E", &msaveas);
    462447        if (rc != EOK) {
    463448                printf("Error creating menu.\n");
     
    473458        }
    474459
    475         rc = ui_menu_entry_create(mfile, "E~x~it", "Ctrl-Q", &mexit);
     460        rc = ui_menu_entry_create(mfile, "Exit", "Ctrl-Q", &mexit);
    476461        if (rc != EOK) {
    477462                printf("Error creating menu.\n");
     
    481466        ui_menu_entry_set_cb(mexit, edit_file_exit, (void *) edit);
    482467
    483         rc = ui_menu_dd_create(edit->menubar, "~E~dit", NULL, &medit);
     468        rc = ui_menu_create(edit->menubar, "Edit", &medit);
    484469        if (rc != EOK) {
    485470                printf("Error creating menu.\n");
     
    487472        }
    488473
    489         rc = ui_menu_entry_create(medit, "Cu~t~", "Ctrl-X", &mcut);
     474        rc = ui_menu_entry_create(medit, "Cut", "Ctrl-X", &mcut);
    490475        if (rc != EOK) {
    491476                printf("Error creating menu.\n");
     
    495480        ui_menu_entry_set_cb(mcut, edit_edit_cut, (void *) edit);
    496481
    497         rc = ui_menu_entry_create(medit, "~C~opy", "Ctrl-C", &mcopy);
     482        rc = ui_menu_entry_create(medit, "Copy", "Ctrl-C", &mcopy);
    498483        if (rc != EOK) {
    499484                printf("Error creating menu.\n");
     
    503488        ui_menu_entry_set_cb(mcopy, edit_edit_copy, (void *) edit);
    504489
    505         rc = ui_menu_entry_create(medit, "~P~aste", "Ctrl-V", &mpaste);
     490        rc = ui_menu_entry_create(medit, "Paste", "Ctrl-V", &mpaste);
    506491        if (rc != EOK) {
    507492                printf("Error creating menu.\n");
     
    511496        ui_menu_entry_set_cb(mpaste, edit_edit_paste, (void *) edit);
    512497
    513         rc = ui_menu_entry_create(medit, "~D~elete", "Del", &mdelete);
     498        rc = ui_menu_entry_create(medit, "Delete", "Del", &mdelete);
    514499        if (rc != EOK) {
    515500                printf("Error creating menu.\n");
     
    525510        }
    526511
    527         rc = ui_menu_entry_create(medit, "Select ~A~ll", "Ctrl-A", &mselall);
     512        rc = ui_menu_entry_create(medit, "Select All", "Ctrl-A", &mselall);
    528513        if (rc != EOK) {
    529514                printf("Error creating menu.\n");
     
    533518        ui_menu_entry_set_cb(mselall, edit_edit_select_all, (void *) edit);
    534519
    535         rc = ui_menu_dd_create(edit->menubar, "~S~earch", NULL, &msearch);
     520        rc = ui_menu_create(edit->menubar, "Search", &msearch);
    536521        if (rc != EOK) {
    537522                printf("Error creating menu.\n");
     
    539524        }
    540525
    541         rc = ui_menu_entry_create(msearch, "~F~ind", "Ctrl-F", &mfind);
     526        rc = ui_menu_entry_create(msearch, "Find", "Ctrl-F", &mfind);
    542527        if (rc != EOK) {
    543528                printf("Error creating menu.\n");
     
    547532        ui_menu_entry_set_cb(mfind, edit_search_find, (void *) edit);
    548533
    549         rc = ui_menu_entry_create(msearch, "~R~everse Find", "Ctrl-Shift-F", &mfindr);
     534        rc = ui_menu_entry_create(msearch, "Reverse Find", "Ctrl-Shift-F", &mfindr);
    550535        if (rc != EOK) {
    551536                printf("Error creating menu.\n");
     
    555540        ui_menu_entry_set_cb(mfindr, edit_search_reverse_find, (void *) edit);
    556541
    557         rc = ui_menu_entry_create(msearch, "Find ~N~ext", "Ctrl-N", &mfindn);
     542        rc = ui_menu_entry_create(msearch, "Find Next", "Ctrl-N", &mfindn);
    558543        if (rc != EOK) {
    559544                printf("Error creating menu.\n");
     
    569554        }
    570555
    571         rc = ui_menu_entry_create(msearch, "Go To ~L~ine", "Ctrl-L", &mgoto);
     556        rc = ui_menu_entry_create(msearch, "Go To Line", "Ctrl-L", &mgoto);
    572557        if (rc != EOK) {
    573558                printf("Error creating menu.\n");
     
    993978
    994979                bcnt -= off;
    995                 memmove(buf, buf + off, bcnt);
     980                memcpy(buf, buf + off, bcnt);
    996981
    997982                insert_char(c);
     
    12741259
    12751260        gfx_text_fmt_init(&fmt);
    1276         fmt.font = font;
    12771261        fmt.color = pane->color;
    12781262
     
    13341318                                        return rc;
    13351319
    1336                                 rc = gfx_puttext(&tpos, &fmt, cbuf);
     1320                                rc = gfx_puttext(font, &tpos, &fmt, cbuf);
    13371321                                if (rc != EOK)
    13381322                                        return rc;
     
    14241408         */
    14251409        while (true) {
    1426                 int rc = asprintf(&text, "%d, %d (%d): File '%s'. Ctrl-Q Quit  "
    1427                     "F10 Menu", coord.row, coord.column, last_row, fname);
     1410                int rc = asprintf(&text, "%d, %d (%d): File '%s'. Ctrl-Q Quit  Ctrl-S Save  "
     1411                    "Ctrl-E Save As", coord.row, coord.column, last_row, fname);
    14281412                if (rc < 0) {
    14291413                        n = 0;
     
    22352219}
    22362220
    2237 /** Window focus event
    2238  *
    2239  * @param window Window
    2240  * @param arg Argument (edit_t *)
    2241  * @param focus Focus number
    2242  */
    2243 static void edit_wnd_focus(ui_window_t *window, void *arg, unsigned focus)
    2244 {
    2245         edit_t *edit = (edit_t *)arg;
    2246 
    2247         (void)edit;
    2248         pane_caret_display(&pane);
    2249         cursor_setvis(true);
    2250 }
    2251 
    22522221/** Window keyboard event
    22532222 *
     
    22602229{
    22612230        pane.keymod = event->mods;
    2262 
    2263         if (ui_window_def_kbd(window, event) == ui_claimed)
    2264                 return;
    22652231
    22662232        if (event->type == KEY_PRESS) {
     
    22712237}
    22722238
    2273 /** Window unfocus event
    2274  *
    2275  * @param window Window
    2276  * @param arg Argument (edit_t *)
    2277  * @param focus Focus number
    2278  */
    2279 static void edit_wnd_unfocus(ui_window_t *window, void *arg, unsigned focus)
    2280 {
    2281         edit_t *edit = (edit_t *) arg;
    2282 
    2283         (void)edit;
    2284         cursor_setvis(false);
    2285 }
    2286 
    2287 /** Menu bar activate event
    2288  *
    2289  * @param mbar Menu bar
    2290  * @param arg Argument (edit_t *)
    2291  */
    2292 static void edit_menubar_activate(ui_menu_bar_t *mbar, void *arg)
    2293 {
    2294         edit_t *edit = (edit_t *)arg;
    2295 
    2296         (void)edit;
    2297         cursor_setvis(false);
    2298 }
    2299 
    2300 /** Menu bar deactivate event
    2301  *
    2302  * @param mbar Menu bar
    2303  * @param arg Argument (edit_t *)
    2304  */
    2305 static void edit_menubar_deactivate(ui_menu_bar_t *mbar, void *arg)
    2306 {
    2307         edit_t *edit = (edit_t *)arg;
    2308 
    2309         (void)edit;
    2310         pane_caret_display(&pane);
    2311         cursor_setvis(true);
    2312 }
    2313 
    23142239/** File / Save menu entry selected.
    23152240 *
     
    24772402{
    24782403        edit_t *edit = (edit_t *)arg;
     2404        gfx_context_t *gc = ui_window_get_gc(edit->window);
    24792405        char *cname;
    24802406        errno_t rc;
    24812407
    2482         (void)edit;
    24832408        ui_file_dialog_destroy(dialog);
     2409        // TODO Smarter cursor management
     2410        pane.rflags |= REDRAW_CARET;
     2411        (void) pane_update(&pane);
     2412        gfx_cursor_set_visible(gc, true);
    24842413
    24852414        cname = str_dup(fname);
     
    25072436{
    25082437        edit_t *edit = (edit_t *)arg;
    2509 
    2510         (void)edit;
     2438        gfx_context_t *gc = ui_window_get_gc(edit->window);
     2439
    25112440        ui_file_dialog_destroy(dialog);
     2441        // TODO Smarter cursor management
     2442        pane.rflags |= REDRAW_CARET;
     2443        (void) pane_update(&pane);
     2444        gfx_cursor_set_visible(gc, true);
    25122445}
    25132446
     
    25202453{
    25212454        edit_t *edit = (edit_t *)arg;
    2522 
    2523         (void)edit;
     2455        gfx_context_t *gc = ui_window_get_gc(edit->window);
     2456
    25242457        ui_file_dialog_destroy(dialog);
     2458        // TODO Smarter cursor management
     2459        pane.rflags |= REDRAW_CARET;
     2460        (void) pane_update(&pane);
     2461        gfx_cursor_set_visible(gc, true);
    25252462}
    25262463
     
    25352472{
    25362473        edit_t *edit = (edit_t *) arg;
     2474        gfx_context_t *gc = ui_window_get_gc(edit->window);
    25372475        char *endptr;
    25382476        int line;
     
    25462484
    25472485        caret_move_absolute(line, pane.ideal_column, dir_before, false);
    2548         (void)edit;
     2486        // TODO Smarter cursor management
    25492487        (void) pane_update(&pane);
     2488        gfx_cursor_set_visible(gc, true);
     2489        (void) gfx_update(gc);
    25502490}
    25512491
     
    25582498{
    25592499        edit_t *edit = (edit_t *) arg;
    2560 
    2561         (void)edit;
     2500        gfx_context_t *gc = ui_window_get_gc(edit->window);
     2501
    25622502        ui_prompt_dialog_destroy(dialog);
     2503        // TODO Smarter cursor management
     2504        pane.rflags |= REDRAW_CARET;
     2505        (void) pane_update(&pane);
     2506        gfx_cursor_set_visible(gc, true);
    25632507}
    25642508
     
    25712515{
    25722516        edit_t *edit = (edit_t *) arg;
    2573 
    2574         (void)edit;
     2517        gfx_context_t *gc = ui_window_get_gc(edit->window);
     2518
    25752519        ui_prompt_dialog_destroy(dialog);
     2520        // TODO Smarter cursor management
     2521        pane.rflags |= REDRAW_CARET;
     2522        (void) pane_update(&pane);
     2523        gfx_cursor_set_visible(gc, true);
    25762524}
    25772525
     
    25862534{
    25872535        edit_t *edit = (edit_t *) arg;
     2536        gfx_context_t *gc = ui_window_get_gc(edit->window);
    25882537        char *pattern;
    25892538        bool reverse;
    25902539
    2591         (void)edit;
    25922540        ui_prompt_dialog_destroy(dialog);
    25932541
     
    26062554        search(pattern, reverse);
    26072555
     2556        // TODO Smarter cursor management
    26082557        (void) pane_update(&pane);
     2558        gfx_cursor_set_visible(gc, true);
     2559        (void) gfx_update(gc);
    26092560}
    26102561
     
    26172568{
    26182569        edit_t *edit = (edit_t *) arg;
    2619 
    2620         (void)edit;
     2570        gfx_context_t *gc = ui_window_get_gc(edit->window);
     2571
    26212572        ui_prompt_dialog_destroy(dialog);
     2573        // TODO Smarter cursor management
     2574        pane.rflags |= REDRAW_CARET;
     2575        (void) pane_update(&pane);
     2576        gfx_cursor_set_visible(gc, true);
    26222577}
    26232578
     
    26302585{
    26312586        edit_t *edit = (edit_t *) arg;
    2632 
    2633         (void)edit;
     2587        gfx_context_t *gc = ui_window_get_gc(edit->window);
     2588
    26342589        ui_prompt_dialog_destroy(dialog);
     2590        // TODO Smarter cursor management
     2591        pane.rflags |= REDRAW_CARET;
     2592        (void) pane_update(&pane);
     2593        gfx_cursor_set_visible(gc, true);
    26352594}
    26362595
Note: See TracChangeset for help on using the changeset viewer.