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 &, Lexer & 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;
///
- Inset::Code lyxCode() const { return Inset::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(Cursor & cur, FuncRequest & cmd);
+ docstring bibLabel() const;
+ ///@}
+
private:
- virtual std::auto_ptr<Inset> 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