X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FInsetListingsParams.h;h=7388acd3c42554fca8218400f573e7b42da265b0;hb=239b9919ffe28338d789e6dc9122228f77ab77a7;hp=341d73d507aa28b3e622e8e2e16a3a0f6a0649e8;hpb=897436efbb9bd641b61467d185a2dfae9839e575;p=lyx.git diff --git a/src/insets/InsetListingsParams.h b/src/insets/InsetListingsParams.h index 341d73d507..7388acd3c4 100644 --- a/src/insets/InsetListingsParams.h +++ b/src/insets/InsetListingsParams.h @@ -12,10 +12,9 @@ #ifndef INSETLISTINGSPARAMS_H #define INSETLISTINGSPARAMS_H +#include "InsetCaptionable.h" + #include -#include -#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); @@ -74,35 +75,29 @@ public: /// void clear() { params_.clear(); } + + /// validate parameter, return an error message + docstring validate() const; 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 params_; + // Use a vector of pairs in order to maintain the order of insertion. + typedef std::vector > keyValuePair; + keyValuePair params_; /// collapsable status InsetCollapsable::CollapseStatus status_; }; -class invalidParam : public std::exception { -public: - invalidParam(docstring const & details) - : details_(to_utf8(details)) - {} - - virtual const char * what() const throw() { - return details_.c_str(); - } - - virtual ~invalidParam() throw() {} -private: - std::string const details_; -}; - - } // namespace lyx #endif