4 * This file is part of LyX, the document processor.
5 * Licence details can be found in the file COPYING.
7 * \author Angus Leeming
10 * Full author contact details are available in file CREDITS.
17 #include "insetcommand.h"
18 #include "bufferparams.h"
21 /** Used to insert citations
23 class InsetCitation : public InsetCommand {
26 InsetCitation(InsetCommandParams const &);
28 std::string const getScreenLabel(Buffer const &) const;
30 EDITABLE editable() const { return IS_EDITABLE; }
32 InsetBase::Code lyxCode() const { return InsetBase::CITE_CODE; }
34 int plaintext(Buffer const &, std::ostream &, OutputParams const &) const;
36 int latex(Buffer const &, std::ostream &,
37 OutputParams const &) const;
39 int docbook(Buffer const &, std::ostream &,
40 OutputParams const &) const;
41 /// the string that is passed to the TOC
42 virtual int textString(Buffer const &, std::ostream & os,
43 OutputParams const &) const;
45 void validate(LaTeXFeatures &) const;
48 virtual std::auto_ptr<InsetBase> doClone() const
50 return std::auto_ptr<InsetBase>(new InsetCitation(params()));
53 /// This function does the donkey work of creating the pretty label
54 std::string const generateLabel(Buffer const &) const;
59 Cache() : engine(lyx::biblio::ENGINE_BASIC) {}
61 lyx::biblio::CiteEngine engine;
63 InsetCommandParams params;
65 std::string generated_label;
67 std::string screen_label;
73 #endif // INSET_CITE_H