X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2Finsetcite.h;h=1c83084a67ea156ebccc95f82dce0a0e8ecf79bb;hb=e28331ed63062dea10d0a21b9ec12034b4b17b9a;hp=ee1581323b91d44ec2826afc22691ac48de2fa7c;hpb=474b65cd25930b5745dc7aca27f346cd5766ddd9;p=lyx.git diff --git a/src/insets/insetcite.h b/src/insets/insetcite.h index ee1581323b..1c83084a67 100644 --- a/src/insets/insetcite.h +++ b/src/insets/insetcite.h @@ -1,82 +1,81 @@ // -*- C++ -*- -/* This file is part of* - * ====================================================== +/** + * \file insetcite.h + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. * - * LyX, The Document Processor - * - * Copyright 1995 Matthias Ettrich - * Copyright 1995-2000 The LyX Team. - * - * ====================================================== */ + * \author Angus Leeming + * \author Herbert Voß + * + * Full author contact details are available in file CREDITS. + */ #ifndef INSET_CITE_H #define INSET_CITE_H -#ifdef __GNUG__ -#pragma interface -#endif #include "insetcommand.h" -#include "bibforms.h" -#include +#include "bufferparams.h" + -class Buffer; +namespace lyx { -/** Used to insert citations + +/** Used to insert citations */ -class InsetCitation: public InsetCommand { +class InsetCitation : public InsetCommand { public: /// - enum State { - CANCEL, - OK, - DOWN, - UP, - DELETE, - ADD, - BIBBRSR, - CITEBRSR, - ON, - OFF - }; + InsetCitation(InsetCommandParams const &); /// - InsetCitation() : InsetCommand("cite") {} + docstring const getScreenLabel(Buffer const &) const; /// - explicit - InsetCitation(string const & key, string const & note = string()); - /// - ~InsetCitation(); - /// - Inset * Clone() const { - return new InsetCitation(getContents(), getOptions()); - } - /// - string getScreenLabel()const; - /// - void Edit(BufferView *, int x, int y, unsigned int button); + EDITABLE editable() const { return IS_EDITABLE; } /// - void callback( FD_citation_form *, State ); - /// - EDITABLE Editable() const { - return IS_EDITABLE; - } + InsetBase::Code lyxCode() const { return InsetBase::CITE_CODE; } /// - struct Holder { - InsetCitation * inset; - BufferView * view; - }; - -private: - /// - void setSize( FD_citation_form *, int, bool ) const; + int plaintext(Buffer const &, odocstream &, OutputParams const &) const; /// - void setBibButtons( FD_citation_form *, State ) const; + int latex(Buffer const &, odocstream &, + OutputParams const &) const; /// - void setCiteButtons( FD_citation_form *, State ) const; + 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 updateBrowser( FL_OBJECT *, std::vector const & ) const; - /// - Holder holder; + void validate(LaTeXFeatures &) const; + /// + void replaceContents(std::string const & from, std::string const & to); + +private: + virtual std::auto_ptr doClone() const + { + return std::auto_ptr(new InsetCitation(params())); + } + + /// This function does the donkey work of creating the pretty label + docstring const generateLabel(Buffer const &) const; + + class Cache { + public: + /// + Cache() : engine(biblio::ENGINE_BASIC), params("cite") {} + /// + biblio::CiteEngine engine; + /// + InsetCommandParams params; + /// + docstring generated_label; + /// + docstring screen_label; + }; + /// + mutable Cache cache; }; + +} // namespace lyx + #endif // INSET_CITE_H