1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- // 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.
-
- #ifndef FLUTTER_FLUTTERPLATFORMVIEWS_H_
- #define FLUTTER_FLUTTERPLATFORMVIEWS_H_
-
- #import <UIKit/UIKit.h>
-
- #import "FlutterCodecs.h"
- #import "FlutterMacros.h"
-
- NS_ASSUME_NONNULL_BEGIN
-
- /**
- * Wraps a `UIView` for embedding in the Flutter hierarchy
- */
- @protocol FlutterPlatformView <NSObject>
- /**
- * Returns a reference to the `UIView` that is wrapped by this `FlutterPlatformView`.
- */
- - (UIView*)view;
- @end
-
- FLUTTER_EXPORT
- @protocol FlutterPlatformViewFactory <NSObject>
- /**
- * Create a `FlutterPlatformView`.
- *
- * Implemented by iOS code that expose a `UIView` for embedding in a Flutter app.
- *
- * The implementation of this method should create a new `UIView` and return it.
- *
- * @param frame The rectangle for the newly created `UIView` measued in points.
- * @param viewId A unique identifier for this `UIView`.
- * @param args Parameters for creating the `UIView` sent from the Dart side of the Flutter app.
- * If `createArgsCodec` is not implemented, or if no creation arguments were sent from the Dart
- * code, this will be null. Otherwise this will be the value sent from the Dart code as decoded by
- * `createArgsCodec`.
- */
- - (NSObject<FlutterPlatformView>*)createWithFrame:(CGRect)frame
- viewIdentifier:(int64_t)viewId
- arguments:(id _Nullable)args;
-
- /**
- * Returns the `FlutterMessageCodec` for decoding the args parameter of `createWithFrame`.
- *
- * Only needs to be implemented if `createWithFrame` needs an arguments parameter.
- */
- @optional
- - (NSObject<FlutterMessageCodec>*)createArgsCodec;
- @end
-
- NS_ASSUME_NONNULL_END
-
- #endif // FLUTTER_FLUTTERPLATFORMVIEWS_H_
|