X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FTextMetrics.h;h=66d310fcc60ef4164c23152341d88b2385da8f3f;hb=1d6573a330791fb34541f4092cd49e4559972489;hp=efedcb8c9917adcc93661072316a5af41a940fdb;hpb=f1cba8ff64b369792fd49f5ddf90e8126ab476ac;p=lyx.git diff --git a/src/TextMetrics.h b/src/TextMetrics.h index efedcb8c99..66d310fcc6 100644 --- a/src/TextMetrics.h +++ b/src/TextMetrics.h @@ -46,9 +46,6 @@ public: /// std::pair last() const; - /// - int parPosition(pit_type pit) const; - /// Dimension const & dimension() const { return dim_; } /// @@ -102,7 +99,7 @@ public: int descent() const { return dim_.des; } /// current text width. int width() const { return dim_.wid; } - /// current text heigth. + /// current text height. int height() const { return dim_.height(); } /// @@ -144,10 +141,10 @@ private: /// sets row.end to the pos value *after* which a row should break. /// for example, the pos after which isNewLine(pos) == true - pit_type rowBreakPoint( + pos_type rowBreakPoint( int width, pit_type const pit, - pit_type first + pos_type first ) const; /// returns the minimum space a row needs on the screen in pixel @@ -158,10 +155,6 @@ private: pos_type const end ) const; - /// draw selection for a single row - void drawRowSelection(PainterInfo & pi, int x, Row const & row, - Cursor const & cur, pit_type const pit) const; - // Temporary public: public: /// returns the column near the specified x-coordinate of the row. @@ -176,11 +169,11 @@ public: // FIXME: is there a need for this? //int pos2x(pit_type pit, pos_type pos) const; - /** returns row near the specified - * y-coordinate in given paragraph (relative to the screen). - */ - Row const & getRowNearY(int y, - pit_type pit) const; + /// returns the row near the specified y-coordinate in a given paragraph + /// (relative to the screen). If assert_in_view is true, it is made sure + /// that the row is on screen completely; this might change the given pit. + Row const & getPitAndRowNearY(int & y, pit_type & pit, + bool assert_in_view, bool up); /// returns the paragraph number closest to screen y-coordinate. /// This method uses the BufferView CoordCache to locate the @@ -193,11 +186,16 @@ public: /** \return the inset pointer if x,y is covering that inset \param x,y are absolute screen coordinates. + \param assert_in_view if true the cursor will be set on a row + 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 */ /// FIXME: cleanup to use BufferView::getCoveringInset() and /// setCursorFromCoordinates() instead of checkInsetHit(). - Inset * editXY(Cursor & cur, int x, int y); + Inset * editXY(Cursor & cur, int x, int y, + bool assert_in_view = false, bool up = true); /// sets cursor only within this Text. /// x,y are screen coordinates