mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-17 02:05:48 +00:00
c466baaa5b
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).
116 lines
2.8 KiB
C++
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
|