1#ifndef RUNNER_FLUTTER_WINDOW_H_ 2#define RUNNER_FLUTTER_WINDOW_H_ 3 4#include <flutter/dart_project.h> 5#include <flutter/flutter_view_controller.h> 6 7#include <memory> 8 9#include "win32_window.h" 10 11// A window that does nothing but host a Flutter view. 12class FlutterWindow : public Win32Window { 13 public: 14 // Creates a new FlutterWindow hosting a Flutter view running |project|. 15 explicit FlutterWindow(const flutter::DartProject& project); 16 virtual ~FlutterWindow(); 17 18 protected: 19 // Win32Window: 20 bool OnCreate() override; 21 void OnDestroy() override; 22 LRESULT MessageHandler(HWND window, UINT const message, WPARAM const wparam, 23 LPARAM const lparam) noexcept override; 24 25 private: 26 // The project to run. 27 flutter::DartProject project_; 28 29 // The Flutter instance hosted by this window. 30 std::unique_ptr<flutter::FlutterViewController> flutter_controller_; 31}; 32 33#endif // RUNNER_FLUTTER_WINDOW_H_