X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FToolbarBackend.cpp;h=a406cb48ab25691453095343bb5f001bdf0874a6;hb=6c977615633e5e132494b9a7fa778588210f9c95;hp=33084b396dd76bcdb372f9b2dcbe127f8c29d575;hpb=f630be890494c849981e4fb52ea4740506e92bed;p=lyx.git diff --git a/src/ToolbarBackend.cpp b/src/ToolbarBackend.cpp index 33084b396d..a406cb48ab 100644 --- a/src/ToolbarBackend.cpp +++ b/src/ToolbarBackend.cpp @@ -13,35 +13,28 @@ #include "ToolbarBackend.h" #include "FuncRequest.h" -#include "LyXLex.h" -#include "debug.h" -#include "gettext.h" +#include "Lexer.h" #include "LyXAction.h" #include "support/lstrings.h" +#include "support/debug.h" +#include "support/gettext.h" + #include + #include -#include "frontends/controllers/ControlMath.h" +using namespace std; +using namespace lyx::support; namespace lyx { -using support::compare_ascii_no_case; -using support::getVectorFromString; - -using std::endl; -using std::make_pair; -using std::string; -using std::vector; -using std::find_if; - - namespace { -class ToolbarNamesEqual : public std::unary_function { +class ToolbarNamesEqual +{ public: - ToolbarNamesEqual(string const & name) - : name_(name) {} + ToolbarNamesEqual(string const & name) : name_(name) {} bool operator()(ToolbarInfo const & tbinfo) const { return tbinfo.name == name_; @@ -63,7 +56,7 @@ ToolbarItem::ToolbarItem(Type type, FuncRequest const & func, docstring const & ToolbarItem::ToolbarItem(Type type, string const & name, docstring const & label) - : type_(type), name_(name), label_(label) + : type_(type), label_(label), name_(name) { } @@ -79,7 +72,7 @@ void ToolbarInfo::add(ToolbarItem const & item) } -ToolbarInfo & ToolbarInfo::read(LyXLex & lex) +ToolbarInfo & ToolbarInfo::read(Lexer & lex) { enum tooltags { TO_COMMAND = 1, @@ -92,7 +85,7 @@ ToolbarInfo & ToolbarInfo::read(LyXLex & lex) TO_ICONPALETTE, TO_LAST }; - + struct keyword_item toolTags[TO_LAST - 1] = { { "end", TO_ENDTOOLBAR }, { "iconpalette", TO_ICONPALETTE }, @@ -106,8 +99,8 @@ ToolbarInfo & ToolbarInfo::read(LyXLex & lex) //consistency check if (compare_ascii_no_case(lex.getString(), "toolbar")) { - lyxerr << "ToolbarInfo::read: ERROR wrong token:`" - << lex.getString() << '\'' << endl; + LYXERR0("ToolbarInfo::read: ERROR wrong token:`" + << lex.getString() << '\''); } lex.next(true); @@ -118,8 +111,8 @@ ToolbarInfo & ToolbarInfo::read(LyXLex & lex) // FIXME what to do here? if (!lex) { - lyxerr << "ToolbarInfo::read: Malformed toolbar " - "description " << lex.getString() << endl; + LYXERR0("ToolbarInfo::read: Malformed toolbar " + "description " << lex.getString()); return *this; } @@ -137,9 +130,8 @@ ToolbarInfo & ToolbarInfo::read(LyXLex & lex) docstring const tooltip = translateIfPossible(lex.getDocString()); lex.next(true); string const func_arg = lex.getString(); - LYXERR(Debug::PARSER) - << "ToolbarInfo::read TO_COMMAND func: `" - << func_arg << '\'' << endl; + LYXERR(Debug::PARSER, "ToolbarInfo::read TO_COMMAND func: `" + << func_arg << '\''); FuncRequest func = lyxaction.lookupFunc(func_arg); @@ -149,12 +141,12 @@ ToolbarInfo & ToolbarInfo::read(LyXLex & lex) case TO_MINIBUFFER: add(ToolbarItem(ToolbarItem::MINIBUFFER, - FuncRequest(kb_action(ToolbarItem::MINIBUFFER)))); + FuncRequest(FuncCode(ToolbarItem::MINIBUFFER)))); break; case TO_SEPARATOR: add(ToolbarItem(ToolbarItem::SEPARATOR, - FuncRequest(kb_action(ToolbarItem::SEPARATOR)))); + FuncRequest(FuncCode(ToolbarItem::SEPARATOR)))); break; case TO_POPUPMENU: @@ -165,7 +157,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 +166,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)))); + FuncRequest(FuncCode(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(FuncCode(ToolbarItem::TABLEINSERT)), tooltip)); + } break; - + case TO_ENDTOOLBAR: quit = true; break; @@ -205,17 +200,18 @@ ToolbarInfo & ToolbarInfo::read(LyXLex & lex) ToolbarBackend::ToolbarBackend() { + fullScreenWindows = 0; } -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 } @@ -223,8 +219,8 @@ void ToolbarBackend::readToolbars(LyXLex & lex) //consistency check if (compare_ascii_no_case(lex.getString(), "toolbarset")) { - lyxerr << "ToolbarBackend::readToolbars: ERROR wrong token:`" - << lex.getString() << '\'' << endl; + LYXERR0("ToolbarBackend::readToolbars: ERROR wrong token:`" + << lex.getString() << '\''); } lex.pushTable(toolTags, TO_LAST - 1); @@ -255,12 +251,12 @@ 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")) { - lyxerr << "ToolbarBackend::readToolbarSettings: ERROR wrong token:`" - << lex.getString() << '\'' << endl; + LYXERR0("ToolbarBackend::readToolbarSettings: ERROR wrong token:`" + << lex.getString() << '\''); } lex.next(true); @@ -280,8 +276,7 @@ void ToolbarBackend::readToolbarSettings(LyXLex & lex) } if (tcit == tend) { - lyxerr << "ToolbarBackend: undefined toolbar " - << name << endl; + LYXERR0("ToolbarBackend: undefined toolbar " << name); return; } @@ -303,6 +298,8 @@ void ToolbarBackend::readToolbarSettings(LyXLex & lex) flag = ToolbarInfo::MATH; else if (!compare_ascii_no_case(*cit, "table")) flag = ToolbarInfo::TABLE; + else if (!compare_ascii_no_case(*cit, "mathmacrotemplate")) + flag = ToolbarInfo::MATHMACROTEMPLATE; else if (!compare_ascii_no_case(*cit, "review")) flag = ToolbarInfo::REVIEW; else if (!compare_ascii_no_case(*cit, "top")) @@ -313,9 +310,12 @@ void ToolbarBackend::readToolbarSettings(LyXLex & lex) flag = ToolbarInfo::LEFT; else if (!compare_ascii_no_case(*cit, "right")) flag = ToolbarInfo::RIGHT; + else if (!compare_ascii_no_case(*cit, "auto")) + flag = ToolbarInfo::AUTO; else { - lyxerr << "ToolbarBackend::readToolbarSettings: unrecognised token:`" - << *cit << '\'' << endl; + LYXERR(Debug::ANY, + "ToolbarBackend::readToolbarSettings: unrecognised token:`" + << *cit << '\''); } tcit->flags = static_cast(tcit->flags | flag); } @@ -325,24 +325,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