X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FFloatList.cpp;h=5b2d367dcd01e2a69d48841b5d2b4f5a658195b9;hb=462cb3c3c66f2e5e049d33852a7aa02551587d53;hp=acdc628e7da95a56a9d7831762a40496487b5f47;hpb=f630be890494c849981e4fb52ea4740506e92bed;p=lyx.git diff --git a/src/FloatList.cpp b/src/FloatList.cpp index acdc628e7d..5b2d367dcd 100644 --- a/src/FloatList.cpp +++ b/src/FloatList.cpp @@ -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 * * Full author contact details are available in file CREDITS. */ @@ -13,31 +13,12 @@ #include "FloatList.h" #include "Floating.h" +using namespace std; namespace lyx { -using std::string; - -// This class is now mostly finished, except one thing, it is a global -// object. This will not do. The user (and layout files) are free to -// create floats and modify them to fit into a certain document. So it is -// pretty clear that each layout needs its own list, as do documents. -// However this is also not enough since we really want the user to be -// able to create "presistent" floats, in the sense that a user created -// float can be used across sessions and across documents. So we need a -// global¹ floatlist as well. The interaction between these are not quite -// clear, but it seems natural that the definition found in the document -// takes precedence. -// We also have the issue about what get stored _in_ the lyx file. -// -// ¹ not absolutely global but somewhere where documents,layouts and -// the bufferview can have access to it. -// -// Lgb - FloatList::FloatList() -{ -} +{} FloatList::const_iterator FloatList::begin() const @@ -54,7 +35,7 @@ FloatList::const_iterator FloatList::end() const void FloatList::newFloat(Floating const & fl) { - list[fl.type()] = fl; + list[fl.floattype()] = fl; } @@ -67,6 +48,15 @@ string const FloatList::defaultPlacement(string const & t) const } +string const FloatList::allowedPlacement(string const & t) const +{ + List::const_iterator cit = list.find(t); + if (cit != list.end()) + return cit->second.allowedPlacement(); + return string(); +} + + bool FloatList::typeExist(string const & t) const { List::const_iterator cit = list.find(t); @@ -74,6 +64,24 @@ bool FloatList::typeExist(string const & t) const } +bool FloatList::allowsWide(string const & t) const +{ + List::const_iterator cit = list.find(t); + if (cit != list.end()) + return cit->second.allowsWide(); + return false; +} + + +bool FloatList::allowsSideways(string const & t) const +{ + List::const_iterator cit = list.find(t); + if (cit != list.end()) + return cit->second.allowsSideways(); + return false; +} + + Floating const & FloatList::getType(string const & t) const { // I wish we could use exceptions @@ -83,7 +91,7 @@ Floating const & FloatList::getType(string const & t) const #ifdef HAVE_EXCEPTIONS throw UnknownFloatType(t); #else - static Floating empty_float; + static Floating const empty_float; return empty_float; #endif }