Please check the stuff I've guessed, and fill in the FIXMEs
thanks john Index: lyxcursor.h =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/lyxcursor.h,v retrieving revision 1.25 diff -u -r1.25 lyxcursor.h --- lyxcursor.h 16 Apr 2002 14:10:36 -0000 1.25 +++ lyxcursor.h 1 Aug 2002 23:51:19 -0000 @@ -1,13 +1,11 @@ // -*- C++ -*- -/* This file is part of - * ====================================================== +/** + * \file lyxcursor.h + * Copyright 1995-2001 the LyX Team + * Read the file COPYING * - * LyX, The Document Processor - * - * Copyright 1995 Matthias Ettrich - * Copyright 1995-2001 The LyX Team. - * - * ====================================================== */ + * \author Matthias Ettrich + */ #ifndef LYXCURSOR_H #define LYXCURSOR_H @@ -21,79 +19,109 @@ class Paragraph; class Row; -/** All these variables should be explained. Matthias? +/** + * 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. + * + * FIXME: true ? */ class LyXCursor { public: - /// LyXCursor(); - /// + /// set the paragraph that contains this cursor void par(Paragraph * p); - /// + /// return the paragraph this cursor is in Paragraph * par() const; - /// + /// set the position within the paragraph void pos(lyx::pos_type p); - /// + /// return the position within the paragraph lyx::pos_type pos() const; - /// + /// FIXME void boundary(bool b); - /// + /// FIXME bool boundary() const; - /// + /// set the x position in pixels void x(int i); - /// + /// return the x position in pixels int x() const; - /// + /// set the stored next-line position when at the end of a row void ix(int i); - /// + /** + * Return the x position of the start of 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 ? + */ int ix() const; - /// + /// set the cached x position void x_fix(int i); - /// + /** + * Return the cached x position of the cursor. This is used for when + * we have text like : + * + * blah blah blah blah| blah blah blah + * blah blah blah + * 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 + * shorter than x() + */ int x_fix() const; - /// + /// set the y position in pixels void y(int i); - /// + /// return the y position in pixels int y() const; - /// + /// set the stored next-line y position when at the end of a row void iy(int i); - /// + /** + * Return the y position of the start of 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... + */ 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_; /// The position inside the paragraph lyx::pos_type pos_; - /// + /// FIXME bool boundary_; - /// + /// the pixel x position int x_; - /// the x position of the position before the inset when we put - /// the cursor on the end of the row before, otherwise equal to x. + /// the stored next-row x position int ix_; - /// + /// the cached x position int x_fix_; - /// + /// the pixel y position int y_; - /// the y position of the position before the inset when we put - /// the cursor on the end of the row before, otherwise equal to y. + /// the stored next-row y position int iy_; - /// + /// the containing row Row * row_; - /// the row of the position before the inset when we put - /// the cursor on the end of the row before, otherwise equal to row. + /// the containing row for the next line Row * irow_; }; -/// +/// these three dictate the others inline bool operator==(LyXCursor const & a, LyXCursor const & b) { @@ -102,29 +130,25 @@ && 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) { - // Can this be done in a nother way? 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) { @@ -132,11 +156,10 @@ } -/// inline bool operator<=(LyXCursor const & a, LyXCursor const & b) { return !(a > b); } -#endif +#endif // LYXCURSOR_H