X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FText.h;h=526fa2ee85a87b072190a17ab30ee9ac974a916b;hb=e995e8556bd670c7183bab7e105073a5f4ccfbc0;hp=0ebc1eeace21fc92b40aa046facff4d2075a9106;hpb=36dbec45069bf3d9db923200835e44f44d904eb8;p=lyx.git diff --git a/src/Text.h b/src/Text.h index 0ebc1eeace..526fa2ee85 100644 --- a/src/Text.h +++ b/src/Text.h @@ -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