// -*- 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();
///
- 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 begin() const;
///
- void newFloat(Floating const & fl) {
- list[fl.type] = fl;
- }
+ const_iterator end() const;
///
- string defaultPlacement(string const & t) const {
- List::const_iterator cit = list.find(t);
- if (cit != list.end())
- return (*cit).second.placement;
- return string();
- }
-
+ void newFloat(Floating const & fl);
+ ///
+ std::string const defaultPlacement(std::string const & t) const;
+ ///
+ bool typeExist(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