]> 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 56a70d7fc83b263fc33c65173c967c88e2eeb7c8..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,14 +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);
 
@@ -57,9 +57,12 @@ 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_; }
 
@@ -71,39 +74,22 @@ public:
 
        ///
        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_;
-
-       /// keys defined in params_ 
-       std::vector<std::string> keys_;
+       /// 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