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"
19 /** Used to insert citations
21 class InsetCitation : public InsetCommand {
24 InsetCitation(InsetCommandParams const &);
28 std::auto_ptr<InsetBase> clone() const {
29 return std::auto_ptr<InsetBase>(new InsetCitation(params()));
32 std::string const getScreenLabel(Buffer const &) const;
34 EDITABLE editable() const { return IS_EDITABLE; }
36 InsetOld::Code lyxCode() const { return InsetOld::CITE_CODE; }
38 int ascii(Buffer const &, std::ostream &, int linelen) const;
40 int latex(Buffer const &, std::ostream &,
41 LatexRunParams const &) const;
43 dispatch_result localDispatch(FuncRequest const & cmd);
45 void validate(LaTeXFeatures &) const;
46 /** Invoked by BufferView::Pimpl::dispatch when a new citation key
47 is inserted. Tells us that the buffer is no longer being loaded
48 and that the cache of BibTeX keys should be reloaded in the future.
50 void setLoadingBuffer(Buffer const & buffer, bool state) const;
55 priv_dispatch(FuncRequest const & cmd, idx_type &, pos_type &);
68 Cache() : style(BASIC) {}
72 InsetCommandParams params;
74 std::string generated_label;
76 std::string screen_label;
79 /// This function does the donkey work of creating the pretty label
80 std::string const generateLabel(Buffer const &) const;
82 Cache::Style getStyle(Buffer const & buffer) const;
88 #endif // INSET_CITE_H