X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxcursor.h;h=8cbea6ce3d223b5c0e61dc5e41316bb0b7eb687d;hb=09e01879979643949f1f2c7216023f1f35d5ada2;hp=8c78d9f5d463e1be81a3994486ed913cf13c08bd;hpb=2622efcc1449b48e409876be13030cfec7cba34e;p=lyx.git diff --git a/src/lyxcursor.h b/src/lyxcursor.h index 8c78d9f5d4..8cbea6ce3d 100644 --- a/src/lyxcursor.h +++ b/src/lyxcursor.h @@ -10,16 +10,10 @@ #ifndef LYXCURSOR_H #define LYXCURSOR_H -#ifdef __GNUG__ -#pragma interface -#endif - +#include "ParagraphList.h" #include "support/types.h" -class Paragraph; -class Row; - -/** +/** * The cursor class describes the position of a cursor within a document. * Several cursors exist within LyX; for example, when locking an inset, * the position of the cursor in the containing inset is stored. @@ -30,9 +24,9 @@ class LyXCursor { public: LyXCursor(); /// set the paragraph that contains this cursor - void par(Paragraph * p); + void par(ParagraphList::iterator pit); /// return the paragraph this cursor is in - Paragraph * par() const; + ParagraphList::iterator par() const; /// set the position within the paragraph void pos(lyx::pos_type p); /// return the position within the paragraph @@ -66,7 +60,7 @@ public: * blah blah blah blah blah blah * * When we move onto row 3, we would like to be vertically aligned - * with where we were in row 1, despite the fact that row 2 is + * with where we were in row 1, despite the fact that row 2 is * shorter than x() */ int x_fix() const; @@ -84,23 +78,9 @@ public: * FIXME: explain why we need this ? especially for y... */ int iy() const; - /// set the row of the paragraph the cursor is in - void row(Row * r); - /// return the row of the paragraph this cursor is in - Row * row() const; - /// set the stored next row - void irow(Row * r); - /** - * Return the next row, when this - * cursor is at the end of the previous row, for insets that take - * a full row. - * - * FIXME: explain why we need this ? especially for y... - */ - Row * irow() const; private: /// The paragraph the cursor is in. - Paragraph * par_; + ParagraphList::iterator par_; /// The position inside the paragraph lyx::pos_type pos_; /** @@ -121,7 +101,7 @@ private: bool boundary_; /// the pixel x position int x_; - /// the stored next-row x position + /// the stored next-row x position int ix_; /// the cached x position int x_fix_; @@ -129,51 +109,11 @@ private: int y_; /// the stored next-row y position int iy_; - /// the containing row - Row * row_; - /// the containing row for the next line - Row * irow_; }; -/// these three dictate the others -inline -bool operator==(LyXCursor const & a, LyXCursor const & b) -{ - return (a.par() == b.par()) - && (a.pos() == b.pos()) - && a.boundary() == b.boundary(); -} - -inline -bool operator!=(LyXCursor const & a, LyXCursor const & b) -{ - return !(a == b); -} - -/// only compares y() and pos(). Can this be done in another way? -inline -bool operator<(LyXCursor const & a, LyXCursor const & b) -{ - return (a.y() < b.y() && a.pos() < b.pos()); -} - -inline -bool operator>(LyXCursor const & a, LyXCursor const & b) -{ - return b < a; -} - -inline -bool operator>=(LyXCursor const & a, LyXCursor const & b) -{ - return !(a < b); -} - - -inline -bool operator<=(LyXCursor const & a, LyXCursor const & b) -{ - return !(a > b); -} +/// +bool operator==(LyXCursor const & a, LyXCursor const & b); +/// +bool operator!=(LyXCursor const & a, LyXCursor const & b); #endif // LYXCURSOR_H