lyx_mirror/src/insets/InsetListingsParams.h
Jean-Marc Lasgouttes 5d4e6dfb68 Run codespell on src/insets
Command was
codespell -w -i 3  -S Makefile.in -L mathed,afe,tthe,ue,fro,uint,larg,alph,te,thes,alle,Claus,pres,pass-thru  src/insets/
2020-06-25 23:46:16 +02:00

116 lines
2.8 KiB
C++

// -*- C++ -*-
/**
* \file InsetListingsParams.h
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
* \author Bo Peng
*
* Full author contact details are available in file CREDITS.
*/
#ifndef INSETLISTINGSPARAMS_H
#define INSETLISTINGSPARAMS_H
#include "InsetCaptionable.h"
#include <map>
namespace lyx {
class InsetListingsParams {
public:
///
InsetListingsParams();
///
InsetListingsParams(std::string const &, bool in=false,
InsetCollapsible::CollapseStatus s = InsetCollapsible::Open);
/// write parameters to an ostream
void write(std::ostream &) const;
/// read parameters from an ostream
void read(Lexer &);
/// valid parameter string
std::string params(std::string const & sep=",") const;
/// 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);
/// set params_ with par, throw an exception if par is valid
void setParams(std::string const & par);
/// generate a parameter string that can be safely save and restored
/// by lyx' lexer
std::string encodedString() const;
/// newline (\n) separated parameters. comma can be removed.
/// One possible complication is that , may appear in option value.
std::string separatedParams(bool keepComma = false) const;
/// get parameter from encoded string
void fromEncodedString(std::string const & par);
///
bool isInline() const { return inline_; }
///
bool isFloat() const;
///
InsetCollapsible::CollapseStatus status() const { return status_; }
///
void setInline(bool i) { inline_ = i; }
///
void setMinted(bool use_minted) { package_ = use_minted ? 1 : 0; }
///
static int package() { return package_; }
///
bool minted() { return package_ == 1; }
/// 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:
/// listings or minted package (0 or 1, respectively)
static int package_;
/// 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 available, else empty string
std::string getValue(std::string const & key) const;
/// key-value pairs of the parameters
// Use a vector of pairs in order to maintain the order of insertion.
typedef std::vector<std::pair<std::string, std::string> > keyValuePair;
keyValuePair params_;
/// collapsible status
InsetCollapsible::CollapseStatus status_;
};
} // namespace lyx
#endif