| /* |
| ******************************************************************************* |
| * |
| * 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 |
| |
| |