34 lines
		
	
	
		
			928 B
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			34 lines
		
	
	
		
			928 B
		
	
	
	
		
			C
		
	
	
	
	
	
|  | #ifndef RUNNER_FLUTTER_WINDOW_H_
 | ||
|  | #define RUNNER_FLUTTER_WINDOW_H_
 | ||
|  | 
 | ||
|  | #include <flutter/dart_project.h>
 | ||
|  | #include <flutter/flutter_view_controller.h>
 | ||
|  | 
 | ||
|  | #include <memory>
 | ||
|  | 
 | ||
|  | #include "win32_window.h"
 | ||
|  | 
 | ||
|  | // A window that does nothing but host a Flutter view.
 | ||
|  | class FlutterWindow : public Win32Window { | ||
|  |  public: | ||
|  |   // Creates a new FlutterWindow hosting a Flutter view running |project|.
 | ||
|  |   explicit FlutterWindow(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 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_
 |