]> git.lyx.org Git - lyx.git/blobdiff - src/insets/InsetListingsParams.h
move the validation code from InsetFlex to InsetCollapsable
[lyx.git] / src / insets / InsetListingsParams.h
index 3b111a11d148aec618f2ca852c9ce1362f29a3e5..dc76ed40ad1db4cd34b24582b50c1aa7bf6a37b7 100644 (file)
@@ -12,7 +12,7 @@
 #ifndef INSETLISTINGSPARAMS_H
 #define INSETLISTINGSPARAMS_H
 
-#include <vector>
+#include <map>
 #include <exception>
 #include "Lexer.h"
 #include "InsetCollapsable.h"
@@ -35,11 +35,14 @@ public:
        void read(Lexer &);
 
        /// valid parameter string
-       std::string params() const { return params_; }
-       
+       std::string params(std::string const & sep=",") const;
+
        /// add key=value to params_
        void addParam(std::string const & key, std::string const & value);
-       
+
+       /// add a few parameters
+       void addParams(std::string const & par);
+
        /// set params_ with par, throw an exception if par is valid
        void setParams(std::string const & par);
 
@@ -54,47 +57,39 @@ public:
        /// get parameter from encoded string
        void fromEncodedString(std::string const & par);
 
-       /// 
+       ///
        bool isInline() const { return inline_; }
 
+       ///
+       bool isFloat() const;
+
        ///
        InsetCollapsable::CollapseStatus status() const { return status_; }
 
        ///
        void setInline(bool i) { inline_ = i; }
 
+       /// get value of option \c param
+       std::string getParamValue(std::string const & param) const;
+
        ///
        void clear() { params_.clear(); }
+       
+       /// validate parameter, return an error message
+       docstring validate() const;
 
 private:
        /// inline or normal listings
        bool inline_;
 
-       /// listing parameters, this will always be a *valid* string
-       /// that can be passed to listing packages.
-       std::string params_;
+       /// key-value pairs of the parameters
+       std::map<std::string, std::string> params_;
 
        /// collapsable status
        InsetCollapsable::CollapseStatus status_;
 };
 
 
-class invalidParam : public std::exception {
-public:
-       invalidParam(std::string const & details) :
-               details_(details)
-       {}
-
-       virtual const char * what() const throw() {
-               return details_.c_str();
-       }
-
-       virtual ~invalidParam() throw() {}
-private:
-       std::string const details_;
-};
-
-
 } // namespace lyx
 
 #endif