/// 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;
///
mutable int refresh_y;
///
- 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;
/** 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
/// returns the inset at cursor (if it exists), 0 otherwise
Inset * getInset() const;
+ /// accept selected change
+ void acceptChange(BufferView * bv);
+
+ /// reject selected change
+ void rejectChange(BufferView * bv);
+
/** 'selects" the next word, where the cursor is not in
and returns this word as string. THe cursor will be moved
to the beginning of this word.
///
void cursorEnd(BufferView *) const;
///
+ void cursorPrevious(BufferView * bv);
+ ///
+ void cursorNext(BufferView * bv);
+ ///
void cursorTab(BufferView *) const;
///
void cursorTop(BufferView *) const;
/* these things are for search and replace */
- /** sets the selection over the number of characters of string,
- no check!!
- */
- void setSelectionOverString(BufferView *, string const & str);
+ /**
+ * Sets the selection from the current cursor position to length
+ * characters to the right. No safety checks.
+ */
+ void setSelectionRange(BufferView *, lyx::pos_type length);
/** simple replacing. The font of the first selected character
is used
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 */
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 * bview,
+ void changeRegionCase(BufferView * bv,
LyXCursor const & from,
LyXCursor const & to,
LyXText::TextCase action);
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 the selection background
void paintRowSelection(DrawRowParams & p);
+ /// paint change bar
+ void paintChangeBar(DrawRowParams & p);
+
/// paint appendix marker
void paintRowAppendix(DrawRowParams & p);
/// 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;
/** Updates all counters starting BEHIND the row. Changed paragraphs
* with a dynamic left margin will be rebroken. */
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;
///
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