#ifndef INSETBASE_H
#define INSETBASE_H
+#include "ColorCode.h"
#include "InsetCode.h"
-#include "Dimension.h"
+#include "support/strfwd.h"
-#include "support/docstream.h"
-
-#include <memory>
#include <vector>
namespace lyx {
class BufferParams;
class BufferView;
class Change;
-class Color_color;
class Cursor;
class CursorSlice;
+class Dimension;
class FuncRequest;
class FuncStatus;
class InsetIterator;
+class InsetCollapsable;
class InsetLayout;
+class InsetList;
class InsetMath;
class InsetText;
class LaTeXFeatures;
class MetricsInfo;
class OutputParams;
class PainterInfo;
-class Paragraph;
class ParConstIterator;
class ParIterator;
class Text;
virtual InsetText * asTextInset() { return 0; }
/// is this inset based on the TextInset class?
virtual InsetText const * asTextInset() const { return 0; }
+ /// is this inset based on the InsetCollapsable class?
+ virtual InsetCollapsable * asInsetCollapsable() { return 0; }
+ /// is this inset based on the InsetCollapsable class?
+ virtual InsetCollapsable const * asInsetCollapsable() const { return 0; }
/// the real dispatcher
void dispatch(Cursor & cur, FuncRequest & cmd);
virtual void cursorPos(BufferView const & bv,
CursorSlice const & sl, bool boundary, int & x, int & y) const;
+ ///
+ virtual bool isFreeSpacing() const { return false; }
+ ///
+ virtual bool allowEmpty() const { return false; }
+
/// is this an inset that can be moved into?
/// FIXME: merge with editable()
virtual bool isActive() const { return nargs() > 0; }
/** This enum indicates by which means the inset can be modified:
- NOT_EDITABLE: the inset's content cannot be modified at all
(e.g. printindex, insetspecialchar)
- - IS_EDITABLE: content can be edited via dialog (e.g. bibtex, index, url)
+ - IS_EDITABLE: content can be edited via dialog (e.g. bibtex, index, href)
- HIGHLY_EDITABLE: content can be edited on screen (normally means that
insettext is contained, e.g. collapsables, tabular) */
// FIXME: This has not yet been fully implemented to math insets
/// return true if the inset should be removed automatically
virtual bool autoDelete() const;
- /** returns the InsetCode corresponding to the \c name.
- * Eg, translate("branch") == BRANCH_CODE
- */
- static InsetCode translate(std::string const & name);
-
/// returns true if the inset can hold an inset of given type
virtual bool insetAllowed(InsetCode) const { return false; }
/// if this inset has paragraphs should they be output all as default
virtual bool hasFixedWidth() const { return false; }
///
- virtual docstring name() const { return from_ascii("unknown"); }
+ virtual docstring name() const;
///
virtual InsetLayout const & getLayout(BufferParams const & bp) const;
/// used to toggle insets
/// pit is the ParConstIterator of the paragraph containing the inset
virtual void addToToc(TocList &, Buffer const &, ParConstIterator const &) const {}
/// report files that can be embedded with the lyx file
- virtual void registerEmbeddedFiles(Buffer const &, EmbeddedFiles &) const {};
+ virtual void registerEmbeddedFiles(Buffer const &, EmbeddedFiles &) const {}
/// use embedded or external file after the embedding status of a file is changed
virtual void updateEmbeddedFile(Buffer const &, EmbeddedFile const &) {}
/// Fill keys with BibTeX information
virtual void fillWithBibKeys(Buffer const &,
- BiblioInfo &, InsetIterator const &) const { return; }
+ BiblioInfo &, InsetIterator const &) const {}
/// Update the counters of this inset and of its contents
virtual void updateLabels(Buffer const &, ParIterator const &) {}
///
int scroll() const { return 0; }
///
- virtual Color_color backgroundColor() const;
+ virtual ColorCode backgroundColor() const;
///
enum CollapseStatus {
Collapsed,
enum { TEXT_TO_INSET_OFFSET = 4 };
protected:
- Inset();
+ Inset() {}
/// replicate ourselves
- friend class Paragraph;
+ friend class InsetList;
friend class MathAtom;
virtual Inset * clone() const = 0;
virtual void doDispatch(Cursor & cur, FuncRequest & cmd);
};
-
-/**
- * returns true if pointer argument is valid
- * and points to an editable inset
- */
-bool isEditableInset(Inset const * inset);
-
-
-/**
- * returns true if pointer argument is valid
- * and points to a highly editable inset
- */
-bool isHighlyEditableInset(Inset const * inset);
-
-
} // namespace lyx
#endif