| // Copyright 2013 The Flutter Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #ifndef FLUTTER_SHELL_PLATFORM_WINDOWS_FLUTTER_WINDOWS_INTERNAL_H_ | |
| #define FLUTTER_SHELL_PLATFORM_WINDOWS_FLUTTER_WINDOWS_INTERNAL_H_ | |
| #include "flutter/shell/platform/windows/public/flutter_windows.h" | |
| #if defined(__cplusplus) | |
| extern "C" { | |
| #endif | |
| // Declare functions that are currently in-progress and shall be exposed to the | |
| // public facing API upon completion. | |
| // Properties for configuring a Flutter view controller. | |
| typedef struct { | |
| // The view's initial width. | |
| int width; | |
| // The view's initial height. | |
| int height; | |
| } FlutterDesktopViewControllerProperties; | |
| // Creates a view for the given engine. | |
| // | |
| // The |engine| will be started if it is not already running. | |
| // | |
| // The caller owns the returned reference, and is responsible for calling | |
| // |FlutterDesktopViewControllerDestroy|. Returns a null pointer in the event of | |
| // an error. | |
| // | |
| // Unlike |FlutterDesktopViewControllerCreate|, this does *not* take ownership | |
| // of |engine| and |FlutterDesktopEngineDestroy| must be called to destroy | |
| // the engine. | |
| FLUTTER_EXPORT FlutterDesktopViewControllerRef | |
| FlutterDesktopEngineCreateViewController( | |
| FlutterDesktopEngineRef engine, | |
| const FlutterDesktopViewControllerProperties* properties); | |
| typedef int64_t PlatformViewId; | |
| typedef struct { | |
| size_t struct_size; | |
| HWND parent_window; | |
| const char* platform_view_type; | |
| // user_data may hold any necessary additional information for creating a new | |
| // platform view. For example, an instance of FlutterWindow. | |
| void* user_data; | |
| PlatformViewId platform_view_id; | |
| } FlutterPlatformViewCreationParameters; | |
| typedef HWND (*FlutterPlatformViewFactory)( | |
| const FlutterPlatformViewCreationParameters*); | |
| typedef struct { | |
| size_t struct_size; | |
| FlutterPlatformViewFactory factory; | |
| void* user_data; // Arbitrary user data supplied to the creation struct. | |
| } FlutterPlatformViewTypeEntry; | |
| FLUTTER_EXPORT void FlutterDesktopEngineRegisterPlatformViewType( | |
| FlutterDesktopEngineRef engine, | |
| const char* view_type_name, | |
| FlutterPlatformViewTypeEntry view_type); | |
| #if defined(__cplusplus) | |
| } | |
| #endif | |
| #endif // FLUTTER_SHELL_PLATFORM_WINDOWS_FLUTTER_WINDOWS_INTERNAL_H_ |