X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FText.h;h=0ebc1eeace21fc92b40aa046facff4d2075a9106;hb=6b651f2ad9f698c01993dcc6e340682c279f1c55;hp=f6883e8bd59da0658ea07b2c3abdeb015fcb419f;hpb=662b58497e3fe04c41a8bf809e39082c6b91957a;p=lyx.git diff --git a/src/Text.h b/src/Text.h index f6883e8bd5..0ebc1eeace 100644 --- a/src/Text.h +++ b/src/Text.h @@ -14,6 +14,7 @@ #ifndef TEXT_H #define TEXT_H +#include "DocIterator.h" #include "ParagraphList.h" namespace lyx { @@ -25,10 +26,10 @@ class CursorSlice; class DocIterator; class ErrorList; class Font; +class FontInfo; class FuncRequest; class FuncStatus; class Inset; -class Color_color; class Cursor; class Lexer; class PainterInfo; @@ -47,9 +48,9 @@ public: bool empty() const; /// - Font getLayoutFont(Buffer const & buffer, pit_type pit) const; + FontInfo getLayoutFont(Buffer const & buffer, pit_type pit) const; /// - Font getLabelFont(Buffer const & buffer, + FontInfo getLabelFont(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, @@ -174,9 +175,9 @@ public: */ bool cursorForward(Cursor & cur); /// - bool cursorLeftOneWord(Cursor & cur); + bool cursorBackwardOneWord(Cursor & cur); /// - bool cursorRightOneWord(Cursor & cur); + bool cursorForwardOneWord(Cursor & cur); /// Delete from cursor up to the end of the current or next word. void deleteWordForward(Cursor & cur); /// Delete from cursor to start of current or prior word. @@ -200,15 +201,6 @@ public: bool dissolveInset(Cursor & cur); /// bool selectWordWhenUnderCursor(Cursor & cur, word_location); - /// - enum TextCase { - /// - text_lowercase = 0, - /// - text_capitalization = 1, - /// - text_uppercase = 2 - }; /// Change the case of the word at cursor position. void changeCase(Cursor & cur, TextCase action); /// Transposes the character at the cursor with the one before it @@ -266,6 +258,14 @@ public: /// from \first to \last paragraph void deleteEmptyParagraphMechanism(pit_type first, pit_type last, bool trackChanges); + /// To resolve macros properly the texts get their DocIterator. + /// Every macro definition is stored with its DocIterator + /// as well. Only those macros with a smaller iterator become + /// visible in a paragraph. + DocIterator macrocontextPosition() const; + /// + void setMacrocontextPosition(DocIterator const & pos); + public: /// ParagraphList pars_; @@ -296,6 +296,9 @@ private: /// \param asParagraphs whether to paste as paragraphs or as lines void pasteString(Cursor & cur, docstring const & str, bool asParagraphs); + + /// position of the text in the buffer. + DocIterator macrocontext_position_; }; } // namespace lyx