#ifndef INSET_BIBITEM_H
#define INSET_BIBITEM_H
-
+#include "BiblioInfo.h"
#include "InsetCommand.h"
-#include "Biblio.h"
namespace lyx {
-/** Used to insert bibitem's information (key and label)
+/////////////////////////////////////////////////////////////////////////
+//
+// InsetBibItem
+//
+/////////////////////////////////////////////////////////////////////////
+
+/// 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 {
+// Must be automatically inserted as the first object in a
+// bibliography paragraph.
+class InsetBibitem : public InsetCommand
+{
public:
///
- InsetBibitem(InsetCommandParams const &);
+ InsetBibitem(Buffer const &, InsetCommandParams const &);
+ ///
+ virtual ~InsetBibitem();
+ ///
+ static ParamInfo const & findInfo(std::string const &);
+ ///
+ static std::string defaultCommand() { return "bibitem"; }
+ ///
+ static bool isCompatibleCommand(std::string const & s)
+ { return s == "bibitem"; }
+private:
+ /// verify label and update references.
+ /// Overloaded from Inset::initView.
+ void initView();
///
- void read(Buffer const &, Lexer & lex);
+ bool isLabeled() const { return true; }
///
- docstring const getScreenLabel(Buffer const &) const;
+ void read(Lexer & lex);
+ ///
+ docstring screenLabel() const;
///
EDITABLE editable() const { return IS_EDITABLE; }
///
- Inset::Code lyxCode() const { return Inset::BIBITEM_CODE; }
+ InsetCode lyxCode() const { return BIBITEM_CODE; }
///
- docstring const getBibLabel() const;
+ docstring bibLabel() const;
///
- int plaintext(Buffer const &, odocstream &, OutputParams const &) const;
+ int plaintext(odocstream &, OutputParams const &) const;
///
- virtual void fillWithBibKeys(Buffer const &,
- BiblioInfo &, InsetIterator const &) const;
+ virtual void fillWithBibKeys(BiblioInfo &, InsetIterator const &) const;
/// Update the counter of this inset
- virtual void updateLabels(Buffer const &, ParIterator const &);
-
-protected:
+ virtual void updateLabels(ParIterator const &);
///
- virtual void doDispatch(Cursor & cur, FuncRequest & cmd);
-private:
- virtual std::auto_ptr<Inset> doClone() const;
+ void updateCommand(docstring const & new_key, bool dummy = false);
+ ///
+ void doDispatch(Cursor & cur, FuncRequest & cmd);
+ ///
+ Inset * clone() const { return new InsetBibitem(*this); }
+ friend docstring bibitemWidest(Buffer const & buffer);
/// The label that is set by updateLabels
docstring autolabel_;
///
/// Return the widest label in the Bibliography.
-docstring const bibitemWidest(Buffer const &);
-
+docstring bibitemWidest(Buffer const &);
} // namespace lyx