]> git.lyx.org Git - lyx.git/blobdiff - src/FloatList.h
Remove updateInfo() calls in favor of doing the relevant work
[lyx.git] / src / FloatList.h
index 422110d6fd2b436b85ed790b6bcd30e3f6090984..5c0c3a7355830da940e218186a72fb1e06fa19d3 100644 (file)
@@ -1,81 +1,63 @@
 // -*- C++ -*-
-/* This file is part of
- * ======================================================
- * 
- *           LyX, The Document Processor
+/**
+ * \file FloatList.h
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
  *
- *           Copyright 1998-2000 The LyX Team.
+ * \author Lars Gullik Bjønnes
  *
- * ======================================================
+ * Full author contact details are available in file CREDITS.
  */
 
 #ifndef FLOATLIST_H
 #define FLOATLIST_H
 
-#ifdef __GNUG__
-#pragma interface
-#endif
+#include "Floating.h"
 
 #include <map>
+#include <string>
+
+
+namespace lyx {
 
-#include "LString.h"
-#include "Floating.h"
 
 ///
 class FloatList {
 public:
        ///
-       typedef std::map<string, Floating> List;
+       typedef std::map<std::string, Floating> List;
+       ///
+       typedef List::const_iterator const_iterator;
+       ///
+       FloatList();
+       ///
+       const_iterator begin() const;
        ///
-       FloatList() {
-               // Insert the latex builtin float-types
-               Floating table;
-               table.type = "table";
-               table.placement = "";
-               table.ext = "lot";
-               table.within = "";
-               table.style = "";
-               table.name = "";
-               table.builtin = true;
-               list[table.type] = table;
-               Floating figure;
-               figure.type = "figure";
-               figure.placement = "";
-               figure.ext = "lof";
-               figure.within = "";
-               figure.style = "";
-               figure.name = "";
-               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;
-       }
+       const_iterator end() const;
        ///
-       void newFloat(Floating const & fl) {
-               list[fl.type] = fl;
-       }
+       void newFloat(Floating const & fl);
        ///
-       string defaultPlacement(string const & t) const {
-               List::const_iterator cit = list.find(t);
-               if (cit != list.end())
-                       return (*cit).second.placement;
-               return string();
-       }
-       
+       std::string const defaultPlacement(std::string const & t) const;
+       ///
+       std::string const allowedPlacement(std::string const & t) const;
+       ///
+       bool typeExist(std::string const & t) const;
+       ///
+       bool allowsWide(std::string const & t) const;
+       ///
+       bool allowsSideways(std::string const & t) const;
+       ///
+       Floating const & getType(std::string const & t) const;
+       ///
+       void erase(std::string const & t);
+       ///
+       const_iterator operator[](std::string const & t) const;
 private:
        ///
        List list;
 };
 
-extern FloatList floatList;
+
+} // namespace lyx
 
 #endif