+
+
+///////////////////////////////////////////////////////////////////
+//
+// The part below is the non-integrated rest of the original math
+// cursor. This should be either generalized for texted or moved
+// back to the math insets.
+//
+///////////////////////////////////////////////////////////////////
+
+public:
+ ///
+ void insert(MathAtom const &);
+ ///
+ void insert(MathArray const &);
+ /// return false for empty math insets
+ bool erase();
+ /// return false for empty math insets
+ bool backspace();
+ /// called for LFUN_UP etc
+ bool up();
+ /// called for LFUN_DOWN etc
+ bool down();
+ ///
+ void plainErase();
+ ///
+ void plainInsert(MathAtom const & at);
+ ///
+ void niceInsert(MathAtom const & at);
+ ///
+ void niceInsert(docstring const & str);
+
+ /// in pixels from top of screen
+ void setScreenPos(int x, int y);
+ /// current offset in the top cell
+
+ /// interpret name a name of a macro. Returns true if
+ /// something got inserted.
+ bool macroModeClose();
+ /// are we currently typing the name of a macro?
+ bool inMacroMode() const;
+ /// get access to the macro we are currently typing
+ InsetMathUnknown * activeMacro();
+
+ /// replace selected stuff with at, placing the former
+ // selection in given cell of atom
+ void handleNest(MathAtom const & at, int cell = 0);
+ ///
+ bool isInside(InsetBase const *);
+
+ /// make sure cursor position is valid
+ void normalize();
+ /// mark current cursor trace for redraw
+ void touch();
+
+ /// hack for reveal codes
+ void markInsert();
+ void markErase();
+ /// injects content of a cell into parent
+ void pullArg();
+ /// split font inset etc
+ void handleFont(std::string const & font);
+
+ /// display a message
+ void message(docstring const & msg) const;
+ /// display an error message
+ void errorMessage(docstring const & msg) const;
+ ///
+ docstring getPossibleLabel();
+
+ /// moves position somehow up or down
+ bool goUpDown(bool up);
+
+ /// the name of the macro we are currently inputting
+ docstring macroName();
+ /// where in the curent cell does the macro name start?
+ int macroNamePos();
+ /// can we enter the inset?
+ bool openable(MathAtom const &) const;
+ ///
+ Encoding const * getEncoding() const;
+ /// font at cursor position
+ LyXFont getFont() const;