- enum EDITABLE {
- ///
- NOT_EDITABLE = 0,
- ///
- IS_EDITABLE,
- ///
- HIGHLY_EDITABLE
- };
-
- ///
- typedef dispatch_result RESULT;
-
- ///
- Inset();
- ///
- Inset(Inset const & in);
- ///
- int ascent(BufferView *, LyXFont const &) const;
- ///
- int descent(BufferView *, LyXFont const &) const;
- ///
- int width(BufferView *, LyXFont const &) const;
- /// update the inset representation
- virtual void update(BufferView *, bool = false)
- {}
- /// what appears in the minibuffer when opening
- virtual string const editMessage() const;
- ///
- virtual EDITABLE editable() const;
- ///
- virtual bool isTextInset() const { return false; }
- /// return true if the inset should be removed automatically
- virtual bool autoDelete() const;
- /// returns true the inset can hold an inset of given type
- virtual bool insetAllowed(Inset::Code) const { return false; }
- /// wrapper around the above
- bool insetAllowed(Inset * in) const;
- ///
- virtual void write(Buffer const *, std::ostream &) const = 0;
- ///
- virtual void read(Buffer const *, LyXLex & lex) = 0;
- /// returns the number of rows (\n's) of generated tex code.
- virtual int latex(Buffer const *, std::ostream &,
- LatexRunParams const &) const = 0;
- ///
- virtual int ascii(Buffer const *,
- std::ostream &, int linelen = 0) const = 0;
- ///
- virtual int linuxdoc(Buffer const *, std::ostream &) const = 0;
- ///
- virtual int docbook(Buffer const *, std::ostream &, bool) const = 0;
-
- /// returns LyX code associated with the inset. Used for TOC, ...)
- virtual Inset::Code lyxCode() const { return NO_CODE; }
-
- virtual std::vector<string> const getLabelList() const {
- return std::vector<string>();
- }
-
- ///
- virtual Inset * clone() const = 0;
-
- /// returns true to override begin and end inset in file
- virtual bool directWrite() const;
-
- /// Returns true if the inset should be centered alone
- virtual bool display() const { return false; }
- /// Changes the display state of the inset
- virtual void display(bool) {}
- ///
- /// returns true if this inset needs a row on it's own
- ///
- virtual bool needFullRow() const { return false; }
- ///
- void setInsetName(string const & s) { name_ = s; }
- ///
- string const & getInsetName() const { return name_; }
- ///
- void setOwner(Inset * inset) { owner_ = inset; }
- ///
- Inset * owner() const { return owner_; }
- ///
- void parOwner(Paragraph * par) { par_owner_ = par; }
- ///
- Paragraph * parOwner() const { return par_owner_; }
- ///
- void setBackgroundColor(LColor::color);
- ///
- LColor::color backgroundColor() const;
- ///
- int x() const { return top_x; }
- ///
- int y() const { return top_baseline; }
- //
- // because we could have fake text insets and have to call this
- // inside them without cast!!!
- ///
- virtual LyXText * getLyXText(BufferView const *,
- bool const recursive = false) const;
- ///
- virtual void deleteLyXText(BufferView *, bool = true) const {}
- ///
- virtual void resizeLyXText(BufferView *, bool /*force*/= false) const {}
- /// returns the actuall scroll-value
- virtual int scroll(bool recursive=true) const {
- if (!recursive || !owner_)
- return scx;
- return 0;
- }
-
- /// try to get a inset pointer from it's id if we have
- /// an inset to give back!
- virtual Inset * getInsetFromID(int /*id*/) const { return 0; }
- /// if this insets owns paragraphs (f.ex. InsetText) then it
- /// should return it's very first one!
- virtual ParagraphList * getParagraphs(int /*num*/) const { return 0; }
- ///
- virtual bool haveParagraphs() const {
- return false;
- }
-
- /// return the cursor if we own one otherwise giv'em just the
- /// BufferView cursor to work with.
- virtual LyXCursor const & cursor(BufferView * bview) const;
- /// id functions
- int id() const;
- ///
- void id(int id_arg);