From: Jean-Marc Lasgouttes Date: Thu, 25 Jul 2002 14:00:29 +0000 (+0000) Subject: disable submenus which contain only disabled items X-Git-Tag: 1.6.10~18749 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=e61b90fbc277f64800a7f85f970d17b88b267e44;p=features.git disable submenus which contain only disabled items git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@4786 a592a061-630c-0410-9148-cb99ea01b6c8 --- diff --git a/src/frontends/xforms/ChangeLog b/src/frontends/xforms/ChangeLog index 33173d8e8b..385de63a79 100644 --- a/src/frontends/xforms/ChangeLog +++ b/src/frontends/xforms/ChangeLog @@ -1,3 +1,12 @@ +2002-07-25 Jean-Marc Lasgouttes + + * Menubar_pimpl.C: do not include "toc.h" and "FloatList.h". + (create_submenu): add parameter ``all_disabled'' which will be + false only if the menu contains at least one working item. Disable + submenus who have all_disabled true. What I could not do, though + is disable menubar items when all the menu is disabled (because I + know about it only when I try to open this menu) + 2002-07-25 Herbert Voss * FormBibtex.C (update): clear browser first diff --git a/src/frontends/xforms/Menubar_pimpl.C b/src/frontends/xforms/Menubar_pimpl.C index b452a10161..f820fb938d 100644 --- a/src/frontends/xforms/Menubar_pimpl.C +++ b/src/frontends/xforms/Menubar_pimpl.C @@ -19,12 +19,10 @@ #include "Dialogs.h" #include "XFormsView.h" #include "lyxfunc.h" -#include "FloatList.h" #include "support/lstrings.h" #include "support/LAssert.h" #include "gettext.h" #include "debug.h" -#include "toc.h" #include FORMS_H_LOCATION #include @@ -200,7 +198,8 @@ string const fixlabel(string const & str) int Menubar::Pimpl::create_submenu(Window win, XFormsView * view, - Menu const & menu, vector & smn) + Menu const & menu, vector & smn, + bool & all_disabled) { const int menuid = get_new_submenu(smn, win); lyxerr[Debug::GUI] << "Menubar::Pimpl::create_submenu: creating " @@ -295,6 +294,8 @@ int Menubar::Pimpl::create_submenu(Window win, XFormsView * view, pupmode += "%b"; if (flag.disabled() || flag.unknown()) pupmode += "%i"; + else + all_disabled = false; label += pupmode; // Finally the menu shortcut @@ -319,11 +320,14 @@ int Menubar::Pimpl::create_submenu(Window win, XFormsView * view, case MenuItem::Submenu: { int submenuid = create_submenu(win, view, - *item.submenu(), smn); + *item.submenu(), smn, + all_disabled); if (submenuid == -1) return -1; string label = fixlabel(item.label()); label += extra_label + "%m"; + if (all_disabled) + label += "%i"; string shortcut = item.shortcut(); if (!shortcut.empty()) { shortcut += lowercase(shortcut[0]); @@ -377,8 +381,10 @@ void Menubar::Pimpl::MenuCallback(FL_OBJECT * ob, long button) Menu const frommenu = menubackend_->getMenu(item->submenuname()); menubackend_->expand(frommenu, tomenu, view->buffer()); vector submenus; + bool all_disabled = true; int menu = iteminfo->pimpl_-> - create_submenu(FL_ObjWin(ob), view, tomenu, submenus); + create_submenu(FL_ObjWin(ob), view, tomenu, + submenus, all_disabled); if (menu != -1) { // place popup fl_setpup_position(view->getForm()->x + ob->x, diff --git a/src/frontends/xforms/Menubar_pimpl.h b/src/frontends/xforms/Menubar_pimpl.h index d38ab1eb45..16dfdac303 100644 --- a/src/frontends/xforms/Menubar_pimpl.h +++ b/src/frontends/xforms/Menubar_pimpl.h @@ -58,7 +58,8 @@ private: std::vector & smn, Window win); /// int create_submenu(Window win, XFormsView * view, - Menu const & menu, std::vector & smn); + Menu const & menu, + std::vector & smn, bool & all_disabled); // void makeMenubar(Menu const &menu);