mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-09-20 15:01:58 +00:00
disable submenus which contain only disabled items
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@4786 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
3da45ec13a
commit
e61b90fbc2
@ -1,3 +1,12 @@
|
||||
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
|
||||
|
@ -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 <boost/scoped_ptr.hpp>
|
||||
@ -200,7 +198,8 @@ string const fixlabel(string const & str)
|
||||
|
||||
|
||||
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 "
|
||||
@ -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<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,
|
||||
|
@ -58,7 +58,8 @@ private:
|
||||
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);
|
||||
|
Loading…
Reference in New Issue
Block a user