]> git.lyx.org Git - lyx.git/blobdiff - src/FloatList.cpp
Update sk.po
[lyx.git] / src / FloatList.cpp
index acdc628e7da95a56a9d7831762a40496487b5f47..5b2d367dcd01e2a69d48841b5d2b4f5a658195b9 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
  *
  * Full author contact details are available in file CREDITS.
  */
 #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
 }