]> git.lyx.org Git - lyx.git/blobdiff - src/Citation.h
Update it.po
[lyx.git] / src / Citation.h
index 2e0fc3d8bd96bf878e010072a8464e7bf619d182..600ba6ca97bc8a8b1282ec5606283793b71eb254 100644 (file)
 #ifndef CITATION_H
 #define CITATION_H
 
+#include "support/docstring.h"
+#include <map>
+#include <string>
+
 namespace lyx {
 
 class Buffer;
 
-enum CiteEngine {
-       ENGINE_BASIC,
-       ENGINE_NATBIB_AUTHORYEAR,
-       ENGINE_NATBIB_NUMERICAL,
-       ENGINE_JURABIB
-};
 
-enum CiteStyle {
-       CITE,
-       CITET,
-       CITEP,
-       CITEALT,
-       CITEALP,
-       CITEAUTHOR,
-       CITEYEAR,
-       CITEYEARPAR,
-       NOCITE
+enum CiteEngineType {
+       ENGINE_TYPE_AUTHORYEAR = 1,
+       ENGINE_TYPE_NUMERICAL = 2,
+       ENGINE_TYPE_DEFAULT = 3,
 };
 
 
@@ -40,14 +32,76 @@ class CitationStyle
 {
 public:
        ///
-       CitationStyle() : style(CITE), full(false), forceUpperCase(false) {}
+       CitationStyle() : name("cite"), cmd("cite"), forceUpperCase(false),
+               hasStarredVersion(false), hasQualifiedList(false),
+               textAfter(false), textBefore(false) {}
+
+       /// the LyX name
+       std::string name;
+       /// the LaTeX command (might differ from the LyX name)
+       std::string cmd;
+       /// Optional alternative description what the starred version does (for the GUI)
+       std::string stardesc;
+       /// Optional tooltip for the starred version
+       std::string startooltip;
+       /// upper casing author prefixes (van -> Van)
+       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
+       };
        ///
-       CiteStyle style;
+       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;
+       /// Qualified lists's pre texts
+       std::map<docstring, docstring> pretexts;
        ///
-       bool full;
+       std::map<docstring, docstring> getPretexts() const { return pretexts; }
+       /// Qualified lists's post texts
+       std::map<docstring, docstring> posttexts;
        ///
-       bool forceUpperCase;
+       std::map<docstring, docstring> 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