X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxrow.h;h=e7c1183958acb70fb816be65a10b42b937bee228;hb=2e57f2ff0ae7cd4a6efbf634ffe6d2f4379d9cfc;hp=64089fc711991ca6d840590817cb21e470351203;hpb=27de1486ca34aaad446adb798d71a77d6f6304da;p=lyx.git diff --git a/src/lyxrow.h b/src/lyxrow.h index 64089fc711..e7c1183958 100644 --- a/src/lyxrow.h +++ b/src/lyxrow.h @@ -1,41 +1,90 @@ // -*- C++ -*- -/* This file is part of - * ====================================================== - * - * LyX, The Document Processor - * - * Copyright (C) 1995 Matthias Ettrich +/** + * \file lyxrow.h + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. * - *======================================================*/ - -#ifndef _LYXROW_H -#define _LYXROW_H + * \author Matthias Ettrich + * \author Lars Gullik Bjønnes + * + * Full author contact details are available in file CREDITS + * + * Metrics for an on-screen text row. + */ -//#include "lyxparagraph.h" +#ifndef LYXROW_H +#define LYXROW_H -class LyXParagraph; +#include "ParagraphList.h" +#include "support/types.h" /// -struct Row { +class Row { +public: /// - LyXParagraph *par; + Row(); /// - int pos; + Row(ParagraphList::iterator pit, lyx::pos_type pos); /// - unsigned short baseline; + void par(ParagraphList::iterator pit); /// - /** what is missing to a full row can be negative. - Needed for hfills, flushright, block etc. */ - int fill; + 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