From e1b7bd5d36ec21d248b896dcece0864fa550c774 Mon Sep 17 00:00:00 2001 From: Dekel Tsur Date: Wed, 31 Jan 2001 17:54:37 +0000 Subject: [PATCH] Add shortcut to the TOC menu. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@1431 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/frontends/xforms/ChangeLog | 4 ++++ src/frontends/xforms/Menubar_pimpl.C | 27 ++++++++++++++++++++++++--- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/src/frontends/xforms/ChangeLog b/src/frontends/xforms/ChangeLog index 894f49dc20..1f32a823ba 100644 --- a/src/frontends/xforms/ChangeLog +++ b/src/frontends/xforms/ChangeLog @@ -1,3 +1,7 @@ +2001-01-31 Dekel Tsur + + * Menubar_pimpl.C (add_toc2): Add shortcut to the TOC menu. + 2001-01-25 Jean-Marc Lasgouttes * FormPreferences.C (GetFrom): fix crash when there is no format diff --git a/src/frontends/xforms/Menubar_pimpl.C b/src/frontends/xforms/Menubar_pimpl.C index d03eabc445..91daef413b 100644 --- a/src/frontends/xforms/Menubar_pimpl.C +++ b/src/frontends/xforms/Menubar_pimpl.C @@ -232,6 +232,7 @@ void add_toc2(int menu, string const & extra_label, vector const & toc_list, size_type from, size_type to, int depth) { + int shortcut_count = 0; if (to - from <= max_number_of_items) { for (size_type i = from; i < to; ++i) { int const action = lyxaction. @@ -243,7 +244,13 @@ void add_toc2(int menu, string const & extra_label, label += "%x" + tostr(action + action_offset); if (i == to - 1 && depth == 0) label += extra_label; - fl_addtopup(menu, label.c_str()); + if (toc_list[i].depth == depth + && ++shortcut_count <= 9) { + label += "%h"; + fl_addtopup(menu, label.c_str(), + tostr(shortcut_count).c_str()); + } else + fl_addtopup(menu, label.c_str()); } } else { size_type pos = from; @@ -274,16 +281,30 @@ void add_toc2(int menu, string const & extra_label, label = limit_string_length(label); if (new_pos == to && depth == 0) label += extra_label; + string shortcut; + if (toc_list[pos].depth == depth && + ++shortcut_count <= 9) + shortcut = tostr(shortcut_count); if (new_pos == pos + 1) { label += "%x" + tostr(action + action_offset); - fl_addtopup(menu, label.c_str()); + if (!shortcut.empty()) { + label += "%h"; + fl_addtopup(menu, label.c_str(), + shortcut.c_str()); + } else + fl_addtopup(menu, label.c_str()); } else { int menu2 = get_new_submenu(smn, win); add_toc2(menu2, extra_label, smn, win, toc_list, pos, new_pos, depth+1); label += "%m"; - fl_addtopup(menu, label.c_str(), menu2); + if (!shortcut.empty()) { + label += "%h"; + fl_addtopup(menu, label.c_str(), menu2, + shortcut.c_str()); + } else + fl_addtopup(menu, label.c_str(), menu2); } pos = new_pos; } -- 2.39.5