Flutter Engine Uber Docs
Docs for the entire Flutter Engine repo.
 
Loading...
Searching...
No Matches
FlutterWindowController.h
Go to the documentation of this file.
1// Copyright 2013 The Flutter Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef FLUTTER_SHELL_PLATFORM_DARWIN_MACOS_FRAMEWORK_SOURCE_FLUTTERWINDOWCONTROLLER_H_
6#define FLUTTER_SHELL_PLATFORM_DARWIN_MACOS_FRAMEWORK_SOURCE_FLUTTERWINDOWCONTROLLER_H_
7
8#import <Cocoa/Cocoa.h>
9
12
13@class FlutterEngine;
14
15@interface FlutterWindowController : NSObject
16
17@property(nonatomic, weak) FlutterEngine* engine;
18
19- (void)closeAllWindows;
20
21@end
22
24 double left;
25 double top;
26 double width;
27 double height;
28
29 static FlutterWindowRect fromNSRect(const NSRect& rect) {
30 return {
31 rect.origin.x,
32 rect.origin.y,
33 rect.size.width,
34 rect.size.height,
35 };
36 }
37
38 NSRect toNSRect() const { return NSMakeRect(left, top, width, height); }
39};
40
42 double width;
43 double height;
44
45 static FlutterWindowSize fromNSSize(const NSSize& size) {
46 return {
47 size.width,
48 size.height,
49 };
50 }
51};
52
59
62 struct FlutterWindowSize size;
64 struct FlutterWindowConstraints constraints;
66 void (*on_should_close)();
67 void (*on_will_close)();
68 void (*notify_listeners)();
69 // For sized to content windows with positioner returns the desired window position for given
70 // configuration. All coordinates are in logical space.
71 FlutterWindowRect* (*on_get_window_position)(const FlutterWindowSize& child_size,
72 const FlutterWindowRect& parent_rect,
73 const FlutterWindowRect& output_rect);
74};
75
76extern "C" {
77
78// NOLINTBEGIN(google-objc-function-naming)
79
82 int64_t engine_id,
83 const FlutterWindowCreationRequest* request);
84
87 int64_t engine_id,
88 const FlutterWindowCreationRequest* request);
89
92 int64_t engine_id,
93 const FlutterWindowCreationRequest* request);
94
96void InternalFlutter_Window_Destroy(int64_t engine_id, void* window);
97
100
103
106
109 const FlutterWindowConstraints* constraints);
110
112void InternalFlutter_Window_SetTitle(void* window, const char* title);
113
115void InternalFlutter_Window_SetMaximized(void* window, bool maximized);
116
119
122
125
128
130void InternalFlutter_Window_SetFullScreen(void* window, bool fullScreen);
131
134
137
140
143
146
147// NOLINTEND(google-objc-function-naming)
148}
149
150#endif // FLUTTER_SHELL_PLATFORM_DARWIN_MACOS_FRAMEWORK_SOURCE_FLUTTERWINDOWCONTROLLER_H_
#define FLUTTER_DARWIN_EXPORT
FLUTTER_DARWIN_EXPORT int64_t InternalFlutter_WindowController_CreateRegularWindow(int64_t engine_id, const FlutterWindowCreationRequest *request)
FLUTTER_DARWIN_EXPORT void InternalFlutter_Window_UpdatePosition(void *window)
FLUTTER_DARWIN_EXPORT FlutterWindowSize InternalFlutter_Window_GetContentSize(void *window)
FLUTTER_DARWIN_EXPORT void * InternalFlutter_Window_GetHandle(int64_t engine_id, FlutterViewIdentifier view_id)
FLUTTER_DARWIN_EXPORT int64_t InternalFlutter_WindowController_CreateTooltipWindow(int64_t engine_id, const FlutterWindowCreationRequest *request)
FLUTTER_DARWIN_EXPORT void InternalFlutter_Window_SetMaximized(void *window, bool maximized)
FLUTTER_DARWIN_EXPORT void InternalFlutter_Window_SetConstraints(void *window, const FlutterWindowConstraints *constraints)
FLUTTER_DARWIN_EXPORT void InternalFlutter_Window_Destroy(int64_t engine_id, void *window)
FLUTTER_DARWIN_EXPORT void InternalFlutter_Window_Unminimize(void *window)
FLUTTER_DARWIN_EXPORT char * InternalFlutter_Window_GetTitle(void *window)
FLUTTER_DARWIN_EXPORT void InternalFlutter_Window_SetContentSize(void *window, const FlutterWindowSize *size)
FLUTTER_DARWIN_EXPORT void InternalFlutter_Window_SetFullScreen(void *window, bool fullScreen)
FLUTTER_DARWIN_EXPORT bool InternalFlutter_Window_IsMaximized(void *window)
FLUTTER_DARWIN_EXPORT bool InternalFlutter_Window_IsMinimized(void *window)
FLUTTER_DARWIN_EXPORT int64_t InternalFlutter_WindowController_CreateDialogWindow(int64_t engine_id, const FlutterWindowCreationRequest *request)
FLUTTER_DARWIN_EXPORT void InternalFlutter_Window_SetTitle(void *window, const char *title)
FLUTTER_DARWIN_EXPORT void InternalFlutter_Window_Activate(void *window)
FLUTTER_DARWIN_EXPORT bool InternalFlutter_Window_IsFullScreen(void *window)
FLUTTER_DARWIN_EXPORT bool InternalFlutter_Window_IsActivated(void *window)
FLUTTER_DARWIN_EXPORT void InternalFlutter_Window_Minimize(void *window)
GLFWwindow * window
Definition main.cc:60
G_BEGIN_DECLS FlutterViewId view_id
int64_t FlutterViewIdentifier
int32_t height
int32_t width
static FlutterWindowRect fromNSRect(const NSRect &rect)
static FlutterWindowSize fromNSSize(const NSSize &size)