#ifndef TEXT_H
#define TEXT_H
+#include "DocIterator.h"
#include "ParagraphList.h"
namespace lyx {
class DocIterator;
class ErrorList;
class Font;
+class FontInfo;
class FuncRequest;
class FuncStatus;
class Inset;
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,
*/
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.
/// 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_;
/// \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