Flutter macOS Embedder
FlutterViewController_Internal.h
Go to the documentation of this file.
1 // Copyright 2013 The Flutter Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef FLUTTER_SHELL_PLATFORM_DARWIN_MACOS_FRAMEWORK_SOURCE_FLUTTERVIEWCONTROLLER_INTERNAL_H_
6 #define FLUTTER_SHELL_PLATFORM_DARWIN_MACOS_FRAMEWORK_SOURCE_FLUTTERVIEWCONTROLLER_INTERNAL_H_
7 
9 
10 #include <memory>
11 
15 
16 @interface FlutterViewController ()
17 
18 // The FlutterView for this view controller.
19 @property(nonatomic, readonly, nullable) FlutterView* flutterView;
20 
21 /**
22  * The text input plugin that handles text editing state for text fields.
23  */
24 @property(nonatomic, readonly, nonnull) FlutterTextInputPlugin* textInputPlugin;
25 
26 @property(nonatomic, readonly) std::weak_ptr<flutter::AccessibilityBridgeMac> accessibilityBridge;
27 
28 /**
29  * Returns YES if provided event is being currently redispatched by keyboard manager.
30  */
31 - (BOOL)isDispatchingKeyEvent:(nonnull NSEvent*)event;
32 
33 /**
34  * Set up the controller with `engine` and `id`, and other engine-level classes.
35  *
36  * This method is called by FlutterEngine. A view controller must be set up
37  * before being used, and must be set up only once until detachFromEngine:.
38  */
39 - (void)setUpWithEngine:(nonnull FlutterEngine*)engine
40  viewIdentifier:(FlutterViewIdentifier)viewIdentifier
41  threadSynchronizer:(nonnull FlutterThreadSynchronizer*)threadSynchronizer;
42 
43 /**
44  * Reset the `engine` and `id` of this controller.
45  *
46  * This method is called by FlutterEngine.
47  */
48 - (void)detachFromEngine;
49 
50 /**
51  * Called by the associated FlutterEngine when FlutterEngine#semanticsEnabled
52  * has changed.
53  */
54 - (void)notifySemanticsEnabledChanged;
55 
56 /**
57  * Notify from the framework that the semantics for this view needs to be
58  * updated.
59  */
60 - (void)updateSemantics:(nonnull const FlutterSemanticsUpdate2*)update;
61 
62 @end
63 
64 // Private methods made visible for testing
66 - (void)onAccessibilityStatusChanged:(BOOL)enabled;
67 
68 /* Creates an accessibility bridge with the provided parameters.
69  *
70  * By default this method calls AccessibilityBridgeMac's initializer. Exposing
71  * this method allows unit tests to override.
72  */
73 - (std::shared_ptr<flutter::AccessibilityBridgeMac>)createAccessibilityBridgeWithEngine:
74  (nonnull FlutterEngine*)engine;
75 
76 - (nonnull FlutterView*)createFlutterViewWithMTLDevice:(nonnull id<MTLDevice>)device
77  commandQueue:(nonnull id<MTLCommandQueue>)commandQueue;
78 
79 @end
80 
81 #endif // FLUTTER_SHELL_PLATFORM_DARWIN_MACOS_FRAMEWORK_SOURCE_FLUTTERVIEWCONTROLLER_INTERNAL_H_
FlutterEngine
Definition: FlutterEngine.h:31
FlutterViewController
Definition: FlutterViewController.h:73
FlutterTextInputPlugin.h
AccessibilityBridgeMac.h
FlutterViewController(TestMethods)
Definition: FlutterViewController_Internal.h:65
FlutterThreadSynchronizer
Definition: FlutterThreadSynchronizer.h:18
FlutterTextInputPlugin
Definition: FlutterTextInputPlugin.h:27
FlutterView
Definition: FlutterView.h:35
FlutterView.h
FlutterViewIdentifier
int64_t FlutterViewIdentifier
Definition: FlutterViewController.h:21
FlutterViewController.h