| /* | |
| ******************************************************************************* | |
| * | |
| * © 2016 and later: Unicode, Inc. and others. | |
| * License & terms of use: http://www.unicode.org/copyright.html | |
| * | |
| ******************************************************************************* | |
| ******************************************************************************* | |
| * | |
| * Copyright (C) 1999-2007, International Business Machines | |
| * Corporation and others. All Rights Reserved. | |
| * | |
| ******************************************************************************* | |
| * file name: Paragraph.h | |
| * | |
| * created on: 09/06/2000 | |
| * created by: Eric R. Mader | |
| */ | |
| #ifndef __PARAGRAPH_H | |
| #define __PARAGRAPH_H | |
| #include "unicode/utypes.h" | |
| #include "unicode/ubidi.h" | |
| #include "layout/LEFontInstance.h" | |
| #include "layout/ParagraphLayout.h" | |
| #include "GUISupport.h" | |
| #include "RenderingSurface.h" | |
| U_NAMESPACE_USE | |
| #define MARGIN 10 | |
| #if 0 | |
| class LineInfo; | |
| #endif | |
| class Paragraph | |
| { | |
| public: | |
| Paragraph(const LEUnicode chars[], le_int32 charCount, const FontRuns *fontRuns, LEErrorCode &status); | |
| ~Paragraph(); | |
| le_int32 getAscent(); | |
| le_int32 getLineHeight(); | |
| le_int32 getLineCount(); | |
| void breakLines(le_int32 width, le_int32 height); | |
| void draw(RenderingSurface *surface, le_int32 firstLine, le_int32 lastLine); | |
| static Paragraph *paragraphFactory(const char *fileName, const LEFontInstance *font, GUISupport *guiSupport); | |
| private: | |
| void addLine(const ParagraphLayout::Line *line); | |
| ParagraphLayout **fParagraphLayout; | |
| le_int32 fParagraphCount; | |
| le_int32 fParagraphMax; | |
| le_int32 fParagraphGrow; | |
| le_int32 fLineCount; | |
| le_int32 fLinesMax; | |
| le_int32 fLinesGrow; | |
| const ParagraphLayout::Line **fLines; | |
| LEUnicode *fChars; | |
| le_int32 fLineHeight; | |
| le_int32 fAscent; | |
| le_int32 fWidth; | |
| le_int32 fHeight; | |
| UBiDiLevel fParagraphLevel; | |
| }; | |
| inline le_int32 Paragraph::getLineHeight() | |
| { | |
| return fLineHeight; | |
| } | |
| inline le_int32 Paragraph::getLineCount() | |
| { | |
| return fLineCount; | |
| } | |
| inline le_int32 Paragraph::getAscent() | |
| { | |
| return fAscent; | |
| } | |
| #endif | |