class FuncRequest;
class FuncStatus;
class InsetCollapsable;
+class InsetCommand;
class InsetIterator;
class InsetLayout;
class InsetList;
class ParIterator;
class Text;
class TocList;
+class XHTMLStream;
namespace graphics { class PreviewLoader; }
/**
* This is typically used after this inset is created interactively.
* Intented purpose is to sanitize internal state with regard to current
- * Buffer. The default implementation calls updateLabels(buffer()) is
+ * Buffer. The default implementation calls buffer().updateLabels() if
* the inset is labeled.
*
* \sa isLabeled()
/// identification as math inset
virtual InsetMath * asInsetMath() { return 0; }
+ /// identification as math inset
+ virtual InsetMath const * asInsetMath() const { return 0; }
/// true for 'math' math inset, but not for e.g. mbox
virtual bool inMathed() const { return false; }
/// is this inset based on the InsetText class?
virtual InsetTabular * asInsetTabular() { return 0; }
/// is this inset based on the InsetTabular class?
virtual InsetTabular const * asInsetTabular() const { return 0; }
+ /// is this inset based on the InsetCommand class?
+ virtual InsetCommand * asInsetCommand() { return 0; }
+ /// is this inset based on the InsetCommand class?
+ virtual InsetCommand const * asInsetCommand() const { return 0; }
/// the real dispatcher
void dispatch(Cursor & cur, FuncRequest & cmd);
virtual int plaintext(odocstream &, OutputParams const &) const = 0;
/// docbook output
virtual int docbook(odocstream & os, OutputParams const &) const;
- /// LyX HTML output
- virtual docstring xhtml(odocstream & os, OutputParams const &) const;
+ /// XHTML output
+ /// the inset is expected to write XHTML to the XHTMLStream
+ /// \return any "deferred" material that should be written outside the
+ /// normal stream, and which will in fact be written after the current
+ /// paragraph closes. this is appropriate e.g. for floats.
+ virtual docstring xhtml(XHTMLStream & xs, OutputParams const &) const;
/// the string that is passed to the TOC
virtual void tocString(odocstream &) const {}
virtual bool hasSettings() const;
/// can we go further down on mouse click?
// true for InsetCaption, InsetCollapsables (not ButtonOnly), InsetTabular
- virtual bool descendable() const { return false; }
+ virtual bool descendable(BufferView const &) const { return false; }
/// is this an inset that can be moved into?
/// FIXME: merge with editable()
// true for InsetTabular & InsetText
* Most insets have no interest in this capability, so the method
* defaults to empty.
*/
- virtual void addPreview(graphics::PreviewLoader &) const {}
+ virtual void addPreview(DocIterator const &,
+ graphics::PreviewLoader &) const {}
/** Classifies the unicode characters appearing in a math inset
* depending on whether they are to be translated as latex
virtual void addToToc(DocIterator const &) {}
/// Fill keys with BibTeX information
virtual void fillWithBibKeys(BiblioInfo &, InsetIterator const &) const {}
- /// Update the counters of this inset and of its contents
- virtual void updateLabels(ParIterator const &) {}
+ /// Update the counters of this inset and of its contents.
+ /// The boolean indicates whether we are preparing for output, e.g.,
+ /// of XHTML.
+ virtual void updateLabels(ParIterator const &, bool) {}
/// Updates the inset's dialog
virtual Buffer const * updateFrontend() const;
/// set the change for the entire inset
virtual void setChange(Change const &) {}
/// accept the changes within the inset
- virtual void acceptChanges() {};
+ virtual void acceptChanges() {}
/// reject the changes within the inset
- virtual void rejectChanges() {};
+ virtual void rejectChanges() {}
///
virtual Dimension const dimension(BufferView const &) const;
///
int scroll() const { return 0; }
///
- virtual ColorCode backgroundColor() const;
+ virtual ColorCode backgroundColor(PainterInfo const &) const;
///
virtual ColorCode labelColor() const;
- ///
- enum CollapseStatus {
- Collapsed,
- Open
- };
- ///
- virtual void setStatus(Cursor &, CollapseStatus) {}
//
enum { TEXT_TO_INSET_OFFSET = 4 };
protected:
/// Constructors
- Inset() : buffer_(0) {}
+ Inset(Buffer * buf) : buffer_(buf) {}
Inset(Inset const &) : buffer_(0) {}
/// replicate ourselves