+ /// auto-correct mode
+ bool autocorrect() const { return autocorrect_; }
+ /// auto-correct mode
+ bool & autocorrect() { return autocorrect_; }
+ /// are we entering a macro name?
+ bool macromode() const { return macromode_; }
+ /// are we entering a macro name?
+ bool & macromode() { return macromode_; }
+ /// returns x,y position
+ void getPos(int & x, int & y) const;
+
+ //
+ // common part
+ //
+ /// move one step to the left
+ bool posLeft();
+ /// move one step to the right
+ bool posRight();
+
+ /// insert an inset
+ void insert(InsetBase *);
+ /// insert a single char
+ void insert(char c);
+ /// insert a string
+ void insert(std::string const & str);
+
+ /// in pixels from left of screen
+ int targetX() const;
+ /// write acess to target x position of cursor
+ int & x_target();
+ /// return target x position of cursor
+ int x_target() const;
+ /// set targetX in current position
+ void setTargetX();
+ /// clear target x position of cursor
+ void clearTargetX();
+
+ /// access to normalized selection anchor
+ CursorSlice anchor() const;
+ /// sets anchor to cursor position
+ void resetAnchor();
+ /// access to owning BufferView
+ BufferView & bv() const;
+ /// access to owning Buffer
+ Buffer & buffer() const;
+ /// get some interesting description of top position
+ void info(std::ostream & os) const;
+ /// are we in math mode (2), text mode (1) or unsure (0)?
+ int currentMode();
+ /// reset cursor bottom to the beginning of the given inset
+ // (sort of 'chroot' environment...)
+ void reset(InsetBase &);
+ /// for spellchecking
+ void replaceWord(std::string const & replacestring);
+ /// the event was not (yet) dispatched
+ void undispatched();
+ /// the event was already dispatched
+ void dispatched();
+ /// call update() when done
+ void needsUpdate();
+ /// don't call update() when done
+ void noUpdate();
+ /// fix cursor in circumstances that should never happen
+ void fixIfBroken();
+
+ /// output
+ friend std::ostream & operator<<(std::ostream & os, LCursor const & cur);