#include "Buffer.h"
#include "BufferParams.h"
-#include "support/debug.h"
#include "FuncRequest.h"
#include "FuncStatus.h"
-#include "support/gettext.h"
#include "Layout.h"
#include "LyX.h"
#include "LyXFunc.h"
#include "TextClass.h"
#include "ToolbarBackend.h"
+#include "support/debug.h"
+#include "support/gettext.h"
+
+#include "support/assert.h"
+
+
using namespace std;
namespace lyx {
TurnOnFlag(AUTO);
}
/*
- std::cout << "State " << info.state << " FLAGS: " << flags
+ cout << "State " << info.state << " FLAGS: " << flags
<< " ON:" << (flags & ToolbarBackend::ON)
<< " OFF:" << (flags & ToolbarBackend::OFF)
<< " L:" << (flags & ToolbarBackend::LEFT)
<< " RE:" << (flags & ToolbarBackend::REVIEW)
<< " TB:" << (flags & ToolbarBackend::TABLE)
<< " AU:" << (flags & ToolbarBackend::AUTO)
- << std::endl;
+ << endl;
*/
// now set the flags
tbinfo.flags = static_cast<lyx::ToolbarInfo::Flags>(flags);
} else if (allowauto
&& ((flags & ToolbarInfo::MATH)
|| (flags & ToolbarInfo::TABLE)
- || (flags & ToolbarInfo::REVIEW))) {
+ || (flags & ToolbarInfo::REVIEW)
+ || (flags & ToolbarInfo::MATHMACROTEMPLATE))) {
// for math etc, toggle from on -> auto
TurnOffFlag(ON);
TurnOnFlag(AUTO);
}
tbi->flags = static_cast<ToolbarInfo::Flags>(flags);
}
+
+
+void GuiToolbars::toggleFullScreen(bool start_full_screen)
+{
+ // we need to know number of fullscreens until every
+ // LyXView has its own toolbar configuration
+ toolbarbackend.fullScreenWindows += start_full_screen ? 1 : -1;
+
+ // extracts the toolbars from the backend
+ ToolbarBackend::Toolbars::iterator cit = toolbarbackend.begin();
+ ToolbarBackend::Toolbars::iterator end = toolbarbackend.end();
+ int flags = 0;
+
+ for (; cit != end; ++cit) {
+
+ if (start_full_screen) {
+ if (toolbarbackend.fullScreenWindows == 1)
+ flags = cit->before_fullscreen = cit->flags;
+ TurnOffFlag(ON);
+ TurnOffFlag(AUTO);
+ TurnOnFlag(OFF);
+ } else
+ flags = cit->before_fullscreen;
+
+ cit->flags = static_cast<ToolbarInfo::Flags>(flags);
+ }
+}
#undef TurnOnFlag
#undef TurnOffFlag
-void GuiToolbars::update(bool in_math, bool in_table, bool review)
+void GuiToolbars::update(bool in_math, bool in_table, bool review,
+ bool in_mathmacrotemplate)
{
updateIcons();
else if ((cit->flags & ToolbarInfo::AUTO) && (cit->flags & ToolbarInfo::TABLE))
displayToolbar(*cit, in_table);
else if ((cit->flags & ToolbarInfo::AUTO) && (cit->flags & ToolbarInfo::REVIEW))
- displayToolbar(*cit, review);
+ displayToolbar(*cit, review);
+ else if ((cit->flags & ToolbarInfo::AUTO) && (cit->flags & ToolbarInfo::MATHMACROTEMPLATE))
+ displayToolbar(*cit, in_mathmacrotemplate);
}
}
bool GuiToolbars::visible(string const & name) const
{
- std::map<string, GuiToolbar *>::const_iterator it =
+ map<string, GuiToolbar *>::const_iterator it =
toolbars_.find(name);
if (it == toolbars_.end())
return false;
for (ToolbarBackend::Toolbars::iterator cit = toolbarbackend.begin();
cit != toolbarbackend.end(); ++cit) {
ToolbarsMap::iterator it = toolbars_.find(cit->name);
- BOOST_ASSERT(it != toolbars_.end());
+ LASSERT(it != toolbars_.end(), /**/);
// get toolbar info from session.
ToolbarSection::ToolbarInfo & info = tb.load(cit->name);
if (cit->flags & ToolbarInfo::ON)
bool show_it)
{
ToolbarsMap::iterator it = toolbars_.find(tbinfo.name);
- BOOST_ASSERT(it != toolbars_.end());
+ LASSERT(it != toolbars_.end(), /**/);
if (show_it) {
if (it->second->isVisible())