Flutter Windows Embedder
flutter::PlatformViewManager Class Referenceabstract

#include <platform_view_manager.h>

Inheritance diagram for flutter::PlatformViewManager:
flutter::PlatformViewPlugin

Public Member Functions

 PlatformViewManager (BinaryMessenger *binary_messenger)
 
virtual ~PlatformViewManager ()
 
virtual bool AddPlatformView (PlatformViewId id, std::string_view type_name)=0
 
virtual bool FocusPlatformView (PlatformViewId id, FocusChangeDirection direction, bool focus)=0
 

Detailed Description

Definition at line 27 of file platform_view_manager.h.

Constructor & Destructor Documentation

◆ PlatformViewManager()

flutter::PlatformViewManager::PlatformViewManager ( BinaryMessenger binary_messenger)

Definition at line 21 of file platform_view_manager.cc.

22  : channel_(std::make_unique<MethodChannel<EncodableValue>>(
23  binary_messenger,
26  channel_->SetMethodCallHandler(
27  [this](const MethodCall<EncodableValue>& call,
28  std::unique_ptr<MethodResult<EncodableValue>> result) {
29  const auto& args = std::get<EncodableMap>(*call.arguments());
30  if (call.method_name() == kCreateMethod) {
31  const auto& type_itr = args.find(EncodableValue(kViewTypeParameter));
32  const auto& id_itr = args.find(EncodableValue(kIdParameter));
33  if (type_itr == args.end()) {
34  result->Error("AddPlatformView", "Parameter viewType is required");
35  return;
36  }
37  if (id_itr == args.end()) {
38  result->Error("AddPlatformView", "Parameter id is required");
39  return;
40  }
41  const auto& type = std::get<std::string>(type_itr->second);
42  const auto& id = std::get<std::int32_t>(id_itr->second);
43  if (AddPlatformView(id, type)) {
44  result->Success();
45  } else {
46  result->Error("AddPlatformView", "Failed to add platform view");
47  }
48  return;
49  } else if (call.method_name() == kFocusMethod) {
50  const auto& id_itr = args.find(EncodableValue(kIdParameter));
51  const auto& direction_itr =
52  args.find(EncodableValue(kDirectionParameter));
53  const auto& focus_itr = args.find(EncodableValue(kFocusParameter));
54  if (id_itr == args.end()) {
55  result->Error("FocusPlatformView", "Parameter id is required");
56  return;
57  }
58  if (direction_itr == args.end()) {
59  result->Error("FocusPlatformView",
60  "Parameter direction is required");
61  return;
62  }
63  if (focus_itr == args.end()) {
64  result->Error("FocusPlatformView", "Parameter focus is required");
65  return;
66  }
67  const auto& id = std::get<std::int32_t>(id_itr->second);
68  const auto& direction = std::get<std::int32_t>(direction_itr->second);
69  const auto& focus = std::get<bool>(focus_itr->second);
71  id, static_cast<FocusChangeDirection>(direction), focus)) {
72  result->Success();
73  } else {
74  result->Error("FocusPlatformView", "Failed to focus platform view");
75  }
76  return;
77  }
78  result->NotImplemented();
79  });
80 }

References AddPlatformView(), flutter::MethodCall< T >::arguments(), FocusPlatformView(), flutter::MethodCall< T >::method_name(), and type.

◆ ~PlatformViewManager()

flutter::PlatformViewManager::~PlatformViewManager ( )
virtual

Definition at line 82 of file platform_view_manager.cc.

82 {}

Member Function Documentation

◆ AddPlatformView()

virtual bool flutter::PlatformViewManager::AddPlatformView ( PlatformViewId  id,
std::string_view  type_name 
)
pure virtual

Implemented in flutter::PlatformViewPlugin.

Referenced by PlatformViewManager().

◆ FocusPlatformView()

virtual bool flutter::PlatformViewManager::FocusPlatformView ( PlatformViewId  id,
FocusChangeDirection  direction,
bool  focus 
)
pure virtual

Implemented in flutter::PlatformViewPlugin.

Referenced by PlatformViewManager().


The documentation for this class was generated from the following files:
flutter::PlatformViewManager::AddPlatformView
virtual bool AddPlatformView(PlatformViewId id, std::string_view type_name)=0
flutter::FocusChangeDirection
FocusChangeDirection
Definition: platform_view_manager.h:17
type
enum flutter::testing::@88::KeyboardChange::Type type
kChannelName
static constexpr char kChannelName[]
Definition: cursor_handler.cc:13
flutter::PlatformViewManager::FocusPlatformView
virtual bool FocusPlatformView(PlatformViewId id, FocusChangeDirection direction, bool focus)=0
flutter::StandardMethodCodec::GetInstance
static const StandardMethodCodec & GetInstance(const StandardCodecSerializer *serializer=nullptr)
Definition: standard_codec.cc:340