using std::sort;
using std::string;
using std::vector;
-
+using std::stack;
namespace {
md_bookmarks,
md_charstyles,
md_custom,
+ md_elements,
md_endmenu,
md_exportformats,
md_importformats,
{ "charstyles", md_charstyles },
{ "custom", md_custom },
{ "documents", md_documents },
+ { "elements", md_elements },
{ "end", md_endmenu },
{ "exportformats", md_exportformats },
{ "floatinsert", md_floatinsert },
add(MenuItem(MenuItem::Custom));
break;
+ case md_elements:
+ add(MenuItem(MenuItem::Elements));
+ break;
+
case md_documents:
add(MenuItem(MenuItem::Documents));
break;
}
+bool Menu::searchFunc(FuncRequest & func, stack<docstring> & names)
+{
+ const_iterator m = begin();
+ const_iterator m_end = end();
+ for (; m != m_end; ++m) {
+ if (m->kind() == MenuItem::Command && m->func() == func) {
+ names.push(m->label());
+ return true;
+ } else if (m->kind() == MenuItem::Submenu) {
+ names.push(m->label());
+ Menu submenu = menubackend.getMenu(m->submenuname());
+ if (submenu.searchFunc(func, names))
+ return true;
+ else
+ names.pop();
+ }
+ }
+ return false;
+}
+
+
void MenuBackend::specialMenu(Menu const & menu)
{
specialmenu_ = menu;
expandFlexInsert(tomenu, buf, "custom");
break;
+ case MenuItem::Elements:
+ expandFlexInsert(tomenu, buf, "element");
+ break;
+
case MenuItem::FloatListInsert:
expandFloatListInsert(tomenu, buf);
break;