#endif
#include <config.h>
+#include "support/LAssert.h"
#include "MenuBackend.h"
#include "lyxlex.h"
#include "LyXAction.h"
MenuBackend menubackend;
-MenuItem::MenuItem(Kind kind, string const & label, string const & command)
- : kind_(kind), label_(label)
+MenuItem::MenuItem(Kind kind, string const & label,
+ string const & command, bool optional)
+ : kind_(kind), label_(label), optional_(optional)
{
switch(kind) {
case Separator:
lyxerr << "MenuItem(): LyX command `"
<< command << "' does not exist." << endl;
}
+ if (optional_)
+ lyxerr[Debug::GUI] << "Optional item "
+ << command << endl;
break;
case Submenu:
submenu_ = command;
md_documents,
md_endmenu,
md_lastfiles,
+ md_optitem,
md_submenu,
md_separator,
md_last
{ "end", md_endmenu },
{ "item", md_item },
{ "lastfiles", md_lastfiles },
+ { "optitem", md_optitem },
{ "separator", md_separator },
{ "submenu", md_submenu }
};
lex.printTable(lyxerr);
bool quit = false;
+ bool optional = false;
while (lex.IsOK() && !quit) {
switch(lex.lex()) {
+ case md_optitem:
+ optional = true;
+ // fallback to md_item
case md_item: {
lex.next();
string name = lex.GetString();
lex.next();
string command = lex.GetString();
- add(MenuItem(MenuItem::Command, name, command));
+ add(MenuItem(MenuItem::Command, name,
+ command, optional));
+ optional = false;
break;
}
case md_separator: