#include "insetcommand.h"
+#include "bufferparams.h"
+
+
+namespace lyx {
+
/** Used to insert citations
*/
///
InsetCitation(InsetCommandParams const &);
///
- ~InsetCitation();
- ///
- std::auto_ptr<InsetBase> clone() const {
- return std::auto_ptr<InsetBase>(new InsetCitation(params()));
- }
- ///
- std::string const getScreenLabel(Buffer const &) const;
+ docstring const getScreenLabel(Buffer const &) const;
///
EDITABLE editable() const { return IS_EDITABLE; }
///
- InsetOld::Code lyxCode() const { return InsetOld::CITE_CODE; }
+ InsetBase::Code lyxCode() const { return InsetBase::CITE_CODE; }
///
- int ascii(Buffer const &, std::ostream &, int linelen) const;
+ int plaintext(Buffer const &, odocstream &, OutputParams const &) const;
///
- int latex(Buffer const &, std::ostream &,
- LatexRunParams const &) const;
+ int latex(Buffer const &, odocstream &,
+ OutputParams const &) const;
///
- dispatch_result localDispatch(FuncRequest const & cmd);
+ int docbook(Buffer const &, odocstream &,
+ OutputParams const &) const;
+ /// the string that is passed to the TOC
+ virtual int textString(Buffer const &, odocstream &,
+ OutputParams const &) const;
///
void validate(LaTeXFeatures &) const;
- /** Invoked by BufferView::Pimpl::dispatch when a new citation key
- is inserted. Tells us that the buffer is no longer being loaded
- and that the cache of BibTeX keys should be reloaded in the future.
- */
- void setLoadingBuffer(Buffer const & buffer, bool state) const;
+ ///
+ void replaceContents(std::string const & from, std::string const & to);
+
private:
- struct Cache {
- ///
- enum Style {
- ///
- BASIC,
- ///
- NATBIB_AY,
- ///
- NATBIB_NUM
- };
+ virtual std::auto_ptr<InsetBase> doClone() const
+ {
+ return std::auto_ptr<InsetBase>(new InsetCitation(params()));
+ }
+
+ /// This function does the donkey work of creating the pretty label
+ docstring const generateLabel(Buffer const &) const;
+
+ class Cache {
+ public:
///
- Cache() : style(BASIC) {}
+ Cache() : engine(biblio::ENGINE_BASIC), params("cite") {}
///
- Style style;
+ biblio::CiteEngine engine;
///
InsetCommandParams params;
///
- std::string generated_label;
+ docstring generated_label;
///
- std::string screen_label;
+ docstring screen_label;
};
-
- /// This function does the donkey work of creating the pretty label
- std::string const generateLabel(Buffer const &) const;
- ///
- Cache::Style getStyle(Buffer const & buffer) const;
-
///
mutable Cache cache;
};
+
+} // namespace lyx
+
#endif // INSET_CITE_H