mirror of
https://github.com/wgh136/flutter_qjs.git
synced 2025-09-27 21:37:24 +00:00
37 lines
1.1 KiB
C++
37 lines
1.1 KiB
C++
#include "flutter_window.h"
|
|
|
|
#include "flutter/generated_plugin_registrant.h"
|
|
|
|
FlutterWindow::FlutterWindow(RunLoop* run_loop,
|
|
const flutter::DartProject& project)
|
|
: run_loop_(run_loop), project_(project) {}
|
|
|
|
FlutterWindow::~FlutterWindow() {}
|
|
|
|
bool FlutterWindow::OnCreate() {
|
|
if (!Win32Window::OnCreate()) {
|
|
return false;
|
|
}
|
|
|
|
// The size here is arbitrary since SetChildContent will resize it.
|
|
flutter_controller_ =
|
|
std::make_unique<flutter::FlutterViewController>(100, 100, project_);
|
|
// Ensure that basic setup of the controller was successful.
|
|
if (!flutter_controller_->engine() || !flutter_controller_->view()) {
|
|
return false;
|
|
}
|
|
RegisterPlugins(flutter_controller_.get());
|
|
run_loop_->RegisterFlutterInstance(flutter_controller_.get());
|
|
SetChildContent(flutter_controller_->view()->GetNativeWindow());
|
|
return true;
|
|
}
|
|
|
|
void FlutterWindow::OnDestroy() {
|
|
if (flutter_controller_) {
|
|
run_loop_->UnregisterFlutterInstance(flutter_controller_.get());
|
|
flutter_controller_ = nullptr;
|
|
}
|
|
|
|
Win32Window::OnDestroy();
|
|
}
|