]> git.lyx.org Git - lyx.git/blobdiff - src/lyxcursor.h
fix typo that put too many include paths for most people
[lyx.git] / src / lyxcursor.h
index 7c4bed06bac301329a819e05907ca08147d0d369..c36812befd3ac70d82f49f08ab19a6df233d88ab 100644 (file)
@@ -1,35 +1,40 @@
 // -*- C++ -*-
 /* This file is part of
- * ====================================================== 
- * 
+ * ======================================================
+ *
  *           LyX, The Document Processor
- *      
+ *
  *           Copyright 1995 Matthias Ettrich
- *           Copyright 1995-2000 The LyX Team.
+ *           Copyright 1995-2001 The LyX Team.
  *
  * ====================================================== */
 
 #ifndef LYXCURSOR_H
 #define LYXCURSOR_H
 
-#include "lyxparagraph.h"
+#ifdef __GNUG__
+#pragma interface
+#endif
+
+#include "support/types.h"
 
-struct Row;
+class Paragraph;
+class Row;
 
 /** All these variables should be explained. Matthias?
  */
 class LyXCursor {
 public:
        ///
-       void par(LyXParagraph * p);
+       LyXCursor();
        ///
-       LyXParagraph * par();
+       void par(Paragraph * p);
        ///
-       LyXParagraph * par() const;
+       Paragraph * par() const;
        ///
-       void pos(LyXParagraph::size_type p);
+       void pos(lyx::pos_type p);
        ///
-       LyXParagraph::size_type pos() const;
+       lyx::pos_type pos() const;
        ///
        void boundary(bool b);
        ///
@@ -43,20 +48,18 @@ public:
        ///
        int x_fix() const;
        ///
-       void y(unsigned long i);
+       void y(int i);
        ///
-       unsigned long y() const;
+       int y() const;
        ///
        void row(Row * r);
        ///
-       Row * row();
-       ///
        Row * row() const;
 private:
        /// The paragraph the cursor is in.
-       LyXParagraph * par_;
+       Paragraph * par_;
        /// The position inside the paragraph
-       LyXParagraph::size_type pos_;
+       lyx::pos_type pos_;
        ///
        bool boundary_;
        ///
@@ -64,12 +67,12 @@ private:
        ///
        int x_fix_;
        ///
-       unsigned long y_;
+       int y_;
        ///
        Row * row_;
 };
 
-
+///
 inline
 bool operator==(LyXCursor const & a, LyXCursor const & b)
 {
@@ -78,11 +81,41 @@ bool operator==(LyXCursor const & a, LyXCursor const & b)
                && a.boundary() == b.boundary();
 }
 
-
+///
 inline
 bool operator!=(LyXCursor const & a, LyXCursor const & b)
 {
        return !(a == b);
 }
 
+///
+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)
+{
+       return !(a < b);
+}
+
+
+///
+inline
+bool operator<=(LyXCursor const & a, LyXCursor const & b)
+{
+       return !(a > b);
+}
+
 #endif