+ bool insertInset(Inset * inset, string const & lout = string());
+ ///
+ void updateInset(Inset * inset, bool mark_dirty);
+ ///
+ bool Dispatch(kb_action action, string const & argument);
+private:
+ /**
+ * Return the on-screen dimensions of the inset at the cursor.
+ * Pre-condition: the cursor must be at an inset.
+ */
+ Box insetDimensions(LyXText const & text, LyXCursor const & cursor) const;
+ /**
+ * check if the given co-ordinates are inside an inset at the given cursor,
+ * if one exists. If so, the inset is returned, and the co-ordinates are
+ * made relative. Otherwise, 0 is returned.
+ */
+ Inset * checkInset(LyXText const & text, LyXCursor const & cursor, int & x, int & y) const;
+ ///
+ friend class BufferView;
+ /// open and lock an updatable inset
+ bool open_new_inset(UpdatableInset * new_inset, bool behind = false);
+ ///
+ void protectedBlank(LyXText * lt);
+ ///
+ void specialChar(InsetSpecialChar::Kind);
+ ///
+ void newline();
+ ///
+ void hfill();
+ ///
+ void smartQuote();
+ ///
+ void insertAndEditInset(Inset *);
+ ///
+ void gotoInset(std::vector<Inset::Code> const & codes,
+ bool same_content);
+ ///
+ void gotoInset(Inset::Code codes, bool same_content);
+ ///