Changes in uspace/app/edit/edit.c [e0cf963:ec50d65e] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/edit/edit.c
re0cf963 rec50d65e 1 1 /* 2 * Copyright (c) 202 1Jiri Svoboda2 * Copyright (c) 2024 Jiri Svoboda 3 3 * Copyright (c) 2012 Martin Sucha 4 4 * All rights reserved. … … 60 60 #include <ui/menu.h> 61 61 #include <ui/menubar.h> 62 #include <ui/menudd.h> 62 63 #include <ui/menuentry.h> 63 64 #include <ui/promptdialog.h> … … 237 238 238 239 static void edit_wnd_close(ui_window_t *, void *); 240 static void edit_wnd_focus(ui_window_t *, void *, unsigned); 239 241 static void edit_wnd_kbd_event(ui_window_t *, void *, kbd_event_t *); 242 static void edit_wnd_unfocus(ui_window_t *, void *, unsigned); 240 243 241 244 static ui_window_cb_t edit_window_cb = { 242 245 .close = edit_wnd_close, 243 .kbd = edit_wnd_kbd_event 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 244 257 }; 245 258 … … 430 443 } 431 444 432 rc = ui_menu_create(edit->menubar, "File", &mfile); 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); 433 448 if (rc != EOK) { 434 449 printf("Error creating menu.\n"); … … 436 451 } 437 452 438 rc = ui_menu_entry_create(mfile, " Save", "Ctrl-S", &msave);453 rc = ui_menu_entry_create(mfile, "~S~ave", "Ctrl-S", &msave); 439 454 if (rc != EOK) { 440 455 printf("Error creating menu.\n"); … … 444 459 ui_menu_entry_set_cb(msave, edit_file_save, (void *) edit); 445 460 446 rc = ui_menu_entry_create(mfile, "Save As", "Ctrl-E", &msaveas);461 rc = ui_menu_entry_create(mfile, "Save ~A~s", "Ctrl-E", &msaveas); 447 462 if (rc != EOK) { 448 463 printf("Error creating menu.\n"); … … 458 473 } 459 474 460 rc = ui_menu_entry_create(mfile, "E xit", "Ctrl-Q", &mexit);475 rc = ui_menu_entry_create(mfile, "E~x~it", "Ctrl-Q", &mexit); 461 476 if (rc != EOK) { 462 477 printf("Error creating menu.\n"); … … 466 481 ui_menu_entry_set_cb(mexit, edit_file_exit, (void *) edit); 467 482 468 rc = ui_menu_ create(edit->menubar, "Edit", &medit);483 rc = ui_menu_dd_create(edit->menubar, "~E~dit", NULL, &medit); 469 484 if (rc != EOK) { 470 485 printf("Error creating menu.\n"); … … 472 487 } 473 488 474 rc = ui_menu_entry_create(medit, "Cu t", "Ctrl-X", &mcut);489 rc = ui_menu_entry_create(medit, "Cu~t~", "Ctrl-X", &mcut); 475 490 if (rc != EOK) { 476 491 printf("Error creating menu.\n"); … … 480 495 ui_menu_entry_set_cb(mcut, edit_edit_cut, (void *) edit); 481 496 482 rc = ui_menu_entry_create(medit, " Copy", "Ctrl-C", &mcopy);497 rc = ui_menu_entry_create(medit, "~C~opy", "Ctrl-C", &mcopy); 483 498 if (rc != EOK) { 484 499 printf("Error creating menu.\n"); … … 488 503 ui_menu_entry_set_cb(mcopy, edit_edit_copy, (void *) edit); 489 504 490 rc = ui_menu_entry_create(medit, " Paste", "Ctrl-V", &mpaste);505 rc = ui_menu_entry_create(medit, "~P~aste", "Ctrl-V", &mpaste); 491 506 if (rc != EOK) { 492 507 printf("Error creating menu.\n"); … … 496 511 ui_menu_entry_set_cb(mpaste, edit_edit_paste, (void *) edit); 497 512 498 rc = ui_menu_entry_create(medit, " Delete", "Del", &mdelete);513 rc = ui_menu_entry_create(medit, "~D~elete", "Del", &mdelete); 499 514 if (rc != EOK) { 500 515 printf("Error creating menu.\n"); … … 510 525 } 511 526 512 rc = ui_menu_entry_create(medit, "Select All", "Ctrl-A", &mselall);527 rc = ui_menu_entry_create(medit, "Select ~A~ll", "Ctrl-A", &mselall); 513 528 if (rc != EOK) { 514 529 printf("Error creating menu.\n"); … … 518 533 ui_menu_entry_set_cb(mselall, edit_edit_select_all, (void *) edit); 519 534 520 rc = ui_menu_ create(edit->menubar, "Search", &msearch);535 rc = ui_menu_dd_create(edit->menubar, "~S~earch", NULL, &msearch); 521 536 if (rc != EOK) { 522 537 printf("Error creating menu.\n"); … … 524 539 } 525 540 526 rc = ui_menu_entry_create(msearch, " Find", "Ctrl-F", &mfind);541 rc = ui_menu_entry_create(msearch, "~F~ind", "Ctrl-F", &mfind); 527 542 if (rc != EOK) { 528 543 printf("Error creating menu.\n"); … … 532 547 ui_menu_entry_set_cb(mfind, edit_search_find, (void *) edit); 533 548 534 rc = ui_menu_entry_create(msearch, " Reverse Find", "Ctrl-Shift-F", &mfindr);549 rc = ui_menu_entry_create(msearch, "~R~everse Find", "Ctrl-Shift-F", &mfindr); 535 550 if (rc != EOK) { 536 551 printf("Error creating menu.\n"); … … 540 555 ui_menu_entry_set_cb(mfindr, edit_search_reverse_find, (void *) edit); 541 556 542 rc = ui_menu_entry_create(msearch, "Find Next", "Ctrl-N", &mfindn);557 rc = ui_menu_entry_create(msearch, "Find ~N~ext", "Ctrl-N", &mfindn); 543 558 if (rc != EOK) { 544 559 printf("Error creating menu.\n"); … … 554 569 } 555 570 556 rc = ui_menu_entry_create(msearch, "Go To Line", "Ctrl-L", &mgoto);571 rc = ui_menu_entry_create(msearch, "Go To ~L~ine", "Ctrl-L", &mgoto); 557 572 if (rc != EOK) { 558 573 printf("Error creating menu.\n"); … … 978 993 979 994 bcnt -= off; 980 mem cpy(buf, buf + off, bcnt);995 memmove(buf, buf + off, bcnt); 981 996 982 997 insert_char(c); … … 1259 1274 1260 1275 gfx_text_fmt_init(&fmt); 1276 fmt.font = font; 1261 1277 fmt.color = pane->color; 1262 1278 … … 1318 1334 return rc; 1319 1335 1320 rc = gfx_puttext( font,&tpos, &fmt, cbuf);1336 rc = gfx_puttext(&tpos, &fmt, cbuf); 1321 1337 if (rc != EOK) 1322 1338 return rc; … … 1408 1424 */ 1409 1425 while (true) { 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);1426 int rc = asprintf(&text, "%d, %d (%d): File '%s'. Ctrl-Q Quit " 1427 "F10 Menu", coord.row, coord.column, last_row, fname); 1412 1428 if (rc < 0) { 1413 1429 n = 0; … … 2219 2235 } 2220 2236 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 2221 2252 /** Window keyboard event 2222 2253 * … … 2229 2260 { 2230 2261 pane.keymod = event->mods; 2262 2263 if (ui_window_def_kbd(window, event) == ui_claimed) 2264 return; 2231 2265 2232 2266 if (event->type == KEY_PRESS) { … … 2237 2271 } 2238 2272 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 2239 2314 /** File / Save menu entry selected. 2240 2315 * … … 2402 2477 { 2403 2478 edit_t *edit = (edit_t *)arg; 2404 gfx_context_t *gc = ui_window_get_gc(edit->window);2405 2479 char *cname; 2406 2480 errno_t rc; 2407 2481 2482 (void)edit; 2408 2483 ui_file_dialog_destroy(dialog); 2409 // TODO Smarter cursor management2410 pane.rflags |= REDRAW_CARET;2411 (void) pane_update(&pane);2412 gfx_cursor_set_visible(gc, true);2413 2484 2414 2485 cname = str_dup(fname); … … 2436 2507 { 2437 2508 edit_t *edit = (edit_t *)arg; 2438 gfx_context_t *gc = ui_window_get_gc(edit->window); 2439 2509 2510 (void)edit; 2440 2511 ui_file_dialog_destroy(dialog); 2441 // TODO Smarter cursor management2442 pane.rflags |= REDRAW_CARET;2443 (void) pane_update(&pane);2444 gfx_cursor_set_visible(gc, true);2445 2512 } 2446 2513 … … 2453 2520 { 2454 2521 edit_t *edit = (edit_t *)arg; 2455 gfx_context_t *gc = ui_window_get_gc(edit->window); 2456 2522 2523 (void)edit; 2457 2524 ui_file_dialog_destroy(dialog); 2458 // TODO Smarter cursor management2459 pane.rflags |= REDRAW_CARET;2460 (void) pane_update(&pane);2461 gfx_cursor_set_visible(gc, true);2462 2525 } 2463 2526 … … 2472 2535 { 2473 2536 edit_t *edit = (edit_t *) arg; 2474 gfx_context_t *gc = ui_window_get_gc(edit->window);2475 2537 char *endptr; 2476 2538 int line; … … 2484 2546 2485 2547 caret_move_absolute(line, pane.ideal_column, dir_before, false); 2486 // TODO Smarter cursor management2548 (void)edit; 2487 2549 (void) pane_update(&pane); 2488 gfx_cursor_set_visible(gc, true);2489 (void) gfx_update(gc);2490 2550 } 2491 2551 … … 2498 2558 { 2499 2559 edit_t *edit = (edit_t *) arg; 2500 gfx_context_t *gc = ui_window_get_gc(edit->window); 2501 2560 2561 (void)edit; 2502 2562 ui_prompt_dialog_destroy(dialog); 2503 // TODO Smarter cursor management2504 pane.rflags |= REDRAW_CARET;2505 (void) pane_update(&pane);2506 gfx_cursor_set_visible(gc, true);2507 2563 } 2508 2564 … … 2515 2571 { 2516 2572 edit_t *edit = (edit_t *) arg; 2517 gfx_context_t *gc = ui_window_get_gc(edit->window); 2518 2573 2574 (void)edit; 2519 2575 ui_prompt_dialog_destroy(dialog); 2520 // TODO Smarter cursor management2521 pane.rflags |= REDRAW_CARET;2522 (void) pane_update(&pane);2523 gfx_cursor_set_visible(gc, true);2524 2576 } 2525 2577 … … 2534 2586 { 2535 2587 edit_t *edit = (edit_t *) arg; 2536 gfx_context_t *gc = ui_window_get_gc(edit->window);2537 2588 char *pattern; 2538 2589 bool reverse; 2539 2590 2591 (void)edit; 2540 2592 ui_prompt_dialog_destroy(dialog); 2541 2593 … … 2554 2606 search(pattern, reverse); 2555 2607 2556 // TODO Smarter cursor management2557 2608 (void) pane_update(&pane); 2558 gfx_cursor_set_visible(gc, true);2559 (void) gfx_update(gc);2560 2609 } 2561 2610 … … 2568 2617 { 2569 2618 edit_t *edit = (edit_t *) arg; 2570 gfx_context_t *gc = ui_window_get_gc(edit->window); 2571 2619 2620 (void)edit; 2572 2621 ui_prompt_dialog_destroy(dialog); 2573 // TODO Smarter cursor management2574 pane.rflags |= REDRAW_CARET;2575 (void) pane_update(&pane);2576 gfx_cursor_set_visible(gc, true);2577 2622 } 2578 2623 … … 2585 2630 { 2586 2631 edit_t *edit = (edit_t *) arg; 2587 gfx_context_t *gc = ui_window_get_gc(edit->window); 2588 2632 2633 (void)edit; 2589 2634 ui_prompt_dialog_destroy(dialog); 2590 // TODO Smarter cursor management2591 pane.rflags |= REDRAW_CARET;2592 (void) pane_update(&pane);2593 gfx_cursor_set_visible(gc, true);2594 2635 } 2595 2636
Note:
See TracChangeset
for help on using the changeset viewer.