| // Copyright 2013 The Flutter 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:ui'; |
| |
| import 'channel_util.dart'; |
| import 'scenario.dart'; |
| |
| /// A scenario that sends back messages when touches are received. |
| class TouchesScenario extends Scenario { |
| /// Constructor for `TouchesScenario`. |
| TouchesScenario(PlatformDispatcher dispatcher) : super(dispatcher); |
| |
| @override |
| void onBeginFrame(Duration duration) { |
| // It is necessary to render frames for touch events to work properly on iOS |
| final Scene scene = SceneBuilder().build(); |
| window.render(scene); |
| scene.dispose(); |
| } |
| |
| @override |
| void onPointerDataPacket(PointerDataPacket packet) { |
| for (final PointerData datum in packet.data) { |
| sendJsonMessage( |
| dispatcher: dispatcher, |
| channel: 'display_data', |
| json: <String, dynamic>{ |
| 'data': datum.change.toString() + ':' + datum.buttons.toString(), |
| }, |
| ); |
| } |
| } |
| } |