+2002-07-25 Jean-Marc Lasgouttes <lasgouttes@freesurf.fr>
+
+ * 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 <voss@perce.de>
* FormBibtex.C (update): clear browser first
#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 <boost/scoped_ptr.hpp>
int Menubar::Pimpl::create_submenu(Window win, XFormsView * view,
- Menu const & menu, vector<int> & smn)
+ Menu const & menu, vector<int> & smn,
+ bool & all_disabled)
{
const int menuid = get_new_submenu(smn, win);
lyxerr[Debug::GUI] << "Menubar::Pimpl::create_submenu: creating "
pupmode += "%b";
if (flag.disabled() || flag.unknown())
pupmode += "%i";
+ else
+ all_disabled = false;
label += pupmode;
// Finally the menu shortcut
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]);
Menu const frommenu = menubackend_->getMenu(item->submenuname());
menubackend_->expand(frommenu, tomenu, view->buffer());
vector<int> 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,
std::vector<int> & smn, Window win);
///
int create_submenu(Window win, XFormsView * view,
- Menu const & menu, std::vector<int> & smn);
+ Menu const & menu,
+ std::vector<int> & smn, bool & all_disabled);
//
void makeMenubar(Menu const &menu);