]> git.lyx.org Git - lyx.git/blobdiff - src/ToolbarBackend.cpp
Correctly generate latex for font/language/encoding switches inside and around
[lyx.git] / src / ToolbarBackend.cpp
index 33084b396dd76bcdb372f9b2dcbe127f8c29d575..c6f78f61edfd64092842ba87298ff25eea640d8f 100644 (file)
@@ -13,7 +13,7 @@
 
 #include "ToolbarBackend.h"
 #include "FuncRequest.h"
-#include "LyXLex.h"
+#include "Lexer.h"
 #include "debug.h"
 #include "gettext.h"
 #include "LyXAction.h"
@@ -79,7 +79,7 @@ void ToolbarInfo::add(ToolbarItem const & item)
 }
 
 
-ToolbarInfo & ToolbarInfo::read(LyXLex & lex)
+ToolbarInfo & ToolbarInfo::read(Lexer & lex)
 {
        enum tooltags {
                TO_COMMAND = 1,
@@ -92,7 +92,7 @@ ToolbarInfo & ToolbarInfo::read(LyXLex & lex)
                TO_ICONPALETTE,
                TO_LAST
        };
-       
+
        struct keyword_item toolTags[TO_LAST - 1] = {
                { "end", TO_ENDTOOLBAR },
                { "iconpalette", TO_ICONPALETTE },
@@ -165,7 +165,7 @@ ToolbarInfo & ToolbarInfo::read(LyXLex & lex)
                                add(ToolbarItem(ToolbarItem::POPUPMENU, name, label));
                        }
                        break;
-                       
+
                case TO_ICONPALETTE:
                        if (lex.next(true)) {
                                string const name = lex.getString();
@@ -174,17 +174,20 @@ ToolbarInfo & ToolbarInfo::read(LyXLex & lex)
                                add(ToolbarItem(ToolbarItem::ICONPALETTE, name, label));
                        }
                        break;
-                       
+
                case TO_LAYOUTS:
                        add(ToolbarItem(ToolbarItem::LAYOUTS,
                                FuncRequest(kb_action(ToolbarItem::LAYOUTS))));
                        break;
-                       
+
                case TO_TABLEINSERT:
-                       add(ToolbarItem(ToolbarItem::TABLEINSERT,
-                               FuncRequest(kb_action(ToolbarItem::TABLEINSERT))));
+                       if (lex.next(true)) {
+                               docstring const tooltip = lex.getDocString();
+                               add(ToolbarItem(ToolbarItem::TABLEINSERT,
+                                       FuncRequest(kb_action(ToolbarItem::TABLEINSERT)), tooltip));
+                       }
                        break;
-                       
+
                case TO_ENDTOOLBAR:
                        quit = true;
                        break;
@@ -208,14 +211,14 @@ ToolbarBackend::ToolbarBackend()
 }
 
 
-void ToolbarBackend::readToolbars(LyXLex & lex)
+void ToolbarBackend::readToolbars(Lexer & lex)
 {
        enum tooltags {
                TO_TOOLBAR = 1,
                TO_ENDTOOLBARSET,
                TO_LAST
        };
-       
+
        struct keyword_item toolTags[TO_LAST - 1] = {
                { "end", TO_ENDTOOLBARSET },
                { "toolbar", TO_TOOLBAR }
@@ -255,7 +258,7 @@ void ToolbarBackend::readToolbars(LyXLex & lex)
 }
 
 
-void ToolbarBackend::readToolbarSettings(LyXLex & lex)
+void ToolbarBackend::readToolbarSettings(Lexer & lex)
 {
        //consistency check
        if (compare_ascii_no_case(lex.getString(), "toolbars")) {
@@ -325,24 +328,21 @@ void ToolbarBackend::readToolbarSettings(LyXLex & lex)
 }
 
 
-ToolbarInfo const & ToolbarBackend::getToolbar(string const & name) const
+ToolbarInfo const * ToolbarBackend::getDefinedToolbarInfo(string const & name) const
 {
-       Toolbars::const_iterator cit = find_if(toolbars.begin(), toolbars.end(), ToolbarNamesEqual(name));
-       if (cit == toolbars.end())
-               lyxerr << "No toolbar named " << name << endl;
-       BOOST_ASSERT(cit != toolbars.end());
-       return (*cit);
+       Toolbars::const_iterator it = find_if(toolbars.begin(), toolbars.end(), ToolbarNamesEqual(name));
+       if (it == toolbars.end())
+               return 0;
+       return &(*it);
 }
 
 
-ToolbarInfo & ToolbarBackend::getToolbar(string const & name)
+ToolbarInfo * ToolbarBackend::getUsedToolbarInfo(string const &name)
 {
-       Toolbars::iterator it = find_if(toolbars.begin(), toolbars.end(), ToolbarNamesEqual(name));
-       if (it == toolbars.end())
-               lyxerr << "No toolbar named " << name << endl;
-       BOOST_ASSERT(it != toolbars.end());
-       return (*it);
+       Toolbars::iterator it = find_if(usedtoolbars.begin(), usedtoolbars.end(), ToolbarNamesEqual(name));
+       if (it == usedtoolbars.end())
+               return 0;
+       return &(*it);
 }
 
-
 } // namespace lyx