Fork us on GitHub Follow us on Facebook Follow us on Twitter

Changeset 448c448 in mainline


Ignore:
Timestamp:
2021-09-27T17:16:37Z (4 weeks ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
master
Children:
a7a8f599
Parents:
a330f2e
git-author:
Jiri Svoboda <jiri@…> (2021-09-27 17:08:05)
git-committer:
Jiri Svoboda <jiri@…> (2021-09-27 17:16:37)
Message:

Add menu entry equivalents to hot keys for editor actions

File:
1 edited

Legend:

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

    ra330f2e r448c448  
    210210static void selection_delete(void);
    211211static void selection_copy(void);
     212static void edit_cut(void);
     213static void edit_paste(void);
    212214static void insert_clipboard_data(void);
    213215
     
    242244};
    243245
     246static void edit_file_save(ui_menu_entry_t *, void *);
     247static void edit_file_save_as(ui_menu_entry_t *, void *);
    244248static void edit_file_exit(ui_menu_entry_t *, void *);
     249static void edit_edit_cut(ui_menu_entry_t *, void *);
    245250static void edit_edit_copy(ui_menu_entry_t *, void *);
    246251static void edit_edit_paste(ui_menu_entry_t *, void *);
     252static void edit_edit_delete(ui_menu_entry_t *, void *);
     253static void edit_edit_select_all(ui_menu_entry_t *, void *);
     254static void edit_search_find(ui_menu_entry_t *, void *);
     255static void edit_search_reverse_find(ui_menu_entry_t *, void *);
     256static void edit_search_find_next(ui_menu_entry_t *, void *);
     257static void edit_search_go_to_line(ui_menu_entry_t *, void *);
    247258
    248259static void pane_ctl_destroy(void *);
     
    368379        ui_menu_t *mfile = NULL;
    369380        ui_menu_t *medit = NULL;
     381        ui_menu_entry_t *msave = NULL;
     382        ui_menu_entry_t *msaveas = NULL;
     383        ui_menu_entry_t *mfsep = NULL;
    370384        ui_menu_entry_t *mexit = NULL;
     385        ui_menu_entry_t *mcut = NULL;
    371386        ui_menu_entry_t *mcopy = NULL;
    372387        ui_menu_entry_t *mpaste = NULL;
     388        ui_menu_entry_t *mdelete = NULL;
     389        ui_menu_entry_t *mesep = NULL;
     390        ui_menu_entry_t *mselall = NULL;
     391        ui_menu_t *msearch = NULL;
     392        ui_menu_entry_t *mfind = NULL;
     393        ui_menu_entry_t *mfindr = NULL;
     394        ui_menu_entry_t *mfindn = NULL;
     395        ui_menu_entry_t *mssep = NULL;
     396        ui_menu_entry_t *mgoto = NULL;
    373397        gfx_rect_t arect;
    374398        gfx_rect_t rect;
     
    414438        }
    415439
    416         rc = ui_menu_entry_create(mfile, "Exit", "Alt-F4", &mexit);
     440        rc = ui_menu_entry_create(mfile, "Save", "Ctrl-S", &msave);
    417441        if (rc != EOK) {
    418442                printf("Error creating menu.\n");
     
    420444        }
    421445
     446        ui_menu_entry_set_cb(msave, edit_file_save, (void *) edit);
     447
     448        rc = ui_menu_entry_create(mfile, "Save As", "Ctrl-E", &msaveas);
     449        if (rc != EOK) {
     450                printf("Error creating menu.\n");
     451                return rc;
     452        }
     453
     454        ui_menu_entry_set_cb(msaveas, edit_file_save_as, (void *) edit);
     455
     456        rc = ui_menu_entry_sep_create(mfile, &mfsep);
     457        if (rc != EOK) {
     458                printf("Error creating menu.\n");
     459                return rc;
     460        }
     461
     462        rc = ui_menu_entry_create(mfile, "Exit", "Ctrl-Q", &mexit);
     463        if (rc != EOK) {
     464                printf("Error creating menu.\n");
     465                return rc;
     466        }
     467
    422468        ui_menu_entry_set_cb(mexit, edit_file_exit, (void *) edit);
    423469
     
    428474        }
    429475
     476        rc = ui_menu_entry_create(medit, "Cut", "Ctrl-X", &mcut);
     477        if (rc != EOK) {
     478                printf("Error creating menu.\n");
     479                return rc;
     480        }
     481
     482        ui_menu_entry_set_cb(mcut, edit_edit_cut, (void *) edit);
     483
    430484        rc = ui_menu_entry_create(medit, "Copy", "Ctrl-C", &mcopy);
    431485        if (rc != EOK) {
     
    443497
    444498        ui_menu_entry_set_cb(mpaste, edit_edit_paste, (void *) edit);
     499
     500        rc = ui_menu_entry_create(medit, "Delete", "Del", &mdelete);
     501        if (rc != EOK) {
     502                printf("Error creating menu.\n");
     503                return rc;
     504        }
     505
     506        ui_menu_entry_set_cb(mdelete, edit_edit_delete, (void *) edit);
     507
     508        rc = ui_menu_entry_sep_create(medit, &mesep);
     509        if (rc != EOK) {
     510                printf("Error creating menu.\n");
     511                return rc;
     512        }
     513
     514        rc = ui_menu_entry_create(medit, "Select All", "Ctrl-A", &mselall);
     515        if (rc != EOK) {
     516                printf("Error creating menu.\n");
     517                return rc;
     518        }
     519
     520        ui_menu_entry_set_cb(mselall, edit_edit_select_all, (void *) edit);
     521
     522        rc = ui_menu_create(edit->menubar, "Search", &msearch);
     523        if (rc != EOK) {
     524                printf("Error creating menu.\n");
     525                return rc;
     526        }
     527
     528        rc = ui_menu_entry_create(msearch, "Find", "Ctrl-F", &mfind);
     529        if (rc != EOK) {
     530                printf("Error creating menu.\n");
     531                return rc;
     532        }
     533
     534        ui_menu_entry_set_cb(mfind, edit_search_find, (void *) edit);
     535
     536        rc = ui_menu_entry_create(msearch, "Reverse Find", "Ctrl-Shift-F", &mfindr);
     537        if (rc != EOK) {
     538                printf("Error creating menu.\n");
     539                return rc;
     540        }
     541
     542        ui_menu_entry_set_cb(mfindr, edit_search_reverse_find, (void *) edit);
     543
     544        rc = ui_menu_entry_create(msearch, "Find Next", "Ctrl-N", &mfindn);
     545        if (rc != EOK) {
     546                printf("Error creating menu.\n");
     547                return rc;
     548        }
     549
     550        ui_menu_entry_set_cb(mfindn, edit_search_find_next, (void *) edit);
     551
     552        rc = ui_menu_entry_sep_create(msearch, &mssep);
     553        if (rc != EOK) {
     554                printf("Error creating menu.\n");
     555                return rc;
     556        }
     557
     558        rc = ui_menu_entry_create(msearch, "Go To Line", "Ctrl-L", &mgoto);
     559        if (rc != EOK) {
     560                printf("Error creating menu.\n");
     561                return rc;
     562        }
     563
     564        ui_menu_entry_set_cb(mgoto, edit_search_go_to_line, (void *) edit);
    445565
    446566        ui_window_get_app_rect(edit->window, &arect);
     
    621741                break;
    622742        case KC_V:
    623                 selection_delete();
    624                 insert_clipboard_data();
    625                 pane.rflags |= REDRAW_TEXT;
    626                 caret_update();
     743                edit_paste();
    627744                break;
    628745        case KC_X:
    629                 selection_copy();
    630                 selection_delete();
    631                 pane.rflags |= REDRAW_TEXT;
    632                 caret_update();
     746                edit_cut();
    633747                break;
    634748        case KC_A:
     
    18581972        }
    18591973        free(str);
     1974}
     1975
     1976static void edit_paste(void)
     1977{
     1978        selection_delete();
     1979        insert_clipboard_data();
     1980        pane.rflags |= (REDRAW_TEXT | REDRAW_CARET);
     1981        pane_update(&pane);
     1982}
     1983
     1984static void edit_cut(void)
     1985{
     1986        selection_copy();
     1987        selection_delete();
     1988        pane.rflags |= (REDRAW_TEXT | REDRAW_CARET);
     1989        pane_update(&pane);
    18601990}
    18611991
     
    20962226}
    20972227
    2098 /** File / Exit menu entry selected.
     2228/** File / Save menu entry selected.
    20992229 *
    21002230 * @param mentry Menu entry
    21012231 * @param arg Argument (edit_t *)
    21022232 */
    2103 static void edit_file_exit(ui_menu_entry_t *mentry, void *arg)
     2233static void edit_file_save(ui_menu_entry_t *mentry, void *arg)
    21042234{
    21052235        edit_t *edit = (edit_t *) arg;
    21062236
    2107         ui_quit(edit->ui);
    2108 }
    2109 
    2110 /** Edit / Copy menu entry selected.
     2237        (void)edit;
     2238
     2239        if (doc.file_name != NULL)
     2240                file_save(doc.file_name);
     2241        else
     2242                file_save_as();
     2243}
     2244
     2245/** File / Save As menu entry selected.
    21112246 *
    21122247 * @param mentry Menu entry
    21132248 * @param arg Argument (edit_t *)
    21142249 */
    2115 static void edit_edit_copy(ui_menu_entry_t *mentry, void *arg)
    2116 {
    2117         (void) arg;
    2118 }
    2119 
    2120 /** Edit / Paste menu entry selected.
     2250static void edit_file_save_as(ui_menu_entry_t *mentry, void *arg)
     2251{
     2252        edit_t *edit = (edit_t *) arg;
     2253
     2254        (void)edit;
     2255        file_save_as();
     2256}
     2257
     2258/** File / Exit menu entry selected.
    21212259 *
    21222260 * @param mentry Menu entry
    21232261 * @param arg Argument (edit_t *)
    21242262 */
     2263static void edit_file_exit(ui_menu_entry_t *mentry, void *arg)
     2264{
     2265        edit_t *edit = (edit_t *) arg;
     2266
     2267        ui_quit(edit->ui);
     2268}
     2269
     2270/** Edit / Cut menu entry selected.
     2271 *
     2272 * @param mentry Menu entry
     2273 * @param arg Argument (edit_t *)
     2274 */
     2275static void edit_edit_cut(ui_menu_entry_t *mentry, void *arg)
     2276{
     2277        (void) arg;
     2278        edit_cut();
     2279        (void) gfx_update(ui_window_get_gc(edit.window));
     2280}
     2281
     2282/** Edit / Copy menu entry selected.
     2283 *
     2284 * @param mentry Menu entry
     2285 * @param arg Argument (edit_t *)
     2286 */
     2287static void edit_edit_copy(ui_menu_entry_t *mentry, void *arg)
     2288{
     2289        (void) arg;
     2290        selection_copy();
     2291}
     2292
     2293/** Edit / Paste menu entry selected.
     2294 *
     2295 * @param mentry Menu entry
     2296 * @param arg Argument (edit_t *)
     2297 */
    21252298static void edit_edit_paste(ui_menu_entry_t *mentry, void *arg)
    21262299{
    21272300        (void) arg;
     2301        edit_paste();
     2302        (void) gfx_update(ui_window_get_gc(edit.window));
     2303}
     2304
     2305/** Edit / Delete menu entry selected.
     2306 *
     2307 * @param mentry Menu entry
     2308 * @param arg Argument (edit_t *)
     2309 */
     2310static void edit_edit_delete(ui_menu_entry_t *mentry, void *arg)
     2311{
     2312        (void) arg;
     2313
     2314        if (selection_active())
     2315                selection_delete();
     2316
     2317        pane.rflags |= REDRAW_CARET;
     2318        (void) pane_update(&pane);
     2319        (void) gfx_update(ui_window_get_gc(edit.window));
     2320}
     2321
     2322/** Edit / Select All menu entry selected.
     2323 *
     2324 * @param mentry Menu entry
     2325 * @param arg Argument (edit_t *)
     2326 */
     2327static void edit_edit_select_all(ui_menu_entry_t *mentry, void *arg)
     2328{
     2329        (void) arg;
     2330
     2331        selection_sel_all();
     2332        pane.rflags |= (REDRAW_CARET | REDRAW_TEXT | REDRAW_STATUS);
     2333        pane_update(&pane);
     2334        (void) gfx_update(ui_window_get_gc(edit.window));
     2335}
     2336
     2337/** Search / Find menu entry selected.
     2338 *
     2339 * @param mentry Menu entry
     2340 * @param arg Argument (edit_t *)
     2341 */
     2342static void edit_search_find(ui_menu_entry_t *mentry, void *arg)
     2343{
     2344        (void) arg;
     2345        search_prompt(false);
     2346}
     2347
     2348/** Search / Reverse Find menu entry selected.
     2349 *
     2350 * @param mentry Menu entry
     2351 * @param arg Argument (edit_t *)
     2352 */
     2353static void edit_search_reverse_find(ui_menu_entry_t *mentry, void *arg)
     2354{
     2355        (void) arg;
     2356        search_prompt(true);
     2357}
     2358
     2359/** Search / Find Next menu entry selected.
     2360 *
     2361 * @param mentry Menu entry
     2362 * @param arg Argument (edit_t *)
     2363 */
     2364static void edit_search_find_next(ui_menu_entry_t *mentry, void *arg)
     2365{
     2366        (void) arg;
     2367        search_repeat();
     2368        (void) pane_update(&pane);
     2369        (void) gfx_update(ui_window_get_gc(edit.window));
     2370}
     2371
     2372/** Search / Go To Line menu entry selected.
     2373 *
     2374 * @param mentry Menu entry
     2375 * @param arg Argument (edit_t *)
     2376 */
     2377static void edit_search_go_to_line(ui_menu_entry_t *mentry, void *arg)
     2378{
     2379        (void) arg;
     2380        caret_go_to_line_ask();
    21282381}
    21292382
Note: See TracChangeset for help on using the changeset viewer.