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() const { return params_; }
40 /// add key=value to params_
41 void addParam(std::string const & key, std::string const & value);
43 /// set params_ with par, throw an exception if par is valid
44 void setParams(std::string const & par);
46 /// generate a parameter string that can be safely save and restored
48 std::string encodedString() const;
50 /// newline (\n) separated parameters. comma can be removed.
51 /// One possible complication is that , may appear in option value.
52 std::string separatedParams(bool keepComma = false) const;
54 /// get parameter from encoded string
55 void fromEncodedString(std::string const & par);
58 bool isInline() const { return inline_; }
61 InsetCollapsable::CollapseStatus status() const { return status_; }
64 void setInline(bool i) { inline_ = i; }
67 void clear() { params_.clear(); }
70 /// inline or normal listings
73 /// listing parameters, this will always be a *valid* string
74 /// that can be passed to listing packages.
77 /// collapsable status
78 InsetCollapsable::CollapseStatus status_;
82 class invalidParam : public std::exception {
84 invalidParam(std::string const & details) :
88 virtual const char * what() const throw() {
89 return details_.c_str();
92 virtual ~invalidParam() throw() {}
94 std::string const details_;