#include "layout.h"
#include "LColor.h"
#include "insets/inset.h"
-#include "WordLangTuple.h"
class Buffer;
class BufferParams;
class Spacing;
class UpdatableInset;
class VSpace;
+class WordLangTuple;
/**
/// Constructor
LyXText(BufferView *);
- ///
+ /// sets inset as owner
LyXText(InsetText *);
/// Destructor
void init(BufferView *, bool reinit = false);
///
- mutable int number_of_rows;
- ///
mutable int height;
///
mutable unsigned int width;
///
void setLayout(BufferView *, string const & layout);
- /// used in setlayout
- void makeFontEntriesLayoutSpecific(Buffer const *, Paragraph * par);
-
/** increment depth over selection and make a total rebreak of those
paragraphs
*/
paragraphs */
void decDepth(BufferView *);
- /** Get the depth at current cursor position
- */
+ /// get the depth at current cursor position
int getDepth() const;
/** set font over selection and make a total rebreak of those
*/
void redoHeightOfParagraph(BufferView *, LyXCursor const & cursor);
- /** forces the redrawing of a paragraph. Needed when manipulating a
- right address box
- */
- void redoDrawingOfParagraph(BufferView *, LyXCursor const & cursor);
-
/** insert a character, moves all the following breaks in the
same Paragraph one to the right and make a little rebreak
*/
///
void insertInset(BufferView *, Inset * inset);
- /** Completes the insertion with a full rebreak. */
+ /// Completes the insertion with a full rebreak
void fullRebreak(BufferView *);
///
///
mutable int refresh_y;
///
- int refresh_height;
- ///
- int refresh_width;
- ///
- int refresh_x;
- ///
mutable Row * refresh_row;
- ///
- lyx::pos_type refresh_pos;
/// give and set the LyXText status
text_status status() const;
///
void status(BufferView *, text_status) const;
+ ///
+ Inset::RESULT dispatch(FuncRequest const & cmd);
+
private:
/** wether the screen needs a refresh,
starting with refresh_y
/** returns a pointer to a specified row. y is set to the beginning
of the row
*/
- Row * getRow(Paragraph * par,
- lyx::pos_type pos, int & y) const;
+ Row * getRow(Paragraph * par, lyx::pos_type pos, int & y) const;
/** returns the firstrow, this could be done with the above too but
IMO it's stupid to have to allocate a dummy y all the time I need
the first row
to the beginning of this word.
With SelectSelectedWord can this be highlighted really
*/
- WordLangTuple selectNextWordToSpellcheck(BufferView *, float & value) const;
+ WordLangTuple const selectNextWordToSpellcheck(BufferView *, float & value) const;
///
void selectSelectedWord(BufferView *);
/// returns true if par was empty and was removed
bool setfont = true,
bool boundary = false) const;
///
- float getCursorX(BufferView *, Row *, lyx::pos_type pos,
- lyx::pos_type last, bool boundary) const;
- ///
void setCurrentFont(BufferView *) const;
///
///
void cursorLeftOneWord(BufferView *) const;
///
- void cursorLeftOneWord(LyXCursor &) const;
- ///
void cursorRightOneWord(BufferView *) const;
///
void cursorUpParagraph(BufferView *) const;
///
void cursorEnd(BufferView *) const;
///
+ void cursorPrevious(BufferView * bv);
+ ///
+ void cursorNext(BufferView * bv);
+ ///
void cursorTab(BufferView *) const;
///
void cursorTop(BufferView *) const;
///
void backspace(BufferView *);
///
- void deleteWordForward(BufferView *);
- ///
- void deleteWordBackward(BufferView *);
- ///
- void deleteLineForward(BufferView *);
- ///
bool selectWordWhenUnderCursor(BufferView *,
word_location const);
///
/// Change the case of the word at cursor position.
void changeCase(BufferView *, TextCase action);
///
- void changeRegionCase(BufferView * bview,
- LyXCursor const & from,
- LyXCursor const & to,
- LyXText::TextCase action);
- ///
void transposeChars(BufferView &);
/** returns a printed row in a pixmap. The y value is needed to
bool gotoNextInset(BufferView *, std::vector<Inset::Code> const & codes,
string const & contents = string()) const;
///
+ void gotoInset(BufferView * bv, std::vector<Inset::Code> const & codes,
+ bool same_content);
+ ///
+ void gotoInset(BufferView * bv, Inset::Code code, bool same_content);
+ ///
/* for the greater insets */
///
void checkParagraph(BufferView *, Paragraph * par, lyx::pos_type pos);
///
- int numberOfCell(Paragraph * par, lyx::pos_type pos) const;
- ///
- void removeTableRow(LyXCursor & cursor) const;
- ///
- bool isEmptyTableCell() const;
- ///
- void toggleAppendix(BufferView *);
- ///
int workWidth(BufferView *) const;
///
int workWidth(BufferView *, Inset * inset) const;
private:
///
mutable Row * firstrow;
-
///
mutable Row * lastrow;
+ ///
+ void cursorLeftOneWord(LyXCursor &) const;
+
+ ///
+ float getCursorX(BufferView *, Row *, lyx::pos_type pos,
+ lyx::pos_type last, bool boundary) const;
+ ///
+ void changeRegionCase(BufferView * bv,
+ LyXCursor const & from,
+ LyXCursor const & to,
+ LyXText::TextCase action);
+ /// used in setlayout
+ void makeFontEntriesLayoutSpecific(Buffer const *, Paragraph * par);
+
+ /** forces the redrawing of a paragraph. Needed when manipulating a
+ right address box
+ */
+ void redoDrawingOfParagraph(BufferView *, LyXCursor const & cursor);
+
/** Copybuffer for copy environment type.
Asger has learned that this should be a buffer-property instead
Lgb has learned that 'char' is a lousy type for non-characters
*/
string copylayouttype;
+
/** inserts a new row behind the specified row, increments
the touched counters */
void insertRow(Row * row, Paragraph * par, lyx::pos_type pos) const;
- /** removes the row and reset the touched counters */
+ /// removes the row and reset the touched counters
void removeRow(Row * row) const;
- /** remove all following rows of the paragraph of the specified row. */
+ /// remove all following rows of the paragraph of the specified row.
void removeParagraph(Row * row) const;
- /** insert the specified paragraph behind the specified row */
+ /// insert the specified paragraph behind the specified row
void insertParagraph(BufferView *,
Paragraph * par, Row * row) const;
/// paint page break marker. Returns its height.
int paintPageBreak(string const & label, int y, DrawRowParams & p);
-
+
/// paint env depth bar
void paintRowDepthBar(DrawRowParams & p);
// fix the cursor `cur' after a characters has been deleted at `where'
// position. Called by deleteEmptyParagraphMechanism
- void fixCursorAfterDelete(BufferView * bview,
+ void fixCursorAfterDelete(BufferView * bv,
LyXCursor & cur,
LyXCursor const & where) const;
public:
/** Updates all counters starting BEHIND the row. Changed paragraphs
* with a dynamic left margin will be rebroken. */
- void updateCounters(BufferView *, Row * row) const;
+ void updateCounters(BufferView *) const;
+ ///
+ void update(BufferView * bv, bool changed = true);
+ /**
+ * Returns an inset if inset was hit, or 0 if not.
+ * If hit, the coordinates are changed relative to the inset.
+ */
+ Inset * checkInsetHit(BufferView * bv, int & x, int & y) const;
+
private:
///
void setCounter(Buffer const *, Paragraph * par) const;
+ ///
+ void deleteWordForward(BufferView *);
+ ///
+ void deleteWordBackward(BufferView *);
+ ///
+ void deleteLineForward(BufferView *);
/*
* some low level functions
///
lyx::pos_type beginningOfMainBody(Buffer const *, Paragraph const * par) const;
- /**
+ /**
* Returns the left beginning of the text.
* This information cannot be taken from the layout object, because
* in LaTeX the beginning of the text fits in some cases