X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FInsetBibitem.h;h=2a210e8c907085a711a654c500af9803afc1df59;hb=eb294eadb5e7f22880da399ae082f74567bbfc4e;hp=6c9e32f909bbe9e1a54c6a78b428736577eea688;hpb=c8d00ed1272cd489041bed2115081008b6a26489;p=lyx.git diff --git a/src/insets/InsetBibitem.h b/src/insets/InsetBibitem.h index 6c9e32f909..2a210e8c90 100644 --- a/src/insets/InsetBibitem.h +++ b/src/insets/InsetBibitem.h @@ -18,46 +18,94 @@ namespace lyx { -/** Used to insert bibitem's information (key and label) +///////////////////////////////////////////////////////////////////////// +// +// InsetBibItem +// +///////////////////////////////////////////////////////////////////////// - Must be automatically inserted as the first object in a - bibliography paragraph. - */ -class InsetBibitem : public InsetCommand { +/// Used to insert bibitem's information (key and label) + +// Must be automatically inserted as the first object in a +// bibliography paragraph. +class InsetBibitem : public InsetCommand +{ public: /// - InsetBibitem(InsetCommandParams const &); + InsetBibitem(Buffer *, InsetCommandParams const &); + /// + ~InsetBibitem(); + + /// + void updateCommand(docstring const & new_key, bool dummy = false); + + /// \name Public functions inherited from Inset class + //@{ + /// + InsetCode lyxCode() const override { return BIBITEM_CODE; } + /// + bool hasSettings() const override { return true; } + /// \copydoc Inset::initView() + /// verify label and update references. + void initView() override; /// - void read(Buffer const &, LyXLex & lex); + bool isLabeled() const override { return true; } /// - docstring const getScreenLabel(Buffer const &) const; + void read(Lexer & lex) override; /// - EDITABLE editable() const { return IS_EDITABLE; } + int plaintext(odocstringstream &, OutputParams const &, + size_t max_length = INT_MAX) const override; /// - InsetBase::Code lyxCode() const { return InsetBase::BIBITEM_CODE; } + docstring xhtml(XMLStream &, OutputParams const &) const override; /// - void setCounter(int); + void docbook(XMLStream &, OutputParams const &) const override; /// - int getCounter() const { return counter; } + void collectBibKeys(InsetIterator const &, support::FileNameList &) const override; + /// update the counter of this inset + void updateBuffer(ParIterator const &, UpdateType, bool const deleted = false) override; + ///@} + + /// \name Static public methods obligated for InsetCommand derived classes + //@{ + /// + static ParamInfo const & findInfo(std::string const &); /// - docstring const getBibLabel() const; + static std::string defaultCommand() { return "bibitem"; } /// - int plaintext(Buffer const &, odocstream &, OutputParams const &) const; -protected: + static bool isCompatibleCommand(std::string const & s) + { return s == "bibitem"; } /// - virtual void doDispatch(LCursor & cur, FuncRequest & cmd); + docstring bibLabel() const; + ///@} + private: - virtual std::auto_ptr doClone() const; + /// \name Private functions inherited from Inset class + //@{ + /// + void doDispatch(Cursor & cur, FuncRequest & cmd) override; + /// + Inset * clone() const override { return new InsetBibitem(*this); } + /// Is the content of this inset part of the immediate (visible) text sequence? + bool isPartOfTextSequence() const override { return false; } + ///@} + /// \name Private functions inherited from InsetCommand class + //@{ /// - int counter; + docstring screenLabel() const override; + //@} + + friend docstring bibitemWidest(Buffer const & buffer, OutputParams const &); + + /// The label that is set by updateBuffer + docstring autolabel_; /// static int key_counter; }; /// Return the widest label in the Bibliography. -docstring const bibitemWidest(Buffer const &); +docstring bibitemWidest(Buffer const &, OutputParams const &); } // namespace lyx