30 lines
892 B
C++
30 lines
892 B
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() {}
|
||
|
|
||
|
void FlutterWindow::OnCreate() {
|
||
|
Win32Window::OnCreate();
|
||
|
|
||
|
// The size here is arbitrary since SetChildContent will resize it.
|
||
|
flutter_controller_ =
|
||
|
std::make_unique<flutter::FlutterViewController>(100, 100, project_);
|
||
|
RegisterPlugins(flutter_controller_.get());
|
||
|
run_loop_->RegisterFlutterInstance(flutter_controller_.get());
|
||
|
SetChildContent(flutter_controller_->view()->GetNativeWindow());
|
||
|
}
|
||
|
|
||
|
void FlutterWindow::OnDestroy() {
|
||
|
if (flutter_controller_) {
|
||
|
run_loop_->UnregisterFlutterInstance(flutter_controller_.get());
|
||
|
flutter_controller_ = nullptr;
|
||
|
}
|
||
|
|
||
|
Win32Window::OnDestroy();
|
||
|
}
|