]> git.lyx.org Git - lyx.git/blobdiff - src/Cursor.h
Support for CrimsonPro
[lyx.git] / src / Cursor.h
index 5ca98cbda5ec8e331e5c54665a75750312d84ab2..35d2fc97680dcfc9989c50a29f18f3ed13a9c2c5 100644 (file)
@@ -129,6 +129,12 @@ public:
        void setSelection(DocIterator const & where, int n);
        ///
        void clearSelection();
+       /// check whether selection contains specific type of inset
+       /// returns 0 if no selection was made
+       bool insetInSelection(InsetCode const & inset);
+       /// count occurences of specific inset type in the selection
+       /// returns 0 if no selection was made
+       int countInsetsInSelection(InsetCode const & inset);
 
        /// access to normalized selection anchor
        CursorSlice normalAnchor() const;
@@ -154,26 +160,17 @@ public:
        ///
        docstring currentState(bool devel_mode) const;
 
-       /// auto-correct mode
-       bool autocorrect() const { return autocorrect_; }
-       /// auto-correct mode
-       bool & autocorrect() { return autocorrect_; }
-
        /// fix cursor in circumstances that should never happen.
        /// \retval true if a fix occurred.
        bool fixIfBroken();
        /// Repopulate the slices insets from bottom to top. Useful
        /// for stable iterators or Undo data.
        void sanitize();
-       ///
-       bool isInside(Inset const *) const;
-       /// make sure we are outside of given inset
-       void leaveInset(Inset const & inset);
 
        ///
-       bool textUndo();
+       bool undoAction();
        ///
-       bool textRedo();
+       bool redoAction();
 
        /// makes sure the next operation will be stored
        void finishUndo() const;
@@ -181,6 +178,8 @@ public:
        void beginUndoGroup() const;
        /// end the current undo group
        void endUndoGroup() const;
+       /// end abruptly the current group and create a new one wih the same nesting level
+       void splitUndoGroup() const;
 
        /// The general case: prepare undo for an arbitrary range.
        void recordUndo(pit_type from, pit_type to) const;
@@ -234,14 +233,13 @@ private:
        //
        // math specific stuff that could be promoted to "global" later
        //
-       /// do we allow autocorrection
-       bool autocorrect_;
 
        // FIXME: make them private
 public:
-       /// the current font settings
+       /// The current font settings. This holds the settings for output.
        Font current_font;
-       /// the current font
+       /// The current display font. This holds the settings of the text
+       /// in the workarea.
        Font real_current_font;
 };
 
@@ -257,6 +255,10 @@ public:
        void push(Inset & inset);
        /// add a new cursor slice, place cursor at front (move backwards)
        void pushBackward(Inset & inset);
+       /// try to put cursor in inset before it in entry cell, or next one
+       /// if it is not empty, or exit the slice if there is no next one.
+       void editInsertedInset();
+
        /// pop one level off the cursor
        void pop();
        /// pop one slice off the cursor stack and go backwards
@@ -394,16 +396,11 @@ public:
        void undispatched() const;
        /// the event was already dispatched
        void dispatched() const;
-       /// Set which screen update should be done
+
+       /// Describe the screen update that should be done
        void screenUpdateFlags(Update::flags f) const;
-       /// Forces an updateBuffer() call
-       void forceBufferUpdate() const;
-       /// Removes any pending updateBuffer() call
-       void clearBufferUpdate() const;
-       /// Do we need to call updateBuffer()?
-       bool needBufferUpdate() const;
        /**
-        * don't call update() when done
+        * Reset update flags to Update::None.
         *
         * Should only be called by an inset's doDispatch() method. It means:
         * I handled that request and I can reassure you that the screen does
@@ -414,6 +411,13 @@ public:
         */
        void noScreenUpdate() const;
 
+       /// Forces an updateBuffer() call
+       void forceBufferUpdate() const;
+       /// Removes any pending updateBuffer() call
+       void clearBufferUpdate() const;
+       /// Do we need to call updateBuffer()?
+       bool needBufferUpdate() const;
+
        /// Repopulate the slices insets from bottom to top. Useful
        /// for stable iterators or Undo data.
        void sanitize();
@@ -513,10 +517,9 @@ public:
        /// the name of the macro we are currently inputting
        docstring macroName();
 
-
        /// replace selected stuff with at, placing the former
-       // selection in given cell of atom
-       void handleNest(MathAtom const & at, int cell = 0);
+       // selection in entry cell of atom
+       void handleNest(MathAtom const & at);
 
        /// make sure cursor position is valid
        /// FIXME: It does a subset of fixIfBroken. Maybe merge them?