]> git.lyx.org Git - lyx.git/blobdiff - src/lyxrow.h
rename Inset to InsetOld
[lyx.git] / src / lyxrow.h
index e480cfaf18b6d140ad390d724b83480e388fa6a9..e7c1183958acb70fb816be65a10b42b937bee228 100644 (file)
@@ -1,18 +1,22 @@
 // -*- C++ -*-
-/* This file is part of
- * ====================================================== 
- * 
- *           LyX, The Document Processor
- *      
- *           Copyright 1995 Matthias Ettrich
- *           Copyright 1995-2000 The LyX Team.
+/**
+ * \file lyxrow.h
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
  *
- * ====================================================== */
+ * \author Matthias Ettrich
+ * \author Lars Gullik Bjønnes
+ *
+ * Full author contact details are available in file CREDITS
+ *
+ * Metrics for an on-screen text row.
+ */
 
 #ifndef LYXROW_H
 #define LYXROW_H
 
-#include "lyxparagraph.h"
+#include "ParagraphList.h"
+#include "support/types.h"
 
 ///
 class Row {
@@ -20,15 +24,17 @@ public:
        ///
        Row();
        ///
-       void par(LyXParagraph * p);
+       Row(ParagraphList::iterator pit, lyx::pos_type pos);
        ///
-       LyXParagraph * par();
+       void par(ParagraphList::iterator pit);
        ///
-       LyXParagraph * par() const;
+       ParagraphList::iterator par();
        ///
-       void pos(LyXParagraph::size_type p);
+       ParagraphList::iterator par() const;
        ///
-       LyXParagraph::size_type pos() const;
+       void pos(lyx::pos_type p);
+       ///
+       lyx::pos_type pos() const;
        ///
        void fill(int f);
        ///
@@ -38,39 +44,47 @@ public:
        ///
        unsigned short height() const;
        ///
-       void ascent_of_text(unsigned short a);
+       void width(unsigned int w);
        ///
-       unsigned short ascent_of_text() const;
+       unsigned int width() const;
        ///
-       void baseline(unsigned int b);
+       void ascent_of_text(unsigned short a);
        ///
-       unsigned int baseline() const;
+       unsigned short ascent_of_text() const;
        ///
-       void next(Row * r);
+       void top_of_text(unsigned int top);
        ///
-       Row * next() const;
+       unsigned int top_of_text() const;
        ///
-       void previous(Row * r);
+       void baseline(unsigned int b);
        ///
-       Row * previous() const;
+       unsigned int baseline() const;
+       /// return true if this row is the start of a paragraph
+       bool isParStart() const;
+       /// return the cached y position
+       unsigned int y() const;
+       /// cache the y position
+       void y(unsigned int newy);
 private:
        ///
-       LyXParagraph * par_;
+       ParagraphList::iterator pit_;
        ///
-       LyXParagraph::size_type pos_;
-       /** what is missing to a full row can be negative.
+       lyx::pos_type pos_;
+       /** what is missing to a full row. Can be negative.
          Needed for hfills, flushright, block etc. */
        mutable int fill_;
        ///
        unsigned short height_;
        ///
+       unsigned int width_;
+       /// cached y position
+       unsigned int y_;
+       /// ascent from baseline including prelude space
        unsigned short ascent_of_text_;
+       /// the top of the real text in the row
+       unsigned int top_of_text_;
        ///
        unsigned int baseline_;
-       ///
-       Row * next_;
-       ///
-       Row * previous_;
 };
 
 #endif