lyx_mirror/src/insets/InsetListingsParams.h
Juergen Spitzmueller c466baaa5b Collapsable -> Collapsible (part 2)
The current spelling is not strictly wrong, but flagged as unusual or
historical by some authorities. It is also found fault with many
spell checkers. Thus we decided to move to the more standard "-ible"
form once and for all.

See #10678 for discussion

This part covers the most tricky part: the internal naming.
Translations and layouts will follow.

This will all also all be backported to 2.3.x, for the sake of backwards
compatibility (cherry-picking).
2017-10-16 10:12:21 +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 avaible, 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