3 * \file InsetListingsParams.h
4 * This file is part of LyX, the document processor.
5 * Licence details can be found in the file COPYING.
9 * Full author contact details are available in file CREDITS.
12 #ifndef INSETLISTINGSPARAMS_H
13 #define INSETLISTINGSPARAMS_H
18 #include "InsetCollapsable.h"
22 class InsetListingsParams {
25 InsetListingsParams();
28 InsetListingsParams(std::string const &, bool in=false,
29 InsetCollapsable::CollapseStatus s = InsetCollapsable::Open);
31 /// write parameters to an ostream
32 void write(std::ostream &) const;
34 /// read parameters from an ostream
37 /// valid parameter string
38 std::string params(std::string const & sep=",") const;
40 /// add key=value to params_
41 void addParam(std::string const & key, std::string const & value);
43 /// add a few parameters
44 void addParams(std::string const & par);
46 /// set params_ with par, throw an exception if par is valid
47 void setParams(std::string const & par);
49 /// generate a parameter string that can be safely save and restored
51 std::string encodedString() const;
53 /// newline (\n) separated parameters. comma can be removed.
54 /// One possible complication is that , may appear in option value.
55 std::string separatedParams(bool keepComma = false) const;
57 /// get parameter from encoded string
58 void fromEncodedString(std::string const & par);
61 bool isInline() const { return inline_; }
67 InsetCollapsable::CollapseStatus status() const { return status_; }
70 void setInline(bool i) { inline_ = i; }
72 /// get value of option \c param
73 std::string getParamValue(std::string const & param) const;
76 void clear() { params_.clear(); }
78 /// validate parameter, return an error message
79 docstring validate() const;
82 /// inline or normal listings
85 /// key-value pairs of the parameters
86 std::map<std::string, std::string> params_;
88 /// collapsable status
89 InsetCollapsable::CollapseStatus status_;