/// initialize view for this inset.
/**
* This is typically used after this inset is created interactively.
- * Intented purpose is to sanitize internal state with regard to current
+ * Intended purpose is to sanitize internal state with regard to current
* Buffer.
**/
virtual void initView() {}
virtual int plaintext(odocstringstream &, OutputParams const &,
size_t max_length = INT_MAX) const = 0;
/// docbook output
- virtual int docbook(odocstream & os, OutputParams const &) const;
+ virtual void docbook(XMLStream &, OutputParams const &) const;
/// XHTML output
/// the inset is expected to write XHTML to the XMLStream
/// \return any "deferred" material that should be written outside the
virtual InsetLayout const & getLayout() const;
///
virtual bool isPassThru() const { return getLayout().isPassThru(); }
+ /// Is this inset embedded in a title?
+ virtual bool isInTitle() const { return false; }
/// Is this inset's layout defined in the document's textclass?
bool undefined() const;
/// should this inset be handled like a normal character?
virtual OutputParams::CtObject CtObject(OutputParams const &) const { return OutputParams::CT_NORMAL; }
- enum DisplayType {
+ enum RowFlags {
Inline = 0,
- AlignLeft,
- AlignCenter,
- AlignRight
+ // break row before this inset
+ BreakBefore = 1 << 0,
+ // break row after this inset
+ BreakAfter = 1 << 1,
+ // it is possible to break after this inset
+ CanBreakAfter = 1 << 2,
+ // force new (maybe empty) row after this inset
+ RowAfter = 1 << 3,
+ // specify an alignment (left, right) for a display inset
+ // (default is center)
+ AlignLeft = 1 << 4,
+ AlignRight = 1 << 5,
+ // A display inset breaks row at both ends
+ Display = BreakBefore | BreakAfter
};
- /// should we have a non-filled line before this inset?
- virtual DisplayType display() const { return Inline; }
+ /// How should this inset be displayed in its row?
+ virtual RowFlags rowFlags() const { return Inline; }
/// indentation before this inset (only needed for displayed hull insets with fleqn option)
virtual int indent(BufferView const &) const { return 0; }
///
virtual LyXAlignment contentAlignment() const { return LYX_ALIGN_NONE; }
/// should we break lines after this inset?
virtual bool isLineSeparator() const { return false; }
- /// should paragraph indendation be omitted in any case?
+ /// should paragraph indentation be omitted in any case?
virtual bool neverIndent() const { return false; }
/// dumps content to lyxerr
virtual void dump() const;
virtual Text * getText(int /*num*/) const { return 0; }
/** Adds a LaTeX snippet to the Preview Loader for transformation
- * into a bitmap image. Does not start the laoding process.
+ * into a bitmap image. Does not start the loading process.
*
* Most insets have no interest in this capability, so the method
* defaults to empty.
* are reset during editing operations.
* For copy/paste operations the language is never changed, since
* the language of a given text never changes if the text is
- * formatted differently, while other font attribues like size may
+ * formatted differently, while other font attributes like size may
* need to change if the text is copied from one environment to
* another one.
* If this method returns false no font attribute is reset.
/** The real dispatcher.
* Gets normally called from Cursor::dispatch(). Cursor::dispatch()
* assumes the common case of 'LFUN handled, need update'.
- * This has to be overriden by calling Cursor::undispatched() or
+ * This has to be overridden by calling Cursor::undispatched() or
* Cursor::noScreenUpdate() if appropriate.
* If you need to call the dispatch method of some inset directly
* you may have to explicitly request an update at that place. Don't
Buffer * buffer_;
};
+
+inline Inset::RowFlags operator|(Inset::RowFlags const d1,
+ Inset::RowFlags const d2)
+{
+ return static_cast<Inset::RowFlags>(int(d1) | int(d2));
+}
+
+
+inline Inset::RowFlags operator&(Inset::RowFlags const d1,
+ Inset::RowFlags const d2)
+{
+ return static_cast<Inset::RowFlags>(int(d1) & int(d2));
+}
+
+
} // namespace lyx
#endif