You.i Engine
YiTextLayout.h
Go to the documentation of this file.
1 // © You i Labs Inc. 2000-2017. All rights reserved.
2 #ifndef _YI_TEXT_LAYOUT_H_
3 #define _YI_TEXT_LAYOUT_H_
4 
5 #include "framework/YiPredef.h"
7 
8 class CYITextLayoutLine;
9 class CYITextRenderer;
10 class CYIString;
11 
16 
20 typedef enum{
21  YI_TEXT_DIRECTION_LTR = 0, /* Text flows from left to right */
22  YI_TEXT_DIRECTION_RTL = 1, /* Text flows from rigth to left */
23  YI_TEXT_DIRECTION_MIXED = 2, /* Text contains both left to right and right to left flowing text */
24  YI_TEXT_DIRECTION_UNDEFINED = 3 /* Text has not been specified or contains no left to right or right to left characters */
26 
27 
34 {
35 public:
37 
38  virtual ~CYITextLayout(){};
39 
46  virtual bool LayoutText(const YI_TEXT_RENDER_INFO &TextRenderInfo, const CYITextRenderer *pTextRenderer) = 0;
47 
51  virtual uint32_t GetLineCount() const = 0;
52 
56  virtual const CYITextLayoutLine *GetTextLine(uint32_t nIndex) const = 0;
57 
62  virtual YI_TEXT_DIRECTION GetTextDirection() const = 0;
63 
67  virtual bool IsComplex() const = 0;
68 
72  virtual int32_t GetAscent() const = 0;
73 
77  virtual int32_t GetDescent() const = 0;
78 
82  virtual int32_t GetLeading() const = 0;
83 
87  virtual float GetGlyphBoxVerticalOffset() const = 0;
88 
92  virtual float GetFirstBaselineVerticalOffset() const = 0;
93 
97  virtual void Clear() = 0;
98 
106  virtual int32_t GetIndexOfPosition(float fX, float fY, float fHorizontalPixelRatio, float fVerticalPixelRatio) const = 0;
107 
112  virtual YI_FLOAT_RECT GetRectForTextRange(int32_t nStartIndex, int32_t nEndIndex, float fHorizontalPixelRatio, float fVerticalPixelRatio) const = 0;
113 };
114 
117 #endif // _YI_TEXT_LAYOUT_H_
Container class for Unicode strings. Conceptually, a CYIString object is a sequence of Unicode charac...
Definition: YiString.h:35
YI_TEXT_DIRECTION
Definition: YiTextLayout.h:20
virtual float GetFirstBaselineVerticalOffset() const =0
virtual const CYITextLayoutLine * GetTextLine(uint32_t nIndex) const =0
virtual int32_t GetLeading() const =0
virtual ~CYITextLayout()
Definition: YiTextLayout.h:38
virtual YI_TEXT_DIRECTION GetTextDirection() const =0
Definition: YiTextLayout.h:23
Definition: YiTextLayout.h:22
virtual int32_t GetIndexOfPosition(float fX, float fY, float fHorizontalPixelRatio, float fVerticalPixelRatio) const =0
virtual void Clear()=0
CYITextLayout()
Definition: YiTextLayout.h:36
virtual YI_FLOAT_RECT GetRectForTextRange(int32_t nStartIndex, int32_t nEndIndex, float fHorizontalPixelRatio, float fVerticalPixelRatio) const =0
virtual int32_t GetDescent() const =0
Definition: YiPredef.h:273
Base class for abstracting the layout for text.
Definition: YiTextLayout.h:33
virtual float GetGlyphBoxVerticalOffset() const =0
virtual int32_t GetAscent() const =0
virtual bool IsComplex() const =0
virtual uint32_t GetLineCount() const =0
Struct used to pass information when rendering text.
Definition: YiTextEngine.h:97
Definition: YiTextLayout.h:24
Definition: YiTextLayout.h:21
virtual bool LayoutText(const YI_TEXT_RENDER_INFO &TextRenderInfo, const CYITextRenderer *pTextRenderer)=0