]> git.lyx.org Git - lyx.git/blobdiff - src/FloatList.C
small changes to ButtonController usage
[lyx.git] / src / FloatList.C
index 77a885a2bf358804eb119f05043157eaca54ec8a..fbbfa370a0caf7a0db3223272e3cfa40a3033da6 100644 (file)
@@ -1,5 +1,81 @@
 #include <config.h>
 
+#ifdef __GNUG__
+#pragma implementation
+#endif
+
 #include "FloatList.h"
 
+FloatList::FloatList()
+{
+       // Insert the latex builtin float-types
+       Floating table;
+       table.type = "table";
+       table.placement = "htbp";
+       table.ext = "lot";
+       table.within = "";
+       table.style = "plain";
+       table.name = "Table";
+       table.builtin = true;
+       list[table.type] = table;
+       Floating figure;
+       figure.type = "figure";
+       figure.placement = "htbp";
+       figure.ext = "lof";
+       figure.within = "";
+       figure.style = "plain";
+       figure.name = "Figure";
+       figure.builtin = true;
+       list[figure.type] = figure;
+       // And we add algorithm too since LyX has
+       // supported that for a long time
+       Floating algorithm;
+       algorithm.type = "algorithm";
+       algorithm.placement = "htbp";
+       algorithm.ext = "loa";
+       algorithm.within = "";
+       algorithm.style = "ruled";
+       algorithm.name = "Algorithm";
+       algorithm.builtin = false;
+       list[algorithm.type] = algorithm;
+}
+
+
+void FloatList::newFloat(Floating const & fl)
+{
+       list[fl.type] = fl;
+}
+
+
+string FloatList::defaultPlacement(string const & t) const
+{
+       List::const_iterator cit = list.find(t);
+       if (cit != list.end())
+               return (*cit).second.placement;
+       return string();
+}
+
+
+bool FloatList::typeExist(string const & t) const
+{
+       List::const_iterator cit = list.find(t);
+       return cit != list.end();
+}
+
+
+Floating const & FloatList::getType(string const & t) const
+{
+       // I wish we could use exceptions
+       List::const_iterator cit = list.find(t);
+       if (cit != list.end())
+               return (*cit).second;
+#ifdef HAVE_EXCEPTIONS
+       throw UnknownFloatType(t);
+#else
+       static Floating empty_float;
+       return empty_float;
+#endif
+}
+
+// The global floatlist
 FloatList floatList;