#include "lyxfont.h"
#include "layout.h"
#include "lyxlayout_ptr_fwd.h"
-#include "ParagraphList_fwd.h"
+#include "ParagraphList.h"
#include <iosfwd>
+
+namespace lyx {
+
class Buffer;
class BufferParams;
class BufferView;
class CursorSlice;
class Dimension;
+class ErrorList;
class InsetBase;
class InsetBase_code;
class FuncRequest;
/// This class encapsulates the main text data and operations in LyX
class LyXText {
public:
- ///
- typedef lyx::pos_type pos_type;
- ///
- typedef lyx::pit_type pit_type;
-
/// constructor
explicit LyXText(BufferView *);
///
std::string getStringToIndex(LCursor const & cur);
/// insert a character at cursor position
- void insertChar(LCursor & cur, char c);
+ void insertChar(LCursor & cur, char_type c);
/// insert an inset at cursor position
void insertInset(LCursor & cur, InsetBase * inset);
/// read-write access to individual paragraph
Paragraph & getPar(pit_type pit) { return pars_[pit]; }
// Returns the current font and depth as a message.
- std::string LyXText::currentState(LCursor & cur);
+ std::string currentState(LCursor & cur);
/** returns row near the specified
* y-coordinate in given paragraph (relative to the screen).
* @param from return here the start of the word
* @param to return here the end of the word
*/
- void getWord(CursorSlice & from, CursorSlice & to, lyx::word_location const);
+ void getWord(CursorSlice & from, CursorSlice & to, word_location const);
/// just selects the word the cursor is in
- void selectWord(LCursor & cur, lyx::word_location loc);
+ void selectWord(LCursor & cur, word_location loc);
/// accept selected change
void acceptChange(LCursor & cur);
void setCursor(CursorSlice &, pit_type par, pos_type pos);
///
void setCursorIntern(LCursor & cur, pit_type par,
- pos_type pos, bool setfont = true, bool boundary = false);
+ pos_type pos, bool setfont = true, bool boundary = false);
///
void setCurrentFont(LCursor & cur);
///
bool cursorDownParagraph(LCursor & cur);
///
- void cursorHome(LCursor & cur);
+ bool cursorHome(LCursor & cur);
///
- void cursorEnd(LCursor & cur);
+ bool cursorEnd(LCursor & cur);
///
bool cursorPrevious(LCursor & cur);
///
bool cursorNext(LCursor & cur);
///
- void cursorTop(LCursor & cur);
- ///
- void cursorBottom(LCursor & cur);
+ bool cursorTop(LCursor & cur);
///
- void Delete(LCursor & cur);
- ///
- void backspace(LCursor & cur);
+ bool cursorBottom(LCursor & cur);
+ /// Erase character at cursor. Honour change tracking
+ bool erase(LCursor & cur);
+ /** At cursor position 0, merge paragraph with the one before it.
+ * Ignore CT (this is used in \c acceptChange, \c rejectChange for
+ * physical deletion of paragraph break)
+ */
+ bool backspacePos0(LCursor & cur);
+ /// Delete character before cursor. Honour CT
+ bool backspace(LCursor & cur);
+ // Dissolve the inset under cursor
+ bool dissolveInset(LCursor & cur);
///
- bool selectWordWhenUnderCursor(LCursor & cur, lyx::word_location);
+ bool selectWordWhenUnderCursor(LCursor & cur, word_location);
///
enum TextCase {
///
/* these things are for search and replace */
/// needed to insert the selection
- void insertStringAsLines(LCursor & cur, std::string const & str);
+ void insertStringAsLines(LCursor & cur, docstring const & str);
/// needed to insert the selection
- void insertStringAsParagraphs(LCursor & cur, std::string const & str);
+ void insertStringAsParagraphs(LCursor & cur, docstring const & str);
/// current text width
int width() const;
int singleWidth(Paragraph const & par, pos_type pos) const;
///
int singleWidth(Paragraph const & par,
- pos_type pos, char c, LyXFont const & Font) const;
+ pos_type pos, char_type c, LyXFont const & Font) const;
/// return the color of the canvas
LColor_color backgroundColor() const;
///
void write(Buffer const & buf, std::ostream & os) const;
/// returns whether we've seen our usual 'end' marker
- bool read(Buffer const & buf, LyXLex & lex);
+ bool read(Buffer const & buf, LyXLex & lex, ErrorList & errorList);
///
int ascent() const;
/// delete double space or empty paragraphs around old cursor
bool deleteEmptyParagraphMechanism(LCursor & cur, LCursor & old);
- ///
- friend class LyXScreen;
-
public:
///
Dimension dim_;
LyXFont current_font;
/// the current font
LyXFont real_current_font;
- /// our buffer's default layout font. This is textclass specific
- /* This is actually never initialized! Should be replaced by a
- * defaultfont() method that looks at the textclass (easy). [JMarc]*/
- LyXFont defaultfont_;
///
int background_color_;
/// return the default height of a row in pixels, considering font zoom
int defaultRowHeight();
+
+} // namespace lyx
+
#endif // LYXTEXT_H