X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FCitation.h;h=b7af22b751dac00951265db9d90be3ce43220d34;hb=2b02b73f4a59bb73f9e819a960ea98c86ef8716f;hp=fed47a5aef79d125c247a0d0c9610dea3acae357;hpb=f6d4bce12303a2f30ea129ee86e7f7d879668260;p=lyx.git diff --git a/src/Citation.h b/src/Citation.h index fed47a5aef..b7af22b751 100644 --- a/src/Citation.h +++ b/src/Citation.h @@ -12,12 +12,12 @@ #ifndef CITATION_H #define CITATION_H +#include "support/docstring.h" #include +#include namespace lyx { -class Buffer; - enum CiteEngineType { ENGINE_TYPE_AUTHORYEAR = 1, @@ -31,7 +31,8 @@ class CitationStyle public: /// CitationStyle() : name("cite"), cmd("cite"), forceUpperCase(false), - hasStarredVersion(false), textAfter(false), textBefore(false) {} + hasStarredVersion(false), hasQualifiedList(false), + textAfter(false), textBefore(false) {} /// the LyX name std::string name; @@ -45,12 +46,64 @@ public: bool forceUpperCase; /// starred version (full author list by default) bool hasStarredVersion; + /// allows for qualified citation lists (a Biblatex feature) + bool hasQualifiedList; /// supports text after the citation bool textAfter; /// supports text before the citation bool textBefore; }; + +/** + * Class for storing information about a given citation item in a given context. + * This is used in the label and menu string generation process. + */ +class CiteItem +{ +public: + /// The context this citation is displayed + enum CiteContext{ + Everywhere, + Dialog, + Export + }; + /// + CiteItem() : forceUpperCase(false), Starred(false), isQualified(false), + context(CiteItem::Everywhere), textAfter(docstring()), + textBefore(docstring()), max_size(128), max_key_size(128), + richtext(false) {} + /// requests upper casing author prefixes (van -> Van) + bool forceUpperCase; + /// is starred version (full author list by default) + bool Starred; + /// is a real qualified list + bool isQualified; + /// where this to be displayed? + CiteItem::CiteContext context; + /// text after the citation + docstring textAfter; + /// text before the citation + docstring textBefore; + /// + typedef std::vector> QualifiedList; + /// Qualified lists's pre texts + QualifiedList pretexts; + /// + QualifiedList getPretexts() const { return pretexts; } + /// Qualified lists's post texts + QualifiedList posttexts; + /// + QualifiedList getPosttexts() const { return posttexts; } + /// the maximum display size as a label + size_t max_size; + /// the maximum size of the processed keys + /// (limited for performance reasons) + size_t max_key_size; + /// output richtext information? + bool richtext; +}; + } // namespace lyx #endif