]> git.lyx.org Git - lyx.git/blobdiff - src/Text.h
Prepare for InsetTableCell.
[lyx.git] / src / Text.h
index 0ebc1eeace21fc92b40aa046facff4d2075a9106..526fa2ee85a87b072190a17ab30ee9ac974a916b 100644 (file)
@@ -22,6 +22,7 @@ namespace lyx {
 class Buffer;
 class BufferParams;
 class BufferView;
+class CompletionList;
 class CursorSlice;
 class DocIterator;
 class ErrorList;
@@ -48,9 +49,9 @@ public:
        bool empty() const;
 
        ///
-       FontInfo getLayoutFont(Buffer const & buffer, pit_type pit) const;
+       FontInfo layoutFont(Buffer const & buffer, pit_type pit) const;
        ///
-       FontInfo getLabelFont(Buffer const & buffer,
+       FontInfo labelFont(Buffer const & buffer,
                Paragraph const & par) const;
        /** Set font of character at position \p pos in paragraph \p pit.
         *  Must not be called if \p pos denotes an inset with text contents,
@@ -134,10 +135,12 @@ public:
         *  @param from return here the start of the word
         *  @param to return here the end of the word
         */
-       void getWord(CursorSlice & from, CursorSlice & to, word_location const);
+       void getWord(CursorSlice & from, CursorSlice & to, word_location const) const;
        /// just selects the word the cursor is in
        void selectWord(Cursor & cur, word_location loc);
-
+       /// convenience function get the previous word or an empty string
+       docstring previousWord(CursorSlice const & sl) const;
+       
        /// what type of change operation to make
        enum ChangeOp {
                ACCEPT,
@@ -169,11 +172,23 @@ public:
         * Returns true if an update is needed after the move.
         */
        bool cursorBackward(Cursor & cur);
+       /// Move cursor visually one position to the left
+       /**
+        * \param skip_inset if true, don't enter insets
+        * Returns true if an update is needed after the move.
+        */
+       bool cursorVisLeft(Cursor & cur, bool skip_inset = false);
        /// Move cursor one position forward
        /**
         * Returns true if an update is needed after the move.
         */
        bool cursorForward(Cursor & cur);
+       /// Move cursor visually one position to the right
+       /**
+        * \param skip_inset if true, don't enter insets
+        * Returns true if an update is needed after the move.
+        */
+       bool cursorVisRight(Cursor & cur, bool skip_inset = false);
        ///
        bool cursorBackwardOneWord(Cursor & cur);
        ///
@@ -241,11 +256,15 @@ public:
 
        ///
        bool checkAndActivateInset(Cursor & cur, bool front);
+       ///
+       bool checkAndActivateInsetVisual(Cursor & cur, bool movingForward, bool movingLeft);
 
        ///
        void write(Buffer const & buf, std::ostream & os) const;
        /// returns whether we've seen our usual 'end' marker
-       bool read(Buffer const & buf, Lexer & lex, ErrorList & errorList);
+       /// insetPtr is the containing Inset
+       bool read(Buffer const & buf, Lexer & lex, ErrorList & errorList, 
+                 InsetText * insetPtr);
 
        /// delete double spaces, leading spaces, and empty paragraphs around old cursor.
        /// \retval true if a change has happened and we need a redraw.
@@ -266,6 +285,15 @@ public:
        ///
        void setMacrocontextPosition(DocIterator const & pos);
 
+       ///
+       bool completionSupported(Cursor const & cur) const;
+       ///
+       CompletionList const * createCompletionList(Cursor const & cur) const;
+       ///
+       bool insertCompletion(Cursor & cur, docstring const & s, bool /*finished*/);
+       ///
+       docstring completionPrefix(Cursor const & cur) const;
+
 public:
        ///
        ParagraphList pars_;
@@ -303,4 +331,4 @@ private:
 
 } // namespace lyx
 
-#endif // LYXTEXT_H
+#endif // TEXT_H