Skip to content

Commit 8cf4ca9

Browse files
windows
1 parent f965c8b commit 8cf4ca9

File tree

1 file changed

+27
-10
lines changed

1 file changed

+27
-10
lines changed

packages/pigeon/example/app/windows/runner/flutter_window.cpp

Lines changed: 27 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,21 @@
44

55
#include "flutter_window.h"
66

7+
#include <flutter/binary_messenger.h>
8+
79
#include <memory>
810
#include <optional>
911

1012
#include "flutter/generated_plugin_registrant.h"
1113
#include "messages.g.h"
1214

1315
namespace {
16+
using pigeon_example::Code;
1417
using pigeon_example::ErrorOr;
1518
using pigeon_example::ExampleHostApi;
19+
using pigeon_example::FlutterError;
20+
using pigeon_example::MessageData;
21+
using pigeon_example::MessageFlutterApi;
1622

1723
// #docregion cpp-class
1824
class PigeonApiImplementation : public ExampleHostApi {
@@ -29,14 +35,34 @@ class PigeonApiImplementation : public ExampleHostApi {
2935
}
3036
void SendMessage(const MessageData& message,
3137
std::function<void(ErrorOr<bool> reply)> result) {
32-
if (message.code == Code.kOne) {
38+
if (message.code() == Code::kOne) {
3339
result(FlutterError("code", "message", "details"));
3440
return;
3541
}
3642
result(true);
3743
}
3844
};
3945
// #enddocregion cpp-class
46+
47+
// #docregion cpp-method-flutter
48+
class PigeonFlutterApi {
49+
public:
50+
PigeonFlutterApi(flutter::BinaryMessenger* messenger)
51+
: flutterApi_(std::make_unique<MessageFlutterApi>(messenger)) {}
52+
53+
void CallFlutterMethod(
54+
const std::string& a_string,
55+
std::function<void(ErrorOr<std::string> reply)> result) {
56+
flutterApi_->FlutterMethod(
57+
&a_string, [result](const std::string& echo) { result(echo); },
58+
[result](const FlutterError& error) { result(error); });
59+
}
60+
61+
private:
62+
std::unique_ptr<MessageFlutterApi> flutterApi_;
63+
};
64+
// #enddocregion cpp-method-flutter
65+
4066
} // namespace
4167

4268
FlutterWindow::FlutterWindow(const flutter::DartProject& project)
@@ -49,15 +75,6 @@ bool FlutterWindow::OnCreate() {
4975
return false;
5076
}
5177

52-
// #docregion cpp-method-flutter
53-
void TestPlugin::CallFlutterMethod(
54-
String aString, std::function<void(ErrorOr<int64_t> reply)> result) {
55-
MessageFlutterApi->FlutterMethod(
56-
aString, [result](String echo) { result(echo); },
57-
[result](const FlutterError& error) { result(error); });
58-
}
59-
// #enddocregion cpp-method-flutter
60-
6178
RECT frame = GetClientArea();
6279

6380
// The size here must match the window dimensions to avoid unnecessary surface

0 commit comments

Comments
 (0)