]> git.lyx.org Git - lyx.git/blobdiff - src/insets/InsetListingsParams.h
Merge branch 'master' into biblatex2
[lyx.git] / src / insets / InsetListingsParams.h
index dc76ed40ad1db4cd34b24582b50c1aa7bf6a37b7..7388acd3c42554fca8218400f573e7b42da265b0 100644 (file)
 #ifndef INSETLISTINGSPARAMS_H
 #define INSETLISTINGSPARAMS_H
 
+#include "InsetCaptionable.h"
+
 #include <map>
-#include <exception>
-#include "Lexer.h"
-#include "InsetCollapsable.h"
 
 namespace lyx {
 
@@ -37,8 +36,10 @@ public:
        /// valid parameter string
        std::string params(std::string const & sep=",") const;
 
-       /// add key=value to params_
-       void addParam(std::string const & key, std::string const & value);
+       /// add key=value to params_. key_=value will be used if key=value already exists
+       /// unless replace=true.
+       void addParam(std::string const & key, std::string const & value, 
+                       bool replace = false);
 
        /// add a few parameters
        void addParams(std::string const & par);
@@ -82,8 +83,15 @@ private:
        /// inline or normal listings
        bool inline_;
 
+       /// Do we have a param with the given \c key?
+       bool hasParam(std::string const & key) const;
+       /// return the value for the given \c key, if avaible, else empty string
+       std::string getValue(std::string const & key) const;
+
        /// key-value pairs of the parameters
-       std::map<std::string, std::string> params_;
+       // Use a vector of pairs in order to maintain the order of insertion.
+       typedef std::vector<std::pair<std::string, std::string> > keyValuePair;
+       keyValuePair params_;
 
        /// collapsable status
        InsetCollapsable::CollapseStatus status_;