| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 import 'dart:sky' as sky; | 5 import 'dart:sky' as sky; |
| 6 | 6 |
| 7 import '../rendering/box.dart'; | 7 import '../rendering/box.dart'; |
| 8 import '../rendering/object.dart'; | 8 import '../rendering/object.dart'; |
| 9 import 'scheduler.dart' as scheduler; | 9 import 'scheduler.dart' as scheduler; |
| 10 | 10 |
| 11 class PointerState { | 11 class PointerState { |
| 12 HitTestResult result; | 12 HitTestResult result; |
| 13 Point lastPosition; | 13 Point lastPosition; |
| 14 | 14 |
| 15 PointerState({ this.result, this.lastPosition }); | 15 PointerState({ this.result, this.lastPosition }); |
| 16 } | 16 } |
| 17 | 17 |
| 18 typedef void EventListener(sky.Event event); |
| 19 |
| 18 class AppView { | 20 class AppView { |
| 19 | 21 |
| 20 AppView({ RenderBox root: null, RenderView renderViewOverride }) { | 22 AppView({ RenderBox root: null, RenderView renderViewOverride }) { |
| 21 assert(_app == null); | 23 assert(_app == null); |
| 22 _app = this; | 24 _app = this; |
| 23 | 25 |
| 24 sky.view.setEventCallback(_handleEvent); | 26 sky.view.setEventCallback(_handleEvent); |
| 25 sky.view.setMetricsChangedCallback(_handleMetricsChanged); | 27 sky.view.setMetricsChangedCallback(_handleMetricsChanged); |
| 26 scheduler.init(); | 28 scheduler.init(); |
| 27 scheduler.addPersistentFrameCallback(_beginFrame); | 29 scheduler.addPersistentFrameCallback(_beginFrame); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 44 RenderView _renderView; | 46 RenderView _renderView; |
| 45 RenderView get renderView => _renderView; | 47 RenderView get renderView => _renderView; |
| 46 | 48 |
| 47 ViewConstraints get _viewConstraints => | 49 ViewConstraints get _viewConstraints => |
| 48 new ViewConstraints(width: sky.view.width, height: sky.view.height); | 50 new ViewConstraints(width: sky.view.width, height: sky.view.height); |
| 49 | 51 |
| 50 Map<int, PointerState> _stateForPointer = new Map<int, PointerState>(); | 52 Map<int, PointerState> _stateForPointer = new Map<int, PointerState>(); |
| 51 | 53 |
| 52 Function onFrame; | 54 Function onFrame; |
| 53 | 55 |
| 54 List<sky.EventListener> eventListeners = new List<sky.EventListener>(); | 56 final List<EventListener> _eventListeners = new List<EventListener>(); |
| 57 void addEventListener(EventListener e) => _eventListeners.add(e); |
| 58 void removeEventListener(EventListener e) => _eventListeners.remove(e); |
| 55 | 59 |
| 56 RenderBox get root => _renderView.child; | 60 RenderBox get root => _renderView.child; |
| 57 void set root(RenderBox value) { | 61 void set root(RenderBox value) { |
| 58 _renderView.child = value; | 62 _renderView.child = value; |
| 59 } | 63 } |
| 60 void _beginFrame(double timeStamp) { | 64 void _beginFrame(double timeStamp) { |
| 61 if (onFrame != null) | 65 if (onFrame != null) |
| 62 onFrame(); | 66 onFrame(); |
| 63 RenderObject.flushLayout(); | 67 RenderObject.flushLayout(); |
| 64 _renderView.paintFrame(); | 68 _renderView.paintFrame(); |
| 65 } | 69 } |
| 66 | 70 |
| 67 void _handleEvent(sky.Event event) { | 71 void _handleEvent(sky.Event event) { |
| 68 if (event is sky.PointerEvent) { | 72 if (event is sky.PointerEvent) { |
| 69 _handlePointerEvent(event); | 73 _handlePointerEvent(event); |
| 70 } else if (event is sky.GestureEvent) { | 74 } else if (event is sky.GestureEvent) { |
| 71 HitTestResult result = new HitTestResult(); | 75 HitTestResult result = new HitTestResult(); |
| 72 _renderView.hitTest(result, position: new Point(event.x, event.y)); | 76 _renderView.hitTest(result, position: new Point(event.x, event.y)); |
| 73 dispatchEvent(event, result); | 77 dispatchEvent(event, result); |
| 74 } else { | 78 } else { |
| 75 for (sky.EventListener listener in eventListeners) { | 79 for (EventListener e in _eventListeners) { |
| 76 listener(event); | 80 e(event); |
| 77 } | 81 } |
| 78 } | 82 } |
| 79 } | 83 } |
| 80 | 84 |
| 81 void _handleMetricsChanged() { | 85 void _handleMetricsChanged() { |
| 82 _renderView.rootConstraints = _viewConstraints; | 86 _renderView.rootConstraints = _viewConstraints; |
| 83 } | 87 } |
| 84 | 88 |
| 85 PointerState _createStateForPointer(sky.PointerEvent event, Point position) { | 89 PointerState _createStateForPointer(sky.PointerEvent event, Point position) { |
| 86 HitTestResult result = new HitTestResult(); | 90 HitTestResult result = new HitTestResult(); |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 123 entry.target.handleEvent(event, entry); | 127 entry.target.handleEvent(event, entry); |
| 124 } | 128 } |
| 125 | 129 |
| 126 String toString() => 'Render Tree:\n${_renderView}'; | 130 String toString() => 'Render Tree:\n${_renderView}'; |
| 127 | 131 |
| 128 void debugDumpRenderTree() { | 132 void debugDumpRenderTree() { |
| 129 toString().split('\n').forEach(print); | 133 toString().split('\n').forEach(print); |
| 130 } | 134 } |
| 131 | 135 |
| 132 } | 136 } |
| OLD | NEW |