YSTest
PreAlpha_b400_20130424
The YSLib Test Project
首页
相关页面
模块
命名空间
类
文件
文件列表
文件成员
全部
类
命名空间
文件
函数
变量
类型定义
枚举
枚举值
友元
宏定义
组
页
TextBase.cpp
浏览该文件的文档.
1
/*
2
Copyright by FrankHB 2009 - 2013.
3
4
This file is part of the YSLib project, and may only be used,
5
modified, and distributed under the terms of the YSLib project
6
license, LICENSE.TXT. By continuing to use, modify, or distribute
7
this file you indicate that you have read the license and
8
understand and accept it fully.
9
*/
10
28
#include "
YSLib/Service/TextBase.h
"
29
#include "
YSLib/Service/yblit.h
"
30
31
using namespace
ystdex;
32
33
YSL_BEGIN
34
35
using namespace
Drawing;
36
using namespace
Text;
37
38
YSL_BEGIN_NAMESPACE
(Drawing)
39
40
TextState::TextState(const Drawing::Font& font)
41
: PenStyle(font),
42
Margin(
DefaultMargin
), Pen(), LineGap(0)
43
{}
44
TextState::TextState(FontCache&
fc
)
45
: TextState(Drawing::Font(fc.GetDefaultTypefacePtr()->GetFontFamily()))
46
{}
47
48
void
49
TextState::PutNewline
()
50
{
51
CarriageReturn
(*
this
);
52
Pen
.
Y
+=
GetTextLineHeightExOf
(*
this
);
53
}
54
55
void
56
TextState::ResetPen
()
57
{
58
// Pen.Y = Margin.Top + GetTextLineHeightExOf(*this);
59
// Pen.Y = Margin.Top + pCache->GetAscender();
60
CarriageReturn
(*
this
),
61
Pen
.
Y
=
GetTextLineBaseOf
(*
this
);
62
}
63
void
64
TextState::ResetPen
(
const
Point
& pt,
const
Padding
& m)
65
{
66
Pen
=
Point
(pt.
X
+ m.
Left
, pt.
Y
+
Font
.
GetAscender
() + m.
Top
);
67
}
68
69
70
void
71
SetCurrentTextLineNOf
(TextState& ts,
u16
n)
72
{
73
ts.Pen.Y =
GetTextLineBaseOf
(ts) +
GetTextLineHeightExOf
(ts) * n;
74
}
75
76
void
77
MovePen
(TextState& ts,
ucs4_t
c)
78
{
79
CharBitmap sbit(ts.Font.GetGlyph(c));
80
81
ts.Pen.X += ts.Font.GetAdvance(c, sbit);
82
}
83
84
YSL_END_NAMESPACE
(Drawing)
85
86
YSL_BEGIN_NAMESPACE
(Text)
87
88
89
YSL_END_NAMESPACE
(Text)
90
91
YSL_END
92
YFramework
source
YSLib
Service
TextBase.cpp
生成于 2013年 四月 24日 星期三 18:41:28 , 为 YSTest使用
1.8.2