* Licence details can be found in the file COPYING.
*
* \author Martin Vermeer
- * \author Richard Heck
+ * \author Richard Kimberly Heck
*
* Full author contact details are available in file CREDITS.
*/
namespace lyx {
-InsetLayout::InsetLayout() :
- name_(from_ascii("undefined")), lyxtype_(STANDARD),
- labelstring_(from_ascii("UNDEFINED")), contentaslabel_(false),
- decoration_(DEFAULT), latextype_(NOLATEXTYPE), font_(inherit_font),
- labelfont_(sane_font), bgcolor_(Color_error),
- fixedwidthpreambleencoding_(false), htmlforcecss_ (false),
- htmlisblock_(true), docbooksection_(false), multipar_(true),
- custompars_(true), forceplain_(false), passthru_(false),
- parbreakisnewline_(false), parbreakignored_(false), freespacing_(false),
- keepempty_(false), forceltr_(false), forceownlines_(false),
- needprotect_(false), needcprotect_(false), needmboxprotect_(false),
- intoc_(false), spellcheck_(true), resetsfont_(false), display_(true),
- forcelocalfontswitch_(false), add_to_toc_(false), is_toc_caption_(false),
- edit_external_(false)
-{
- labelfont_.setColor(Color_error);
-}
-
-
-InsetLayout::InsetDecoration translateDecoration(std::string const & str)
+InsetDecoration translateDecoration(std::string const & str)
{
if (compare_ascii_no_case(str, "classic") == 0)
- return InsetLayout::CLASSIC;
+ return InsetDecoration::CLASSIC;
if (compare_ascii_no_case(str, "minimalistic") == 0)
- return InsetLayout::MINIMALISTIC;
+ return InsetDecoration::MINIMALISTIC;
if (compare_ascii_no_case(str, "conglomerate") == 0)
- return InsetLayout::CONGLOMERATE;
- return InsetLayout::DEFAULT;
+ return InsetDecoration::CONGLOMERATE;
+ return InsetDecoration::DEFAULT;
}
namespace {
-InsetLayout::InsetLaTeXType translateLaTeXType(std::string const & str)
+InsetLaTeXType translateLaTeXType(std::string const & str)
{
if (compare_ascii_no_case(str, "command") == 0)
- return InsetLayout::COMMAND;
+ return InsetLaTeXType::COMMAND;
if (compare_ascii_no_case(str, "environment") == 0)
- return InsetLayout::ENVIRONMENT;
+ return InsetLaTeXType::ENVIRONMENT;
if (compare_ascii_no_case(str, "none") == 0)
- return InsetLayout::NOLATEXTYPE;
- return InsetLayout::ILT_ERROR;
+ return InsetLaTeXType::NOLATEXTYPE;
+ return InsetLaTeXType::ILT_ERROR;
}
} // namespace
IL_HTMLSTYLE,
IL_HTMLPREAMBLE,
IL_DOCBOOKTAG,
- IL_DOCBOOKTAGTYPE,
IL_DOCBOOKATTR,
+ IL_DOCBOOKTAGTYPE,
IL_DOCBOOKSECTION,
+ IL_DOCBOOKININFO,
+ IL_DOCBOOKARGUMENTBEFOREMAINTAG,
+ IL_DOCBOOKARGUMENTAFTERMAINTAG,
+ IL_DOCBOOKNOTINPARA,
IL_DOCBOOKWRAPPERTAG,
IL_DOCBOOKWRAPPERTAGTYPE,
IL_DOCBOOKWRAPPERATTR,
+ IL_DOCBOOKITEMTAG,
+ IL_DOCBOOKITEMTAGTYPE,
+ IL_DOCBOOKITEMATTR,
+ IL_DOCBOOKITEMWRAPPERTAG,
+ IL_DOCBOOKITEMWRAPPERTAGTYPE,
+ IL_DOCBOOKITEMWRAPPERATTR,
+ IL_DOCBOOKINNERTAG,
+ IL_DOCBOOKINNERTAGTYPE,
+ IL_DOCBOOKINNERATTR,
+ IL_DOCBOOKNOFONTINSIDE,
+ IL_DOCBOOKRENDERASIMAGE,
IL_INTOC,
IL_ISTOCCAPTION,
IL_LABELFONT,
{ "custompars", IL_CUSTOMPARS },
{ "decoration", IL_DECORATION },
{ "display", IL_DISPLAY },
+ { "docbookargumentaftermaintag", IL_DOCBOOKARGUMENTAFTERMAINTAG },
+ { "docbookargumentbeforemaintag", IL_DOCBOOKARGUMENTBEFOREMAINTAG },
{ "docbookattr", IL_DOCBOOKATTR },
+ { "docbookininfo", IL_DOCBOOKININFO },
+ { "docbookinnerattr", IL_DOCBOOKINNERATTR },
+ { "docbookinnertag", IL_DOCBOOKINNERTAG },
+ { "docbookinnertagtype", IL_DOCBOOKINNERTAGTYPE },
+ { "docbookitemattr", IL_DOCBOOKITEMATTR },
+ { "docbookitemtag", IL_DOCBOOKITEMTAG },
+ { "docbookitemtagtype", IL_DOCBOOKITEMTAGTYPE },
+ { "docbookitemwrapperattr", IL_DOCBOOKITEMWRAPPERATTR },
+ { "docbookitemwrappertag", IL_DOCBOOKITEMWRAPPERTAG },
+ { "docbookitemwrappertagtype", IL_DOCBOOKITEMWRAPPERTAGTYPE },
+ { "docbooknofontinside", IL_DOCBOOKNOFONTINSIDE },
+ { "docbooknotinpara", IL_DOCBOOKNOTINPARA },
+ { "docbookrenderasimage", IL_DOCBOOKRENDERASIMAGE },
{ "docbooksection", IL_DOCBOOKSECTION },
{ "docbooktag", IL_DOCBOOKTAG },
{ "docbooktagtype", IL_DOCBOOKTAGTYPE },
lex.pushTable(elementTags);
- labelfont_ = inherit_font;
- bgcolor_ = Color_none;
+ if (labelfont_ == sane_font)
+ labelfont_ = inherit_font;
+ if (bgcolor_ == Color_error)
+ bgcolor_ = Color_none;
bool getout = false;
// whether we've read the CustomPars or ForcePlain tag
// for issuing a warning in case MultiPars comes later
string lt;
lex >> lt;
lyxtype_ = translateLyXType(lt);
- if (lyxtype_ == NOLYXTYPE) {
+ if (lyxtype_ == InsetLyXType::NOLYXTYPE) {
LYXERR0("Unknown LyXType `" << lt << "'.");
// this is not really a reason to abort
if (validating)
return false;
}
- if (lyxtype_ == CHARSTYLE) {
+ if (lyxtype_ == InsetLyXType::CHARSTYLE) {
// by default, charstyles force the plain layout
multipar_ = false;
forceplain_ = true;
string lt;
lex >> lt;
latextype_ = translateLaTeXType(lt);
- if (latextype_ == ILT_ERROR) {
+ if (latextype_ == InsetLaTeXType::ILT_ERROR) {
LYXERR0("Unknown LaTeXType `" << lt << "'.");
// this is not really a reason to abort
if (validating)
case IL_DOCBOOKTAG:
lex >> docbooktag_;
break;
+ case IL_DOCBOOKATTR:
+ lex >> docbookattr_;
+ break;
case IL_DOCBOOKTAGTYPE:
lex >> docbooktagtype_;
break;
- case IL_DOCBOOKATTR:
- lex >> docbookattr_;
+ case IL_DOCBOOKINNERTAG:
+ lex >> docbookinnertag_;
+ break;
+ case IL_DOCBOOKINNERATTR:
+ lex >> docbookinnerattr_;
+ break;
+ case IL_DOCBOOKINNERTAGTYPE:
+ lex >> docbookinnertagtype_;
+ break;
+ case IL_DOCBOOKININFO:
+ lex >> docbookininfo_;
+ break;
+ case IL_DOCBOOKARGUMENTBEFOREMAINTAG:
+ lex >> docbookargumentbeforemaintag_;
+ break;
+ case IL_DOCBOOKARGUMENTAFTERMAINTAG:
+ lex >> docbookargumentaftermaintag_;
+ break;
+ case IL_DOCBOOKNOTINPARA:
+ lex >> docbooknotinpara_;
break;
case IL_DOCBOOKSECTION:
lex >> docbooksection_;
break;
+ case IL_DOCBOOKITEMTAG:
+ lex >> docbookitemtag_;
+ break;
+ case IL_DOCBOOKITEMTAGTYPE:
+ lex >> docbookitemtagtype_;
+ break;
+ case IL_DOCBOOKITEMATTR:
+ lex >> docbookitemattr_;
+ break;
+ case IL_DOCBOOKITEMWRAPPERTAG:
+ lex >> docbookitemwrappertag_;
+ break;
+ case IL_DOCBOOKITEMWRAPPERTAGTYPE:
+ lex >> docbookitemwrappertagtype_;
+ break;
+ case IL_DOCBOOKITEMWRAPPERATTR:
+ lex >> docbookitemwrapperattr_;
+ break;
case IL_DOCBOOKWRAPPERTAG:
lex >> docbookwrappertag_;
break;
case IL_DOCBOOKWRAPPERATTR:
lex >> docbookwrapperattr_;
break;
+ case IL_DOCBOOKNOFONTINSIDE:
+ lex >> docbooknofontinside_;
+ break;
+ case IL_DOCBOOKRENDERASIMAGE:
+ lex >> docbookrenderasimage_;
+ break;
case IL_REQUIRES: {
lex.eatLine();
vector<string> const req
}
-InsetLayout::InsetLyXType translateLyXType(std::string const & str)
+InsetLyXType translateLyXType(std::string const & str)
{
if (compare_ascii_no_case(str, "charstyle") == 0)
- return InsetLayout::CHARSTYLE;
+ return InsetLyXType::CHARSTYLE;
if (compare_ascii_no_case(str, "custom") == 0)
- return InsetLayout::CUSTOM;
+ return InsetLyXType::CUSTOM;
if (compare_ascii_no_case(str, "end") == 0)
- return InsetLayout::END;
+ return InsetLyXType::END;
if (compare_ascii_no_case(str, "standard") == 0)
- return InsetLayout::STANDARD;
- return InsetLayout::NOLYXTYPE;
+ return InsetLyXType::STANDARD;
+ return InsetLyXType::NOLYXTYPE;
}
return retval;
}
+
+std::string const & InsetLayout::docbookininfo() const
+{
+ // Same as Layout::docbookininfo.
+ // Indeed, a trilean. Only titles should be "maybe": otherwise, metadata is "always", content is "never".
+ if (docbookininfo_.empty() || (docbookininfo_ != "never" && docbookininfo_ != "always" && docbookininfo_ != "maybe"))
+ docbookininfo_ = "never";
+ return docbookininfo_;
+}
+
+
+std::string InsetLayout::docbooktagtype() const
+{
+ if (docbooktagtype_ != "block" && docbooktagtype_ != "paragraph" && docbooktagtype_ != "inline")
+ docbooktagtype_ = "block";
+ return docbooktagtype_;
+}
+
+
+std::string InsetLayout::docbookinnertagtype() const
+{
+ if (docbookinnertagtype_ != "block" && docbookinnertagtype_ != "paragraph" && docbookinnertagtype_ != "inline")
+ docbookinnertagtype_ = "block";
+ return docbookinnertagtype_;
+}
+
+
+std::string InsetLayout::docbookwrappertagtype() const
+{
+ if (docbookwrappertagtype_ != "block" && docbookwrappertagtype_ != "paragraph" && docbookwrappertagtype_ != "inline")
+ docbookwrappertagtype_ = "block";
+ return docbookwrappertagtype_;
+}
+
+
+std::string InsetLayout::docbookitemtagtype() const
+{
+ if (docbookitemtagtype_ != "block" && docbookitemtagtype_ != "paragraph" && docbookitemtagtype_ != "inline")
+ docbookitemtagtype_ = "block";
+ return docbookitemtagtype_;
+}
+
+
+std::string InsetLayout::docbookitemwrappertagtype() const
+{
+ if (docbookitemwrappertagtype_ != "block" && docbookitemwrappertagtype_ != "paragraph" && docbookitemwrappertagtype_ != "inline")
+ docbookitemwrappertagtype_ = "block";
+ return docbookitemwrappertagtype_;
+}
+
+
void InsetLayout::readArgument(Lexer & lex)
{
Layout::latexarg arg;
} else if (tok == "freespacing") {
lex.next();
arg.free_spacing = lex.getBool();
+ } else if (tok == "docbooktag") {
+ lex.next();
+ arg.docbooktag = lex.getDocString();
+ } else if (tok == "docbookattr") {
+ lex.next();
+ arg.docbookattr = lex.getDocString();
+ } else if (tok == "docbooktagtype") {
+ lex.next();
+ arg.docbooktagtype = lex.getDocString();
+ } else if (tok == "docbookargumentbeforemaintag") {
+ lex.next();
+ arg.docbookargumentbeforemaintag = lex.getBool();
+ } else if (tok == "docbookargumentaftermaintag") {
+ lex.next();
+ arg.docbookargumentaftermaintag = lex.getBool();
} else {
lex.printError("Unknown tag");
error = true;