blob: 47b98e983a48a86f3902d05d8175e19d1241f302 [file] [log] [blame]
// 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.
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_