X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxrow.h;h=e7c1183958acb70fb816be65a10b42b937bee228;hb=2e57f2ff0ae7cd4a6efbf634ffe6d2f4379d9cfc;hp=e480cfaf18b6d140ad390d724b83480e388fa6a9;hpb=2889b5fd3e8987d0c265ff4726a7fb6c6cb6c034;p=lyx.git diff --git a/src/lyxrow.h b/src/lyxrow.h index e480cfaf18..e7c1183958 100644 --- a/src/lyxrow.h +++ b/src/lyxrow.h @@ -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