| #ifndef RUNNER_FLUTTER_WINDOW_H_ |
| #define RUNNER_FLUTTER_WINDOW_H_ |
| |
| #include <flutter/dart_project.h> |
| #include <flutter/flutter_view_controller.h> |
| |
| #include <memory> |
| |
| #include "run_loop.h" |
| #include "win32_window.h" |
| |
| // A window that does nothing but host a Flutter view. |
| class FlutterWindow : public Win32Window { |
| public: |
| // Creates a new FlutterWindow driven by the |run_loop|, hosting a |
| // Flutter view running |project|. |
| explicit FlutterWindow(RunLoop* run_loop, |
| const flutter::DartProject& project); |
| virtual ~FlutterWindow(); |
| |
| protected: |
| // Win32Window: |
| bool OnCreate() override; |
| void OnDestroy() override; |
| LRESULT MessageHandler(HWND window, UINT const message, WPARAM const wparam, |
| LPARAM const lparam) noexcept override; |
| |
| private: |
| // The run loop driving events for this window. |
| RunLoop* run_loop_; |
| |
| // The project to run. |
| flutter::DartProject project_; |
| |
| // The Flutter instance hosted by this window. |
| std::unique_ptr<flutter::FlutterViewController> flutter_controller_; |
| }; |
| |
| #endif // RUNNER_FLUTTER_WINDOW_H_ |