///
void newParMetricsUp();
+ /// The "nodraw" drawing stage for one single paragraph: set the
+ /// positions of the insets contained this paragraph in metrics
+ /// cache. Related to BufferView::updatePosCache.
+ void updatePosCache(pit_type pit) const;
+
/// Gets the fully instantiated font at a given position in a paragraph
/// Basically the same routine as Paragraph::getFont() in Paragraph.cpp.
/// The difference is that this one is used for displaying, and thus we
bool redoParagraph(pit_type const pit);
/// Clear cache of paragraph metrics
void clear() { par_metrics_.clear(); }
+ /// Is cache of paragraph metrics empty ?
+ bool empty() const { return par_metrics_.empty(); }
///
int ascent() const { return dim_.asc; }
///
ParagraphMetrics & parMetrics(pit_type, bool redo_paragraph);
+ /**
+ * 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
+ * (for example sections) exactly the label-width.
+ */
+ int leftMargin(pit_type pit, pos_type pos) const;
+ int leftMargin(pit_type pit) const;
+
/// the minimum space a manual label needs on the screen in pixels
int labelFill(Row const & row) const;
/// returns the position near the specified x-coordinate of the row.
/// x is an absolute screen coord, it is set to the real beginning
/// of this column. This takes in account horizontal cursor row scrolling.
- pos_type getPosNearX(Row const & row, int & x, bool & boundary,
- bool select = false) const;
+ pos_type getPosNearX(Row const & row, int & x, bool & boundary) const;
/// returns pos in given par at given x coord.
pos_type x2pos(pit_type pit, int row, int x) const;
that is completely visible
\param up whether we are going up or down (only used when
assert_in_view is true
- \retval inset is non-null if the cursor is positionned inside
+ \retval inset is null if the cursor is positioned over normal
+ text in the current Text object. Otherwise it is the inset
+ that the cursor points to, like for Inset::editXY.
*/
/// FIXME: cleanup to use BufferView::getCoveringInset() and
/// setCursorFromCoordinates() instead of checkInsetHit().
/// sets cursor only within this Text.
/// x,y are screen coordinates
- /// If select is true, move to the next position if closer to the right
- /// edge.
- void setCursorFromCoordinates(Cursor & cur, int x, int y,
- bool select = false);
+ void setCursorFromCoordinates(Cursor & cur, int x, int y);
///
int cursorX(CursorSlice const & cursor, bool boundary) const;
/// \sa BufferView::getCoveringInset() to get the innermost inset.
Inset * checkInsetHit(int x, int y);
- /**
- * 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
- * (for example sections) exactly the label-width.
- */
- int leftMargin(int max_width, pit_type pit, pos_type pos) const;
- int leftMargin(int max_width, pit_type pit) const;
-
/// calculates the position of a completion popup
void completionPosAndDim(Cursor const & cur, int & x, int & y,
Dimension & dim) const;