X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxrow.h;h=e7c1183958acb70fb816be65a10b42b937bee228;hb=2e57f2ff0ae7cd4a6efbf634ffe6d2f4379d9cfc;hp=e90d27caac7a0270a0961da6ebcd5ed7eef8ccf5;hpb=ed22adefc6ca3060a1d271d26f2908486182f396;p=lyx.git diff --git a/src/lyxrow.h b/src/lyxrow.h index e90d27caac..e7c1183958 100644 --- a/src/lyxrow.h +++ b/src/lyxrow.h @@ -1,39 +1,90 @@ // -*- C++ -*- -/* This file is part of - * ====================================================== - * - * LyX, The Document Processor - * - * Copyright 1995 Matthias Ettrich - * Copyright 1995-1999 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" /// -struct Row { +class Row { +public: /// - LyXParagraph * par; + Row(); /// - LyXParagraph::size_type pos; + Row(ParagraphList::iterator pit, lyx::pos_type pos); /// - unsigned short baseline; - /** what is missing to a full row can be negative. - Needed for hfills, flushright, block etc. */ - mutable int fill; + void par(ParagraphList::iterator pit); + /// + ParagraphList::iterator par(); + /// + ParagraphList::iterator par() const; + /// + void pos(lyx::pos_type p); + /// + lyx::pos_type pos() const; + /// + void fill(int f); + /// + int fill() const; + /// + void height(unsigned short h); + /// + unsigned short height() const; /// - unsigned short height; + void width(unsigned int w); + /// + unsigned int width() const; + /// + void ascent_of_text(unsigned short a); + /// + unsigned short ascent_of_text() const; + /// + void top_of_text(unsigned int top); + /// + unsigned int top_of_text() const; + /// + void baseline(unsigned int b); + /// + 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: + /// + ParagraphList::iterator pit_; + /// + 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 ascent_of_text; - + unsigned short height_; /// - Row * next; + 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_; /// - Row * previous; + unsigned int baseline_; }; #endif