]> git.lyx.org Git - lyx.git/blobdiff - src/MenuBackend.C
citation patch from Angus
[lyx.git] / src / MenuBackend.C
index 1f77a866b03020a16cae0c0566ccbba0ce1c1d9f..6e6b2c7282a9a3082397083b7b73f0905f74f72b 100644 (file)
@@ -38,6 +38,11 @@ MenuItem::MenuItem(Kind kind, string const & label,
        case Separator:
        case Documents:
        case Lastfiles:
+       case Toc:
+       case References:
+       case ViewFormats:
+       case UpdateFormats:
+       case ExportFormats:
                break;
        case Command:
                action_ = lyxaction.LookupFunc(command);
@@ -70,21 +75,31 @@ Menu & Menu::read(LyXLex & lex)
                md_item = 1,
                md_documents,
                md_endmenu,
+               md_exportformats,
                md_lastfiles,
                md_optitem,
-               md_submenu,
+               md_references,
                md_separator,
+               md_submenu,
+               md_toc,
+               md_updateformats,
+               md_viewformats,
                md_last
        };
 
        struct keyword_item menutags[md_last-1] = {
                { "documents", md_documents },
                { "end", md_endmenu },
+               { "exportformats", md_exportformats },
                { "item", md_item },
                { "lastfiles", md_lastfiles },
                { "optitem", md_optitem }, 
+               { "references", md_references },
                { "separator", md_separator },
-               { "submenu", md_submenu }
+               { "submenu", md_submenu },
+               { "toc", md_toc },
+               { "updateformats", md_updateformats },
+               { "viewformats", md_viewformats }
        };
 
        lex.pushTable(menutags, md_last - 1);
@@ -111,15 +126,39 @@ Menu & Menu::read(LyXLex & lex)
                        optional = false;
                        break;
                }
+
                case md_separator:
                        add(MenuItem(MenuItem::Separator));
                        break;
+
                case md_lastfiles:
                        add(MenuItem(MenuItem::Lastfiles));
                        break;
+
                case md_documents:
                        add(MenuItem(MenuItem::Documents));
                        break;
+
+               case md_toc:
+                       add(MenuItem(MenuItem::Toc));
+                       break;
+
+               case md_references:
+                       add(MenuItem(MenuItem::References));
+                       break;
+
+               case md_viewformats:
+                       add(MenuItem(MenuItem::ViewFormats));
+                       break;
+
+               case md_updateformats:
+                       add(MenuItem(MenuItem::UpdateFormats));
+                       break;
+
+               case md_exportformats:
+                       add(MenuItem(MenuItem::ExportFormats));
+                       break;
+
                case md_submenu: {
                        lex.next();
                        char * tmp = strdup(lex.GetString().c_str());
@@ -130,9 +169,11 @@ Menu & Menu::read(LyXLex & lex)
                        add(MenuItem(MenuItem::Submenu, mlabel, mname));
                        break;
                }
+
                case md_endmenu:
                        quit = true;
                        break;
+
                default:
                        lex.printError("menubar::read: "
                                       "Unknown menu tag: `$$Token'");
@@ -274,7 +315,8 @@ void MenuBackend::add(Menu const & menu)
 
 bool MenuBackend::hasMenu(string const & name) const
 {
-       for (const_iterator cit = begin(); cit != end(); ++cit) {
+       const_iterator mend = end();
+       for (const_iterator cit = begin(); cit != mend; ++cit) {
                if ((*cit).name() == name)
                        return true;
        }
@@ -284,7 +326,8 @@ bool MenuBackend::hasMenu(string const & name) const
 
 Menu const & MenuBackend::getMenu(string const & name) const
 {
-       for (const_iterator cit = begin(); cit != end(); ++cit) {
+       const_iterator mend = end();
+       for (const_iterator cit = begin(); cit != mend; ++cit) {
                if ((*cit).name() == name)
                        return (*cit);
        }
@@ -295,8 +338,9 @@ Menu const & MenuBackend::getMenu(string const & name) const
 
 Menu & MenuBackend::getMenu(string const & name)
 {
+       MenuList::iterator end = menulist_.end();
        for (MenuList::iterator cit = menulist_.begin(); 
-            cit != menulist_.end(); ++cit) {
+            cit != end; ++cit) {
                if ((*cit).name() == name)
                        return (*cit);
        }