Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
sxychenjing
engine
提交
e485f4f7
E
engine
项目概览
sxychenjing
/
engine
与 Fork 源项目一致
从无法访问的项目Fork
通知
3
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,发现更多精彩内容 >>
提交
e485f4f7
编写于
8月 11, 2015
作者:
H
Hans Muller
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #534 from HansMuller/overlay-geometry
Add IgnorePointer, Scrollable listener support
上级
fd6f97b1
48da2ee5
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
433 addition
and
35 deletion
+433
-35
examples/widgets/overlay_geometry.dart
examples/widgets/overlay_geometry.dart
+189
-0
sky/packages/sky/lib/rendering/box.dart
sky/packages/sky/lib/rendering/box.dart
+7
-0
sky/packages/sky/lib/widgets/basic.dart
sky/packages/sky/lib/widgets/basic.dart
+10
-0
sky/packages/sky/lib/widgets/scrollable.dart
sky/packages/sky/lib/widgets/scrollable.dart
+26
-35
sky/tests/examples/overlay_geometry-expected.txt
sky/tests/examples/overlay_geometry-expected.txt
+183
-0
sky/tests/examples/overlay_geometry.dart
sky/tests/examples/overlay_geometry.dart
+18
-0
未找到文件。
examples/widgets/overlay_geometry.dart
0 → 100644
浏览文件 @
e485f4f7
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import
'dart:sky'
as
sky
;
import
'package:sky/base/lerp.dart'
;
import
'package:sky/painting/box_painter.dart'
;
import
'package:sky/painting/text_style.dart'
;
import
'package:sky/rendering/box.dart'
;
import
'package:sky/theme/colors.dart'
;
import
'package:sky/widgets/basic.dart'
;
import
'package:sky/widgets/block_viewport.dart'
;
import
'package:sky/widgets/card.dart'
;
import
'package:sky/widgets/icon.dart'
;
import
'package:sky/widgets/scrollable.dart'
;
import
'package:sky/widgets/scaffold.dart'
;
import
'package:sky/widgets/theme.dart'
;
import
'package:sky/widgets/tool_bar.dart'
;
import
'package:sky/widgets/framework.dart'
;
import
'package:sky/widgets/task_description.dart'
;
class
CardModel
{
CardModel
(
this
.
value
,
this
.
height
,
this
.
color
);
int
value
;
double
height
;
Color
color
;
String
get
label
=>
"Card
$value
"
;
Key
get
key
=>
new
Key
.
fromObjectIdentity
(
this
);
}
enum
MarkerType
{
topLeft
,
bottomRight
,
touch
}
class
Marker
extends
Component
{
Marker
({
this
.
type
:
MarkerType
.
touch
,
this
.
position
,
this
.
size
:
40.0
,
Key
key
})
:
super
(
key:
key
);
final
Point
position
;
final
double
size
;
final
MarkerType
type
;
void
paintMarker
(
sky
.
Canvas
canvas
,
_
)
{
Paint
paint
=
new
Paint
()..
color
=
const
Color
(
0x8000FF00
);
paint
.
setStyle
(
sky
.
PaintingStyle
.
fill
);
double
r
=
size
/
2.0
;
canvas
.
drawCircle
(
new
Point
(
r
,
r
),
r
,
paint
);
paint
.
color
=
const
Color
(
0xFFFFFFFF
);
paint
.
setStyle
(
sky
.
PaintingStyle
.
stroke
);
paint
.
strokeWidth
=
1.0
;
if
(
type
==
MarkerType
.
topLeft
)
{
canvas
.
drawLine
(
new
Point
(
r
,
r
),
new
Point
(
r
+
r
-
1.0
,
r
),
paint
);
canvas
.
drawLine
(
new
Point
(
r
,
r
),
new
Point
(
r
,
r
+
r
-
1.0
),
paint
);
}
if
(
type
==
MarkerType
.
bottomRight
)
{
canvas
.
drawLine
(
new
Point
(
r
,
r
),
new
Point
(
1.0
,
r
),
paint
);
canvas
.
drawLine
(
new
Point
(
r
,
r
),
new
Point
(
r
,
1.0
),
paint
);
}
}
Widget
build
()
{
return
new
Positioned
(
left:
position
.
x
-
size
/
2.0
,
top:
position
.
y
-
size
/
2.0
,
child:
new
IgnorePointer
(
child:
new
Container
(
width:
size
,
height:
size
,
child:
new
CustomPaint
(
callback:
paintMarker
)
)
)
);
}
}
class
OverlayGeometryApp
extends
App
{
static
const
TextStyle
cardLabelStyle
=
const
TextStyle
(
color:
white
,
fontSize:
18.0
,
fontWeight:
bold
);
List
<
CardModel
>
cardModels
;
BlockViewportLayoutState
layoutState
=
new
BlockViewportLayoutState
();
Map
<
MarkerType
,
Point
>
markers
=
new
Map
<
MarkerType
,
Point
>();
double
markersScrollOffset
;
ScrollListener
scrollListener
;
void
initState
()
{
List
<
double
>
cardHeights
=
<
double
>[
48.0
,
63.0
,
82.0
,
146.0
,
60.0
,
55.0
,
84.0
,
96.0
,
50.0
,
48.0
,
63.0
,
82.0
,
146.0
,
60.0
,
55.0
,
84.0
,
96.0
,
50.0
,
48.0
,
63.0
,
82.0
,
146.0
,
60.0
,
55.0
,
84.0
,
96.0
,
50.0
];
cardModels
=
new
List
.
generate
(
cardHeights
.
length
,
(
i
)
{
Color
color
=
lerpColor
(
Red
[
300
],
Blue
[
900
],
i
/
cardHeights
.
length
);
return
new
CardModel
(
i
,
cardHeights
[
i
],
color
);
});
super
.
initState
();
}
void
handleScroll
(
Scrollable
scrollable
)
{
setState
(()
{
double
dy
=
markersScrollOffset
-
scrollable
.
scrollOffset
;
markersScrollOffset
=
scrollable
.
scrollOffset
;
for
(
MarkerType
type
in
markers
.
keys
)
{
Point
oldPosition
=
markers
[
type
];
markers
[
type
]
=
new
Point
(
oldPosition
.
x
,
oldPosition
.
y
+
dy
);
}
});
}
EventDisposition
handlePointerDown
(
Widget
target
,
sky
.
PointerEvent
event
)
{
setState
(()
{
markers
[
MarkerType
.
touch
]
=
new
Point
(
event
.
x
,
event
.
y
);
markers
[
MarkerType
.
topLeft
]
=
target
.
localToGlobal
(
new
Point
(
0.0
,
0.0
));
Size
size
=
(
target
.
root
as
RenderBox
).
size
;
markers
[
MarkerType
.
bottomRight
]
=
target
.
localToGlobal
(
new
Point
(
size
.
width
,
size
.
height
));
Scrollable
scrollable
=
findScrollableAncestor
(
target:
target
);
markersScrollOffset
=
scrollable
.
scrollOffset
;
if
(
scrollListener
==
null
)
{
scrollListener
=
()
{
handleScroll
(
scrollable
);
};
scrollable
.
addListener
(
scrollListener
);
}
});
return
EventDisposition
.
processed
;
}
Widget
builder
(
int
index
)
{
if
(
index
>=
cardModels
.
length
)
return
null
;
CardModel
cardModel
=
cardModels
[
index
];
Widget
card
=
new
Card
(
color:
cardModel
.
color
,
child:
new
Container
(
height:
cardModel
.
height
,
padding:
const
EdgeDims
.
all
(
8.0
),
child:
new
Center
(
child:
new
Text
(
cardModel
.
label
,
style:
cardLabelStyle
))
)
);
return
new
Listener
(
key:
cardModel
.
key
,
onPointerDown:
(
e
)
{
return
handlePointerDown
(
card
,
e
);
},
child:
card
);
}
Widget
build
()
{
Scrollable
scrollable
=
new
VariableHeightScrollable
(
builder:
builder
,
token:
cardModels
.
length
,
layoutState:
layoutState
);
Widget
cardCollection
=
new
Container
(
padding:
const
EdgeDims
.
symmetric
(
vertical:
12.0
,
horizontal:
8.0
),
decoration:
new
BoxDecoration
(
backgroundColor:
Theme
.
of
(
this
).
primarySwatch
[
50
]),
child:
scrollable
);
List
<
Widget
>
layers
=
<
Widget
>[
new
Scaffold
(
toolbar:
new
ToolBar
(
center:
new
Text
(
'Tap a Card'
)),
body:
cardCollection
)
];
for
(
MarkerType
type
in
markers
.
keys
)
layers
.
add
(
new
Marker
(
type:
type
,
position:
markers
[
type
]));
return
new
IconTheme
(
data:
const
IconThemeData
(
color:
IconThemeColor
.
white
),
child:
new
Theme
(
data:
new
ThemeData
(
brightness:
ThemeBrightness
.
light
,
primarySwatch:
Blue
,
accentColor:
RedAccent
[
200
]
),
child:
new
TaskDescription
(
label:
'Cards'
,
child:
new
Stack
(
layers
))
)
);
}
}
void
main
(
)
{
runApp
(
new
OverlayGeometryApp
());
}
sky/packages/sky/lib/rendering/box.dart
浏览文件 @
e485f4f7
...
...
@@ -1732,6 +1732,13 @@ class RenderView extends RenderObject with RenderObjectWithChildMixin<RenderBox>
Rect
get
paintBounds
=>
Point
.
origin
&
size
;
}
class
RenderIgnorePointer
extends
RenderProxyBox
{
RenderIgnorePointer
({
RenderBox
child
})
:
super
(
child
);
bool
hitTest
(
HitTestResult
result
,
{
Point
position
})
{
return
false
;
}
}
// HELPER METHODS FOR RENDERBOX CONTAINERS
abstract
class
RenderBoxContainerDefaultsMixin
<
ChildType
extends
RenderBox
,
ParentDataType
extends
ContainerParentDataMixin
<
ChildType
>>
implements
ContainerRenderObjectMixin
<
ChildType
,
ParentDataType
>
{
...
...
sky/packages/sky/lib/widgets/basic.dart
浏览文件 @
e485f4f7
...
...
@@ -638,3 +638,13 @@ class WidgetToRenderBoxAdapter extends LeafRenderObjectWrapper {
super
.
remove
();
}
}
// EVENT HANDLING
class
IgnorePointer
extends
OneChildRenderObjectWrapper
{
IgnorePointer
({
Key
key
,
Widget
child
})
:
super
(
key:
key
,
child:
child
);
RenderIgnorePointer
createNode
()
=>
new
RenderIgnorePointer
();
RenderIgnorePointer
get
root
=>
super
.
root
;
}
sky/packages/sky/lib/widgets/scrollable.dart
浏览文件 @
e485f4f7
...
...
@@ -27,9 +27,7 @@ double _velocityForFlingGesture(double eventVelocity) {
_kMillisecondsPerSecond
;
}
abstract
class
ScrollClient
{
bool
ancestorScrolled
(
Scrollable
ancestor
);
}
typedef
void
ScrollListener
(
);
/// A base class for scrollable widgets that reacts to user input and generates
/// a scrollOffset.
...
...
@@ -93,24 +91,6 @@ abstract class Scrollable extends StatefulComponent {
);
}
List
<
ScrollClient
>
_registeredScrollClients
;
void
registerScrollClient
(
ScrollClient
notifiee
)
{
if
(
_registeredScrollClients
==
null
)
_registeredScrollClients
=
new
List
<
ScrollClient
>();
setState
(()
{
_registeredScrollClients
.
add
(
notifiee
);
});
}
void
unregisterScrollClient
(
ScrollClient
notifiee
)
{
if
(
_registeredScrollClients
==
null
)
return
;
setState
(()
{
_registeredScrollClients
.
remove
(
notifiee
);
});
}
void
_startToOffsetAnimation
(
double
newScrollOffset
,
Duration
duration
)
{
_stopToEndAnimation
();
_stopToOffsetAnimation
();
...
...
@@ -159,19 +139,9 @@ abstract class Scrollable extends StatefulComponent {
_startToOffsetAnimation
(
newScrollOffset
,
duration
);
}
if
(
_registeredScrollClients
!=
null
)
{
var
newList
=
null
;
_registeredScrollClients
.
forEach
((
target
)
{
if
(
target
.
ancestorScrolled
(
this
))
{
if
(
newList
==
null
)
newList
=
new
List
<
ScrollClient
>();
newList
.
add
(
target
);
}
});
setState
(()
{
_registeredScrollClients
=
newList
;
});
}
if
(
_listeners
.
length
>
0
)
_notifyListeners
();
return
true
;
}
...
...
@@ -222,11 +192,32 @@ abstract class Scrollable extends StatefulComponent {
return
EventDisposition
.
processed
;
}
EventDisposition
_handleWheel
(
sky
.
WheelEvent
event
)
{
scrollBy
(-
event
.
offsetY
);
return
EventDisposition
.
processed
;
}
final
List
<
ScrollListener
>
_listeners
=
new
List
<
ScrollListener
>();
void
addListener
(
ScrollListener
listener
)
{
_listeners
.
add
(
listener
);
}
void
removeListener
(
ScrollListener
listener
)
{
_listeners
.
remove
(
listener
);
}
void
_notifyListeners
()
{
List
<
ScrollListener
>
localListeners
=
new
List
<
ScrollListener
>.
from
(
_listeners
);
for
(
ScrollListener
listener
in
localListeners
)
listener
();
}
}
Scrollable
findScrollableAncestor
(
{
Widget
target
})
{
Widget
ancestor
=
target
;
while
(
ancestor
!=
null
&&
ancestor
is
!
Scrollable
)
ancestor
=
ancestor
.
parent
;
return
ancestor
;
}
/// A simple scrollable widget that has a single child. Use this component if
...
...
sky/tests/examples/overlay_geometry-expected.txt
0 → 100644
浏览文件 @
e485f4f7
TestRenderView enabled
PAINT FOR FRAME #1 ----------------------------------------------
1 | TestPaintingCanvas() constructor: 800.0 x 600.0
------------------------------------------------------------------------
PAINT FOR FRAME #2 ----------------------------------------------
2 | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | paintChild RenderStack at Point(0.0, 0.0)
2 | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | paintChild RenderScaffold at Point(0.0, 0.0)
2 | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | paintChild RenderDecoratedBox at Point(0.0, 56.0)
2 | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | drawRect(Rect.fromLTRB(0.0, 56.0, 800.0, 600.0), Paint(color:Color(0xffe3f2fd)))
2 | | | | paintChild RenderPadding at Point(0.0, 56.0)
2 | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | paintChild RenderSizeObserver at Point(8.0, 68.0)
2 | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | paintChild RenderBlockViewport at Point(8.0, 68.0)
2 | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | save
2 | | | | | | | clipRect(Rect.fromLTRB(8.0, 68.0, 792.0, 588.0))
2 | | | | | | | paintChild RenderPadding at Point(8.0, 68.0)
2 | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | paintChild RenderDecoratedBox at Point(12.0, 72.0)
2 | | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | | drawRRect(Instance of 'RRect', Paint(color:Color(0xffe57373), drawLooper:true))
2 | | | | | | | | | paintChild RenderClipRRect at Point(12.0, 72.0)
2 | | | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | | | saveLayer(Rect.fromLTRB(12.0, 72.0, 788.0, 120.0), Paint(color:Color(0xff000000)))
2 | | | | | | | | | | clipRRect()
2 | | | | | | | | | | paintChild RenderConstrainedBox at Point(12.0, 72.0)
2 | | | | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | | | | paintChild RenderPadding at Point(12.0, 72.0)
2 | | | | | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | | | | | paintChild RenderPositionedBox at Point(20.0, 80.0)
2 | | | | | | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | | | | | | paintChild RenderParagraph at Point(367.0, 83.5)
2 | | | | | | | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | | | | | | | translate(367.0, 83.5)
2 | | | | | | | | | | | | | | translate(-367.0, -83.5)
2 | | | | | | | | | | restore
2 | | | | | | | paintChild RenderPadding at Point(8.0, 124.0)
2 | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | paintChild RenderDecoratedBox at Point(12.0, 128.0)
2 | | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | | drawRRect(Instance of 'RRect', Paint(color:Color(0xffdd7174), drawLooper:true))
2 | | | | | | | | | paintChild RenderClipRRect at Point(12.0, 128.0)
2 | | | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | | | saveLayer(Rect.fromLTRB(12.0, 128.0, 788.0, 191.0), Paint(color:Color(0xff000000)))
2 | | | | | | | | | | clipRRect()
2 | | | | | | | | | | paintChild RenderConstrainedBox at Point(12.0, 128.0)
2 | | | | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | | | | paintChild RenderPadding at Point(12.0, 128.0)
2 | | | | | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | | | | | paintChild RenderPositionedBox at Point(20.0, 136.0)
2 | | | | | | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | | | | | | paintChild RenderParagraph at Point(367.0, 147.0)
2 | | | | | | | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | | | | | | | translate(367.0, 147.0)
2 | | | | | | | | | | | | | | translate(-367.0, -147.0)
2 | | | | | | | | | | restore
2 | | | | | | | paintChild RenderPadding at Point(8.0, 195.0)
2 | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | paintChild RenderDecoratedBox at Point(12.0, 199.0)
2 | | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | | drawRRect(Instance of 'RRect', Paint(color:Color(0xffd56f76), drawLooper:true))
2 | | | | | | | | | paintChild RenderClipRRect at Point(12.0, 199.0)
2 | | | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | | | saveLayer(Rect.fromLTRB(12.0, 199.0, 788.0, 281.0), Paint(color:Color(0xff000000)))
2 | | | | | | | | | | clipRRect()
2 | | | | | | | | | | paintChild RenderConstrainedBox at Point(12.0, 199.0)
2 | | | | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | | | | paintChild RenderPadding at Point(12.0, 199.0)
2 | | | | | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | | | | | paintChild RenderPositionedBox at Point(20.0, 207.0)
2 | | | | | | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | | | | | | paintChild RenderParagraph at Point(367.0, 227.5)
2 | | | | | | | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | | | | | | | translate(367.0, 227.5)
2 | | | | | | | | | | | | | | translate(-367.0, -227.5)
2 | | | | | | | | | | restore
2 | | | | | | | paintChild RenderPadding at Point(8.0, 285.0)
2 | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | paintChild RenderDecoratedBox at Point(12.0, 289.0)
2 | | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | | drawRRect(Instance of 'RRect', Paint(color:Color(0xffcd6e78), drawLooper:true))
2 | | | | | | | | | paintChild RenderClipRRect at Point(12.0, 289.0)
2 | | | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | | | saveLayer(Rect.fromLTRB(12.0, 289.0, 788.0, 435.0), Paint(color:Color(0xff000000)))
2 | | | | | | | | | | clipRRect()
2 | | | | | | | | | | paintChild RenderConstrainedBox at Point(12.0, 289.0)
2 | | | | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | | | | paintChild RenderPadding at Point(12.0, 289.0)
2 | | | | | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | | | | | paintChild RenderPositionedBox at Point(20.0, 297.0)
2 | | | | | | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | | | | | | paintChild RenderParagraph at Point(367.0, 349.5)
2 | | | | | | | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | | | | | | | translate(367.0, 349.5)
2 | | | | | | | | | | | | | | translate(-367.0, -349.5)
2 | | | | | | | | | | restore
2 | | | | | | | paintChild RenderPadding at Point(8.0, 439.0)
2 | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | paintChild RenderDecoratedBox at Point(12.0, 443.0)
2 | | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | | drawRRect(Instance of 'RRect', Paint(color:Color(0xffc56c79), drawLooper:true))
2 | | | | | | | | | paintChild RenderClipRRect at Point(12.0, 443.0)
2 | | | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | | | saveLayer(Rect.fromLTRB(12.0, 443.0, 788.0, 503.0), Paint(color:Color(0xff000000)))
2 | | | | | | | | | | clipRRect()
2 | | | | | | | | | | paintChild RenderConstrainedBox at Point(12.0, 443.0)
2 | | | | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | | | | paintChild RenderPadding at Point(12.0, 443.0)
2 | | | | | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | | | | | paintChild RenderPositionedBox at Point(20.0, 451.0)
2 | | | | | | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | | | | | | paintChild RenderParagraph at Point(367.0, 460.5)
2 | | | | | | | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | | | | | | | translate(367.0, 460.5)
2 | | | | | | | | | | | | | | translate(-367.0, -460.5)
2 | | | | | | | | | | restore
2 | | | | | | | paintChild RenderPadding at Point(8.0, 507.0)
2 | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | paintChild RenderDecoratedBox at Point(12.0, 511.0)
2 | | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | | drawRRect(Instance of 'RRect', Paint(color:Color(0xffbd6a7b), drawLooper:true))
2 | | | | | | | | | paintChild RenderClipRRect at Point(12.0, 511.0)
2 | | | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | | | saveLayer(Rect.fromLTRB(12.0, 511.0, 788.0, 566.0), Paint(color:Color(0xff000000)))
2 | | | | | | | | | | clipRRect()
2 | | | | | | | | | | paintChild RenderConstrainedBox at Point(12.0, 511.0)
2 | | | | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | | | | paintChild RenderPadding at Point(12.0, 511.0)
2 | | | | | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | | | | | paintChild RenderPositionedBox at Point(20.0, 519.0)
2 | | | | | | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | | | | | | paintChild RenderParagraph at Point(367.0, 526.0)
2 | | | | | | | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | | | | | | | translate(367.0, 526.0)
2 | | | | | | | | | | | | | | translate(-367.0, -526.0)
2 | | | | | | | | | | restore
2 | | | | | | | paintChild RenderPadding at Point(8.0, 570.0)
2 | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | paintChild RenderDecoratedBox at Point(12.0, 574.0)
2 | | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | | drawRRect(Instance of 'RRect', Paint(color:Color(0xffb5697d), drawLooper:true))
2 | | | | | | | | | paintChild RenderClipRRect at Point(12.0, 574.0)
2 | | | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | | | saveLayer(Rect.fromLTRB(12.0, 574.0, 788.0, 658.0), Paint(color:Color(0xff000000)))
2 | | | | | | | | | | clipRRect()
2 | | | | | | | | | | paintChild RenderConstrainedBox at Point(12.0, 574.0)
2 | | | | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | | | | paintChild RenderPadding at Point(12.0, 574.0)
2 | | | | | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | | | | | paintChild RenderPositionedBox at Point(20.0, 582.0)
2 | | | | | | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | | | | | | paintChild RenderParagraph at Point(367.0, 603.5)
2 | | | | | | | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | | | | | | | translate(367.0, 603.5)
2 | | | | | | | | | | | | | | translate(-367.0, -603.5)
2 | | | | | | | | | | restore
2 | | | | | | | restore
2 | | | paintChild RenderDecoratedBox at Point(0.0, 0.0)
2 | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | drawRect(Rect.fromLTRB(0.0, 0.0, 800.0, 56.0), Paint(color:Color(0xff2196f3), drawLooper:true))
2 | | | | paintChild RenderPadding at Point(0.0, 0.0)
2 | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | paintChild RenderFlex at Point(8.0, 0.0)
2 | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | paintChild RenderConstrainedBox at Point(8.0, 0.0)
2 | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | paintChild RenderFlex at Point(8.0, 0.0)
2 | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | paintChild RenderPadding at Point(8.0, 14.0)
2 | | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | | paintChild RenderParagraph at Point(32.0, 14.0)
2 | | | | | | | | | | TestPaintingCanvas() constructor: 800.0 x 600.0
2 | | | | | | | | | | translate(32.0, 14.0)
2 | | | | | | | | | | translate(-32.0, -14.0)
------------------------------------------------------------------------
PAINTED 2 FRAMES
sky/tests/examples/overlay_geometry.dart
0 → 100644
浏览文件 @
e485f4f7
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import
'dart:async'
;
import
'package:sky/widgets/framework.dart'
;
import
'../../../examples/widgets/overlay_geometry.dart'
;
import
'../resources/display_list.dart'
;
main
()
async
{
TestRenderView
testRenderView
=
new
TestRenderView
();
OverlayGeometryApp
app
=
new
OverlayGeometryApp
();
runApp
(
app
,
renderViewOverride:
testRenderView
);
await
testRenderView
.
checkFrame
();
testRenderView
.
endTest
();
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录