Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
weixin_43355755
engine
提交
e5a42b6b
E
engine
项目概览
weixin_43355755
/
engine
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
E
engine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
e5a42b6b
编写于
12月 03, 2015
作者:
A
Adam Barth
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add support for letterSpacing
上级
db7f7dac
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
24 addition
and
10 deletion
+24
-10
sky/engine/core/dart/text.dart
sky/engine/core/dart/text.dart
+14
-5
sky/engine/core/text/ParagraphBuilder.cpp
sky/engine/core/text/ParagraphBuilder.cpp
+8
-3
sky/engine/core/text/ParagraphBuilder.h
sky/engine/core/text/ParagraphBuilder.h
+1
-1
sky/engine/core/text/ParagraphBuilder.idl
sky/engine/core/text/ParagraphBuilder.idl
+1
-1
未找到文件。
sky/engine/core/dart/text.dart
浏览文件 @
e5a42b6b
...
...
@@ -126,7 +126,8 @@ Int32List _encodeTextStyle(Color color,
FontWeight
fontWeight
,
FontStyle
fontStyle
,
String
fontFamily
,
double
fontSize
)
{
double
fontSize
,
double
letterSpacing
)
{
Int32List
result
=
new
Int32List
(
7
);
if
(
color
!=
null
)
{
result
[
0
]
|=
1
<<
1
;
...
...
@@ -164,6 +165,10 @@ Int32List _encodeTextStyle(Color color,
result
[
0
]
|=
1
<<
8
;
// Passed separately to native.
}
if
(
letterSpacing
!=
null
)
{
result
[
0
]
|=
1
<<
9
;
// Passed separately to native.
}
return
result
;
}
...
...
@@ -176,7 +181,8 @@ class TextStyle {
FontWeight
fontWeight
,
FontStyle
fontStyle
,
String
fontFamily
,
double
fontSize
double
fontSize
,
double
letterSpacing
})
:
_encoded
=
_encodeTextStyle
(
color
,
decoration
,
decorationColor
,
...
...
@@ -184,13 +190,16 @@ class TextStyle {
fontWeight
,
fontStyle
,
fontFamily
,
fontSize
),
fontSize
,
letterSpacing
),
_fontFamily
=
fontFamily
??
''
,
_fontSize
=
fontSize
;
_fontSize
=
fontSize
,
_letterSpacing
=
letterSpacing
;
final
Int32List
_encoded
;
final
String
_fontFamily
;
final
double
_fontSize
;
final
double
_letterSpacing
;
}
// This encoding must match the C++ version ParagraphBuilder::build.
...
...
@@ -238,7 +247,7 @@ class ParagraphStyle {
class
ParagraphBuilder
extends
_ParagraphBuilder
{
void
pushStyle
(
TextStyle
style
)
{
_pushStyle
(
style
.
_encoded
,
style
.
_fontFamily
,
style
.
_fontSize
);
_pushStyle
(
style
.
_encoded
,
style
.
_fontFamily
,
style
.
_fontSize
,
style
.
_letterSpacing
);
}
void
pop
()
=>
_pop
();
...
...
sky/engine/core/text/ParagraphBuilder.cpp
浏览文件 @
e5a42b6b
...
...
@@ -43,6 +43,7 @@ const int kFontWeightIndex = 5;
const
int
kFontStyleIndex
=
6
;
const
int
kFontFamilyIndex
=
7
;
const
int
kFontSizeIndex
=
8
;
const
int
kLetterSpacingIndex
=
9
;
const
int
kColorMask
=
1
<<
kColorIndex
;
const
int
kTextDecorationMask
=
1
<<
kTextDecorationIndex
;
...
...
@@ -52,6 +53,7 @@ const int kFontWeightMask = 1 << kFontWeightIndex;
const
int
kFontStyleMask
=
1
<<
kFontStyleIndex
;
const
int
kFontFamilyMask
=
1
<<
kFontFamilyIndex
;
const
int
kFontSizeMask
=
1
<<
kFontSizeIndex
;
const
int
kLetterSpacingMask
=
1
<<
kLetterSpacingIndex
;
// ParagraphStyle
...
...
@@ -78,7 +80,7 @@ ParagraphBuilder::~ParagraphBuilder()
{
}
void
ParagraphBuilder
::
pushStyle
(
Int32List
&
encoded
,
const
String
&
fontFamily
,
double
fontSize
)
void
ParagraphBuilder
::
pushStyle
(
Int32List
&
encoded
,
const
String
&
fontFamily
,
double
fontSize
,
double
letterSpacing
)
{
DCHECK
(
encoded
.
num_elements
()
==
7
);
RefPtr
<
RenderStyle
>
style
=
RenderStyle
::
create
();
...
...
@@ -100,7 +102,7 @@ void ParagraphBuilder::pushStyle(Int32List& encoded, const String& fontFamily, d
if
(
mask
&
kTextDecorationStyleMask
)
style
->
setTextDecorationStyle
(
static_cast
<
TextDecorationStyle
>
(
encoded
[
kTextDecorationStyleIndex
]));
if
(
mask
&
(
kFontWeightMask
|
kFontStyleMask
|
kFontFamilyMask
|
kFontSizeMask
))
{
if
(
mask
&
(
kFontWeightMask
|
kFontStyleMask
|
kFontFamilyMask
|
kFontSizeMask
|
kLetterSpacingMask
))
{
FontDescription
fontDescription
=
style
->
fontDescription
();
if
(
mask
&
kFontWeightMask
)
...
...
@@ -115,12 +117,15 @@ void ParagraphBuilder::pushStyle(Int32List& encoded, const String& fontFamily, d
fontDescription
.
setFamily
(
family
);
}
if
(
mask
&
kFontSizeMask
)
{
if
(
mask
&
kFontSizeMask
)
{
fontDescription
.
setSpecifiedSize
(
fontSize
);
fontDescription
.
setIsAbsoluteSize
(
true
);
fontDescription
.
setComputedSize
(
FontSize
::
getComputedSizeFromSpecifiedSize
(
true
,
fontSize
));
}
if
(
mask
&
kLetterSpacingMask
)
fontDescription
.
setLetterSpacing
(
letterSpacing
);
style
->
setFontDescription
(
fontDescription
);
style
->
font
().
update
(
m_fontSelector
);
}
...
...
sky/engine/core/text/ParagraphBuilder.h
浏览文件 @
e5a42b6b
...
...
@@ -24,7 +24,7 @@ public:
~
ParagraphBuilder
()
override
;
void
pushStyle
(
Int32List
&
encoded
,
const
String
&
fontFamily
,
double
fontSize
);
void
pushStyle
(
Int32List
&
encoded
,
const
String
&
fontFamily
,
double
fontSize
,
double
letterSpacing
);
void
pop
();
void
addText
(
const
String
&
text
);
...
...
sky/engine/core/text/ParagraphBuilder.idl
浏览文件 @
e5a42b6b
...
...
@@ -6,7 +6,7 @@
Constructor
(),
PrivateDart
,
]
interface
ParagraphBuilder
{
void
pushStyle
(
Int32List
encoded
,
DOMString
fontFamily
,
double
fontSize
)
;
void
pushStyle
(
Int32List
encoded
,
DOMString
fontFamily
,
double
fontSize
,
double
letterSpacing
)
;
void
pop
()
;
void
addText
(
DOMString
text
)
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录