]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/Toolbars.cpp
cosmetics (whitespace and no-op functions)
[lyx.git] / src / frontends / Toolbars.cpp
index c424be9d05413a149c24feaa91fc3dcb50e15809..f28a2b70113cd8ebcccd7cc4d9991bd4d245c748 100644 (file)
@@ -3,7 +3,7 @@
  * This file is part of LyX, the document processor.
  * Licence details can be found in the file COPYING.
  *
- * \author Lars Gullik Bjønnes
+ * \author Lars Gullik Bjønnes
  * \author Angus Leeming
  *
  * Full author contact details are available in file CREDITS.
@@ -20,7 +20,7 @@
 #include "FuncStatus.h"
 #include "gettext.h"
 #include "LyXFunc.h"
-#include "LyXTextClass.h"
+#include "TextClass.h"
 #include "LyXView.h"
 #include "LyX.h"
 
@@ -46,7 +46,7 @@ void Toolbars::initFlags(ToolbarInfo & tbinfo)
 
        unsigned int flags = static_cast<unsigned int>(tbinfo.flags);
 
-       // Remove default.ui positions. Only when a valid postion is stored 
+       // Remove default.ui positions. Only when a valid postion is stored
        // in the session file the default.ui value will be overwritten
        unsigned int save = flags;
        TurnOffFlag(TOP);
@@ -86,16 +86,16 @@ void Toolbars::initFlags(ToolbarInfo & tbinfo)
        }
        /*
        std::cout << "State " << info.state << " FLAGS: " << flags
-               << " ON:" << (flags & ToolbarBackend::ON) 
+               << " ON:" << (flags & ToolbarBackend::ON)
                << " OFF:" << (flags & ToolbarBackend::OFF)
-               << " L:" << (flags & ToolbarBackend::LEFT) 
-               << " R:" << (flags & ToolbarBackend::RIGHT) 
-               << " T:" << (flags & ToolbarBackend::TOP) 
-               << " B:" << (flags & ToolbarBackend::BOTTOM) 
-               << " MA:" << (flags & ToolbarBackend::MATH) 
-               << " RE:" << (flags & ToolbarBackend::REVIEW) 
-               << " TB:" << (flags & ToolbarBackend::TABLE) 
-               << " AU:" << (flags & ToolbarBackend::AUTO) 
+               << " L:" << (flags & ToolbarBackend::LEFT)
+               << " R:" << (flags & ToolbarBackend::RIGHT)
+               << " T:" << (flags & ToolbarBackend::TOP)
+               << " B:" << (flags & ToolbarBackend::BOTTOM)
+               << " MA:" << (flags & ToolbarBackend::MATH)
+               << " RE:" << (flags & ToolbarBackend::REVIEW)
+               << " TB:" << (flags & ToolbarBackend::TABLE)
+               << " AU:" << (flags & ToolbarBackend::AUTO)
                << std::endl;
        */
        // now set the flags
@@ -151,14 +151,13 @@ void Toolbars::display(string const & name, bool show)
        for (; cit != end; ++cit) {
                if (cit->name == name) {
                        unsigned int flags = cit->flags;
+                       TurnOffFlag(ON);
+                       TurnOffFlag(OFF);
                        TurnOffFlag(AUTO);
-                       if (show) {
+                       if (show)
                                TurnOnFlag(ON);
+                       else
                                TurnOnFlag(OFF);
-                       } else {
-                               TurnOnFlag(OFF);
-                               TurnOnFlag(ON);
-                       }
                        cit->flags = static_cast<lyx::ToolbarInfo::Flags>(flags);
                        displayToolbar(*cit, show);
                        return;
@@ -170,56 +169,44 @@ void Toolbars::display(string const & name, bool show)
 }
 
 
-ToolbarInfo::Flags Toolbars::getToolbarState(string const & name)
-{      
-       ToolbarBackend::Toolbars::const_iterator cit = toolbarbackend.begin();
-       ToolbarBackend::Toolbars::const_iterator end = toolbarbackend.end();
-
-       for (; cit != end; ++cit) {
-               if (cit->name == name)
-                       return cit->flags;
-       }
-
-       LYXERR(Debug::GUI) << "Toolbar::display: no toolbar named "
-               << name << endl;
-
-       // return dummy for msvc
-       return ToolbarInfo::OFF;
+ToolbarInfo * Toolbars::getToolbarInfo(string const & name)
+{
+       return toolbarbackend.getUsedToolbarInfo(name);
 }
 
 
-void Toolbars::toggleToolbarState(string const & name)
+void Toolbars::toggleToolbarState(string const & name, bool allowauto)
 {
-       ToolbarBackend::Toolbars::iterator cit = toolbarbackend.begin();
-       ToolbarBackend::Toolbars::iterator end = toolbarbackend.end();
+       ToolbarInfo * tbi = toolbarbackend.getUsedToolbarInfo(name);
 
-       for (; cit != end; ++cit) {
-               if (cit->name == name) {
-                       int flags = cit->flags;
-                       // off -> on
-                       if (flags & ToolbarInfo::OFF) {
-                               TurnOffFlag(OFF);
-                               TurnOnFlag(ON);
-                       // auto -> off
-                       } else if (flags & ToolbarInfo::AUTO) {
-                               TurnOffFlag(AUTO);
-                               TurnOnFlag(OFF);
-                       } else if ((flags & ToolbarInfo::MATH) || (flags & ToolbarInfo::TABLE)
-                               || (flags & ToolbarInfo::REVIEW)) {
-                               // for math etc, toggle from on -> auto
-                               TurnOffFlag(ON);
-                               TurnOnFlag(AUTO);
-                       } else {
-                               // for others, toggle from on -> off
-                               TurnOffFlag(ON);
-                               TurnOnFlag(OFF);
-                       }
-                       cit->flags = static_cast<lyx::ToolbarInfo::Flags>(flags);
-                       return;
-               }
+       if (!tbi) {
+               LYXERR(Debug::GUI) << "Toolbar::display: no toolbar named "
+                       << name << endl;
+               return;
        }
-       LYXERR(Debug::GUI) << "Toolbar::display: no toolbar named "
-               << name << endl;
+
+       int flags = tbi->flags;
+       // off -> on
+       if (flags & ToolbarInfo::OFF) {
+               TurnOffFlag(OFF);
+               TurnOnFlag(ON);
+       // auto -> off
+       } else if (flags & ToolbarInfo::AUTO) {
+               TurnOffFlag(AUTO);
+               TurnOnFlag(OFF);
+       } else if (allowauto 
+                  && ((flags & ToolbarInfo::MATH) 
+                      || (flags & ToolbarInfo::TABLE)
+                      || (flags & ToolbarInfo::REVIEW))) {
+               // for math etc, toggle from on -> auto
+               TurnOffFlag(ON);
+               TurnOnFlag(AUTO);
+       } else {
+               // for others, toggle from on -> off
+               TurnOffFlag(ON);
+               TurnOnFlag(OFF);
+       }
+       tbi->flags = static_cast<ToolbarInfo::Flags>(flags);
 }
 #undef TurnOnFlag
 #undef TurnOffFlag
@@ -248,6 +235,16 @@ void Toolbars::update(bool in_math, bool in_table, bool review)
 }
 
 
+bool Toolbars::visible(string const & name) const
+{
+       std::map<string, ToolbarPtr>::const_iterator it =
+               toolbars_.find(name);
+       if (it == toolbars_.end())
+               return false;
+       return it->second.get()->isVisible();
+}
+
+
 void Toolbars::saveToolbarInfo()
 {
        ToolbarSection & tb = LyX::ref().session().toolbars();
@@ -281,7 +278,7 @@ void Toolbars::saveToolbarInfo()
 }
 
 
-void Toolbars::setLayout(string const & layout)
+void Toolbars::setLayout(docstring const & layout)
 {
        if (layout_)
                layout_->set(layout);
@@ -359,16 +356,15 @@ void Toolbars::update()
 }
 
 
-void layoutSelected(LyXView & lv, string const & name)
+void layoutSelected(LyXView & lv, docstring const & name)
 {
-       LyXTextClass const & tc = lv.buffer()->params().getLyXTextClass();
+       TextClass const & tc = lv.buffer()->params().getTextClass();
 
-       LyXTextClass::const_iterator it  = tc.begin();
-       LyXTextClass::const_iterator const end = tc.end();
+       TextClass::const_iterator it  = tc.begin();
+       TextClass::const_iterator const end = tc.end();
        for (; it != end; ++it) {
-               string const & itname = (*it)->name();
-               // Yes, the lyx::to_utf8(_()) is correct
-               if (lyx::to_utf8(_(itname)) == name) {
+               docstring const & itname = (*it)->name();
+               if (translateIfPossible(itname) == name) {
                        FuncRequest const func(LFUN_LAYOUT, itname,
                                               FuncRequest::TOOLBAR);
                        lv.dispatch(func);