Changeset c88d7f99 in mainline


Ignore:
Timestamp:
2022-03-10T17:44:35Z (2 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
master, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
c38ab6c
Parents:
96c6a00
Message:

Menu entry accelerators

Location:
uspace
Files:
6 edited

Legend:

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

    r96c6a00 rc88d7f99  
    902902        }
    903903
    904         rc = ui_menu_entry_create(mfile, "Exit", "Alt-F4", &mexit);
     904        rc = ui_menu_entry_create(mfile, "E~x~it", "Alt-F4", &mexit);
    905905        if (rc != EOK) {
    906906                printf("Error creating menu.\n");
     
    916916        }
    917917
    918         rc = ui_menu_entry_create(medit, "Copy", "Ctrl-C", &mcopy);
     918        rc = ui_menu_entry_create(medit, "~C~opy", "Ctrl-C", &mcopy);
    919919        if (rc != EOK) {
    920920                printf("Error creating menu.\n");
     
    924924        ui_menu_entry_set_cb(mcopy, calc_edit_copy, (void *) &calc);
    925925
    926         rc = ui_menu_entry_create(medit, "Paste", "Ctrl-V", &mpaste);
     926        rc = ui_menu_entry_create(medit, "~P~aste", "Ctrl-V", &mpaste);
    927927        if (rc != EOK) {
    928928                printf("Error creating menu.\n");
  • uspace/app/edit/edit.c

    r96c6a00 rc88d7f99  
    436436        }
    437437
    438         rc = ui_menu_entry_create(mfile, "Save", "Ctrl-S", &msave);
     438        rc = ui_menu_entry_create(mfile, "~S~ave", "Ctrl-S", &msave);
    439439        if (rc != EOK) {
    440440                printf("Error creating menu.\n");
     
    444444        ui_menu_entry_set_cb(msave, edit_file_save, (void *) edit);
    445445
    446         rc = ui_menu_entry_create(mfile, "Save As", "Ctrl-E", &msaveas);
     446        rc = ui_menu_entry_create(mfile, "Save ~A~s", "Ctrl-E", &msaveas);
    447447        if (rc != EOK) {
    448448                printf("Error creating menu.\n");
     
    458458        }
    459459
    460         rc = ui_menu_entry_create(mfile, "Exit", "Ctrl-Q", &mexit);
     460        rc = ui_menu_entry_create(mfile, "E~x~it", "Ctrl-Q", &mexit);
    461461        if (rc != EOK) {
    462462                printf("Error creating menu.\n");
     
    472472        }
    473473
    474         rc = ui_menu_entry_create(medit, "Cut", "Ctrl-X", &mcut);
     474        rc = ui_menu_entry_create(medit, "Cu~t~", "Ctrl-X", &mcut);
    475475        if (rc != EOK) {
    476476                printf("Error creating menu.\n");
     
    480480        ui_menu_entry_set_cb(mcut, edit_edit_cut, (void *) edit);
    481481
    482         rc = ui_menu_entry_create(medit, "Copy", "Ctrl-C", &mcopy);
     482        rc = ui_menu_entry_create(medit, "~C~opy", "Ctrl-C", &mcopy);
    483483        if (rc != EOK) {
    484484                printf("Error creating menu.\n");
     
    488488        ui_menu_entry_set_cb(mcopy, edit_edit_copy, (void *) edit);
    489489
    490         rc = ui_menu_entry_create(medit, "Paste", "Ctrl-V", &mpaste);
     490        rc = ui_menu_entry_create(medit, "~P~aste", "Ctrl-V", &mpaste);
    491491        if (rc != EOK) {
    492492                printf("Error creating menu.\n");
     
    496496        ui_menu_entry_set_cb(mpaste, edit_edit_paste, (void *) edit);
    497497
    498         rc = ui_menu_entry_create(medit, "Delete", "Del", &mdelete);
     498        rc = ui_menu_entry_create(medit, "~D~elete", "Del", &mdelete);
    499499        if (rc != EOK) {
    500500                printf("Error creating menu.\n");
     
    510510        }
    511511
    512         rc = ui_menu_entry_create(medit, "Select All", "Ctrl-A", &mselall);
     512        rc = ui_menu_entry_create(medit, "Select ~A~ll", "Ctrl-A", &mselall);
    513513        if (rc != EOK) {
    514514                printf("Error creating menu.\n");
     
    524524        }
    525525
    526         rc = ui_menu_entry_create(msearch, "Find", "Ctrl-F", &mfind);
     526        rc = ui_menu_entry_create(msearch, "~F~ind", "Ctrl-F", &mfind);
    527527        if (rc != EOK) {
    528528                printf("Error creating menu.\n");
     
    532532        ui_menu_entry_set_cb(mfind, edit_search_find, (void *) edit);
    533533
    534         rc = ui_menu_entry_create(msearch, "Reverse Find", "Ctrl-Shift-F", &mfindr);
     534        rc = ui_menu_entry_create(msearch, "~R~everse Find", "Ctrl-Shift-F", &mfindr);
    535535        if (rc != EOK) {
    536536                printf("Error creating menu.\n");
     
    540540        ui_menu_entry_set_cb(mfindr, edit_search_reverse_find, (void *) edit);
    541541
    542         rc = ui_menu_entry_create(msearch, "Find Next", "Ctrl-N", &mfindn);
     542        rc = ui_menu_entry_create(msearch, "Find ~N~ext", "Ctrl-N", &mfindn);
    543543        if (rc != EOK) {
    544544                printf("Error creating menu.\n");
     
    554554        }
    555555
    556         rc = ui_menu_entry_create(msearch, "Go To Line", "Ctrl-L", &mgoto);
     556        rc = ui_menu_entry_create(msearch, "Go To ~L~ine", "Ctrl-L", &mgoto);
    557557        if (rc != EOK) {
    558558                printf("Error creating menu.\n");
  • uspace/app/uidemo/uidemo.c

    r96c6a00 rc88d7f99  
    11/*
    2  * Copyright (c) 2021 Jiri Svoboda
     2 * Copyright (c) 2022 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    545545        }
    546546
    547         rc = ui_menu_entry_create(demo.mfile, "Message", "", &mmsg);
     547        rc = ui_menu_entry_create(demo.mfile, "~M~essage", "", &mmsg);
    548548        if (rc != EOK) {
    549549                printf("Error creating menu.\n");
     
    553553        ui_menu_entry_set_cb(mmsg, uidemo_file_message, (void *) &demo);
    554554
    555         rc = ui_menu_entry_create(demo.mfile, "Load", "", &mload);
     555        rc = ui_menu_entry_create(demo.mfile, "~L~oad", "", &mload);
    556556        if (rc != EOK) {
    557557                printf("Error creating menu.\n");
     
    561561        ui_menu_entry_set_cb(mload, uidemo_file_load, (void *) &demo);
    562562
    563         rc = ui_menu_entry_create(demo.mfile, "Foo", "Ctrl-Alt-Del", &mfoo);
    564         if (rc != EOK) {
    565                 printf("Error creating menu.\n");
    566                 return rc;
    567         }
    568 
    569         rc = ui_menu_entry_create(demo.mfile, "Bar", "", &mbar);
    570         if (rc != EOK) {
    571                 printf("Error creating menu.\n");
    572                 return rc;
    573         }
    574 
    575         rc = ui_menu_entry_create(demo.mfile, "Foobar", "", &mfoobar);
     563        rc = ui_menu_entry_create(demo.mfile, "~F~oo", "Ctrl-Alt-Del", &mfoo);
     564        if (rc != EOK) {
     565                printf("Error creating menu.\n");
     566                return rc;
     567        }
     568
     569        rc = ui_menu_entry_create(demo.mfile, "~B~ar", "", &mbar);
     570        if (rc != EOK) {
     571                printf("Error creating menu.\n");
     572                return rc;
     573        }
     574
     575        rc = ui_menu_entry_create(demo.mfile, "F~o~obar", "", &mfoobar);
    576576        if (rc != EOK) {
    577577                printf("Error creating menu.\n");
     
    585585        }
    586586
    587         rc = ui_menu_entry_create(demo.mfile, "Exit", "Alt-F4", &mexit);
     587        rc = ui_menu_entry_create(demo.mfile, "E~x~it", "Alt-F4", &mexit);
    588588        if (rc != EOK) {
    589589                printf("Error creating menu.\n");
     
    599599        }
    600600
    601         rc = ui_menu_entry_create(demo.medit, "Modify", "", &mmodify);
     601        rc = ui_menu_entry_create(demo.medit, "~M~odify", "", &mmodify);
    602602        if (rc != EOK) {
    603603                printf("Error creating menu.\n");
     
    619619        }
    620620
    621         rc = ui_menu_entry_create(demo.mhelp, "About", "Ctrl-H, F1", &mabout);
     621        rc = ui_menu_entry_create(demo.mhelp, "~A~bout", "Ctrl-H, F1", &mabout);
    622622        if (rc != EOK) {
    623623                printf("Error creating menu.\n");
  • uspace/lib/ui/include/ui/menuentry.h

    r96c6a00 rc88d7f99  
    6060    gfx_coord_t *, gfx_coord_t *);
    6161extern gfx_coord_t ui_menu_entry_height(ui_menu_entry_t *);
     62extern char32_t ui_menu_entry_get_accel(ui_menu_entry_t *);
    6263extern errno_t ui_menu_entry_paint(ui_menu_entry_t *, gfx_coord2_t *);
    6364extern bool ui_menu_entry_selectable(ui_menu_entry_t *);
  • uspace/lib/ui/src/menu.c

    r96c6a00 rc88d7f99  
    604604static void ui_menu_key_press_unmod(ui_menu_t *menu, kbd_event_t *event)
    605605{
     606        ui_menu_entry_t *mentry;
     607        char32_t c;
     608
    606609        switch (event->key) {
    607610        case KC_ESCAPE:
     
    625628                break;
    626629        default:
     630                if (event->c != '\0') {
     631                        mentry = ui_menu_entry_first(menu);
     632                        while (mentry != NULL) {
     633                                c = ui_menu_entry_get_accel(mentry);
     634                                if (c == event->c && menu->selected != NULL) {
     635                                        ui_menu_entry_activate(mentry);
     636                                        break;
     637                                }
     638                                mentry = ui_menu_entry_next(mentry);
     639                        }
     640                }
    627641                break;
    628642        }
  • uspace/lib/ui/src/menuentry.c

    r96c6a00 rc88d7f99  
    4343#include <stdlib.h>
    4444#include <str.h>
     45#include <ui/accel.h>
    4546#include <ui/control.h>
    4647#include <ui/paint.h>
     
    245246        res = ui_window_get_res(mentry->menu->mbar->window);
    246247
    247         *caption_w = gfx_text_width(res->font, mentry->caption);
    248         *shortcut_w = gfx_text_width(res->font, mentry->shortcut);
     248        *caption_w = ui_text_width(res->font, mentry->caption);
     249        *shortcut_w = ui_text_width(res->font, mentry->shortcut);
    249250}
    250251
     
    331332}
    332333
     334/** Get menu entry accelerator character.
     335 *
     336 * @param mentry Menu entry
     337 * @return Accelerator character (lowercase) or the null character if
     338 *         the menu entry has no accelerator.
     339 */
     340char32_t ui_menu_entry_get_accel(ui_menu_entry_t *mentry)
     341{
     342        return ui_accel_get(mentry->caption);
     343}
     344
    333345/** Paint menu entry.
    334346 *
     
    340352{
    341353        ui_resource_t *res;
    342         gfx_text_fmt_t fmt;
     354        ui_text_fmt_t fmt;
    343355        gfx_color_t *bg_color;
    344356        ui_menu_entry_geom_t geom;
     
    350362        ui_menu_entry_get_geom(mentry, pos, &geom);
    351363
    352         gfx_text_fmt_init(&fmt);
     364        ui_text_fmt_init(&fmt);
    353365        fmt.font = res->font;
    354366        fmt.halign = gfx_halign_left;
     
    358370            mentry == mentry->menu->selected) {
    359371                fmt.color = res->wnd_sel_text_color;
     372                fmt.hgl_color = res->wnd_sel_text_hgl_color;
    360373                bg_color = res->wnd_sel_text_bg_color;
    361374        } else {
    362375                fmt.color = res->wnd_text_color;
     376                fmt.hgl_color = res->wnd_text_hgl_color;
    363377                bg_color = res->wnd_face_color;
    364378        }
     
    372386                goto error;
    373387
    374         rc = gfx_puttext(&geom.caption_pos, &fmt, mentry->caption);
     388        rc = ui_paint_text(&geom.caption_pos, &fmt, mentry->caption);
    375389        if (rc != EOK)
    376390                goto error;
     
    378392        fmt.halign = gfx_halign_right;
    379393
    380         rc = gfx_puttext(&geom.shortcut_pos, &fmt, mentry->shortcut);
     394        rc = ui_paint_text(&geom.shortcut_pos, &fmt, mentry->shortcut);
    381395        if (rc != EOK)
    382396                goto error;
Note: See TracChangeset for help on using the changeset viewer.