/// 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
///
void cursorEnd(BufferView *) const;
///
+ void cursorPrevious(BufferView * bv);
+ ///
+ void cursorNext(BufferView * bv);
+ ///
void cursorTab(BufferView *) const;
///
void cursorTop(BufferView *) const;
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);
/** 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.
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;
/** 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