Flutter Engine Uber Docs
Docs for the entire Flutter Engine repo.
 
Loading...
Searching...
No Matches
FlutterWindowController.h File Reference

Go to the source code of this file.

Classes

class  FlutterWindowController
 
struct  FlutterWindowRect
 
struct  FlutterWindowSize
 
struct  FlutterWindowOffset
 
struct  FlutterWindowConstraints
 
struct  FlutterWindowCreationRequest
 

Functions

FLUTTER_DARWIN_EXPORT int64_t InternalFlutter_WindowController_CreateRegularWindow (int64_t engine_id, const FlutterWindowCreationRequest *request)
 
FLUTTER_DARWIN_EXPORT int64_t InternalFlutter_WindowController_CreateDialogWindow (int64_t engine_id, const FlutterWindowCreationRequest *request)
 
FLUTTER_DARWIN_EXPORT int64_t InternalFlutter_WindowController_CreateTooltipWindow (int64_t engine_id, const FlutterWindowCreationRequest *request)
 
FLUTTER_DARWIN_EXPORT int64_t InternalFlutter_WindowController_CreatePopupWindow (int64_t engine_id, const FlutterWindowCreationRequest *request)
 
FLUTTER_DARWIN_EXPORT void InternalFlutter_Window_Destroy (int64_t engine_id, void *window)
 
FLUTTER_DARWIN_EXPORT void * InternalFlutter_Window_GetHandle (int64_t engine_id, FlutterViewIdentifier view_id)
 
FLUTTER_DARWIN_EXPORT FlutterWindowSize InternalFlutter_Window_GetContentSize (void *window)
 
FLUTTER_DARWIN_EXPORT void InternalFlutter_Window_SetContentSize (void *window, const FlutterWindowSize *size)
 
FLUTTER_DARWIN_EXPORT void InternalFlutter_Window_SetConstraints (void *window, const FlutterWindowConstraints *constraints)
 
FLUTTER_DARWIN_EXPORT void InternalFlutter_Window_SetTitle (void *window, const char *title)
 
FLUTTER_DARWIN_EXPORT void InternalFlutter_Window_SetMaximized (void *window, bool maximized)
 
FLUTTER_DARWIN_EXPORT bool InternalFlutter_Window_IsMaximized (void *window)
 
FLUTTER_DARWIN_EXPORT void InternalFlutter_Window_Minimize (void *window)
 
FLUTTER_DARWIN_EXPORT void InternalFlutter_Window_Unminimize (void *window)
 
FLUTTER_DARWIN_EXPORT bool InternalFlutter_Window_IsMinimized (void *window)
 
FLUTTER_DARWIN_EXPORT void InternalFlutter_Window_SetFullScreen (void *window, bool fullScreen)
 
FLUTTER_DARWIN_EXPORT bool InternalFlutter_Window_IsFullScreen (void *window)
 
FLUTTER_DARWIN_EXPORT void InternalFlutter_Window_Activate (void *window)
 
FLUTTER_DARWIN_EXPORT char * InternalFlutter_Window_GetTitle (void *window)
 
FLUTTER_DARWIN_EXPORT bool InternalFlutter_Window_IsActivated (void *window)
 
FLUTTER_DARWIN_EXPORT void InternalFlutter_Window_UpdatePosition (void *window)
 
FLUTTER_DARWIN_EXPORT FlutterWindowOffset InternalFlutter_Window_GetOffsetInParent (void *window)
 

Function Documentation

◆ InternalFlutter_Window_Activate()

FLUTTER_DARWIN_EXPORT void InternalFlutter_Window_Activate ( void *  window)

Definition at line 686 of file FlutterWindowController.mm.

686 {
687 NSWindow* w = (__bridge NSWindow*)window;
688 [NSApplication.sharedApplication activateIgnoringOtherApps:YES];
689 [w makeKeyAndOrderFront:nil];
690}
GLFWwindow * window
Definition main.cc:60

References window.

◆ InternalFlutter_Window_Destroy()

FLUTTER_DARWIN_EXPORT void InternalFlutter_Window_Destroy ( int64_t  engine_id,
void *  window 
)

Definition at line 603 of file FlutterWindowController.mm.

603 {
604 NSWindow* w = (__bridge NSWindow*)window;
605 FlutterEngine* engine = [FlutterEngine engineForIdentifier:engine_id];
606 [engine.windowController destroyWindow:w];
607}
FlutterEngine engine
Definition main.cc:84

References engine, and window.

Referenced by flutter::testing::TEST_F().

◆ InternalFlutter_Window_GetContentSize()

FLUTTER_DARWIN_EXPORT FlutterWindowSize InternalFlutter_Window_GetContentSize ( void *  window)

Definition at line 615 of file FlutterWindowController.mm.

615 {
616 NSWindow* w = (__bridge NSWindow*)window;
617 NSRect contentRect = [w contentRectForFrameRect:w.frame];
618 return {
619 .width = contentRect.size.width,
620 .height = contentRect.size.height,
621 };
622}

References FlutterWindowSize::width, and window.

◆ InternalFlutter_Window_GetHandle()

FLUTTER_DARWIN_EXPORT void * InternalFlutter_Window_GetHandle ( int64_t  engine_id,
FlutterViewIdentifier  view_id 
)

Definition at line 609 of file FlutterWindowController.mm.

609 {
610 FlutterEngine* engine = [FlutterEngine engineForIdentifier:engine_id];
611 FlutterViewController* controller = [engine viewControllerForIdentifier:view_id];
612 return (__bridge void*)controller.view.window;
613}
G_BEGIN_DECLS FlutterViewId view_id

References engine.

Referenced by flutter::testing::TEST_F().

◆ InternalFlutter_Window_GetOffsetInParent()

FLUTTER_DARWIN_EXPORT FlutterWindowOffset InternalFlutter_Window_GetOffsetInParent ( void *  window)

Definition at line 708 of file FlutterWindowController.mm.

708 {
709 NSWindow* w = (__bridge NSWindow*)window;
710 NSWindow* parent = w.parentWindow;
711 if (!parent) {
712 return {0, 0};
713 }
714 NSRect globalScreenFrame = ComputeGlobalScreenFrame();
715
716 NSRect parentRect = [parent contentRectForFrameRect:parent.frame];
717 FlipRect(parentRect, globalScreenFrame);
718
719 NSRect childRect = w.frame;
720 FlipRect(childRect, globalScreenFrame);
721
722 return {
723 .x = childRect.origin.x - parentRect.origin.x,
724 .y = childRect.origin.y - parentRect.origin.y,
725 };
726}

References window.

Referenced by flutter::testing::TEST_F().

◆ InternalFlutter_Window_GetTitle()

FLUTTER_DARWIN_EXPORT char * InternalFlutter_Window_GetTitle ( void *  window)

Definition at line 692 of file FlutterWindowController.mm.

692 {
693 NSWindow* w = (__bridge NSWindow*)window;
694 return strdup(w.title.UTF8String);
695}
char * strdup(const char *str1)

References window.

◆ InternalFlutter_Window_IsActivated()

FLUTTER_DARWIN_EXPORT bool InternalFlutter_Window_IsActivated ( void *  window)

Definition at line 697 of file FlutterWindowController.mm.

697 {
698 NSWindow* w = (__bridge NSWindow*)window;
699 return w.isKeyWindow;
700}

References window.

◆ InternalFlutter_Window_IsFullScreen()

FLUTTER_DARWIN_EXPORT bool InternalFlutter_Window_IsFullScreen ( void *  window)

Definition at line 681 of file FlutterWindowController.mm.

681 {
682 NSWindow* w = (__bridge NSWindow*)window;
683 return (w.styleMask & NSWindowStyleMaskFullScreen) != 0;
684}

References window.

◆ InternalFlutter_Window_IsMaximized()

FLUTTER_DARWIN_EXPORT bool InternalFlutter_Window_IsMaximized ( void *  window)

Definition at line 651 of file FlutterWindowController.mm.

651 {
652 NSWindow* w = (__bridge NSWindow*)window;
653 return w.isZoomed;
654}

References window.

◆ InternalFlutter_Window_IsMinimized()

FLUTTER_DARWIN_EXPORT bool InternalFlutter_Window_IsMinimized ( void *  window)

Definition at line 666 of file FlutterWindowController.mm.

666 {
667 NSWindow* w = (__bridge NSWindow*)window;
668 return w.isMiniaturized;
669}

References window.

◆ InternalFlutter_Window_Minimize()

FLUTTER_DARWIN_EXPORT void InternalFlutter_Window_Minimize ( void *  window)

Definition at line 656 of file FlutterWindowController.mm.

656 {
657 NSWindow* w = (__bridge NSWindow*)window;
658 [w miniaturize:nil];
659}

References window.

Referenced by flutter::testing::TEST_F().

◆ InternalFlutter_Window_SetConstraints()

FLUTTER_DARWIN_EXPORT void InternalFlutter_Window_SetConstraints ( void *  window,
const FlutterWindowConstraints constraints 
)

Definition at line 630 of file FlutterWindowController.mm.

631 {
632 NSWindow* w = (__bridge NSWindow*)window;
633 FlutterWindowOwner* owner = (FlutterWindowOwner*)w.delegate;
634 [owner setConstraints:*constraints];
635}

References window.

◆ InternalFlutter_Window_SetContentSize()

FLUTTER_DARWIN_EXPORT void InternalFlutter_Window_SetContentSize ( void *  window,
const FlutterWindowSize size 
)

Definition at line 624 of file FlutterWindowController.mm.

624 {
625 NSWindow* w = (__bridge NSWindow*)window;
626 [w flutterSetContentSize:*size];
627}
it will be possible to load the file into Perfetto s trace viewer use test Running tests that layout and measure text will not yield consistent results across various platforms Enabling this option will make font resolution default to the Ahem test font on all disable asset Prevents usage of any non test fonts unless they were explicitly Loaded via prefetched default font Indicates whether the embedding started a prefetch of the default font manager before creating the engine run In non interactive keep the shell running after the Dart script has completed enable serial On low power devices with low core running concurrent GC tasks on threads can cause them to contend with the UI thread which could potentially lead to jank This option turns off all concurrent GC activities domain network JSON encoded network policy per domain This overrides the DisallowInsecureConnections switch Embedder can specify whether to allow or disallow insecure connections at a domain level old gen heap size

References window.

◆ InternalFlutter_Window_SetFullScreen()

FLUTTER_DARWIN_EXPORT void InternalFlutter_Window_SetFullScreen ( void *  window,
bool  fullScreen 
)

Definition at line 671 of file FlutterWindowController.mm.

671 {
672 NSWindow* w = (__bridge NSWindow*)window;
673 bool isFullScreen = (w.styleMask & NSWindowStyleMaskFullScreen) != 0;
674 if (fullScreen && !isFullScreen) {
675 [w toggleFullScreen:nil];
676 } else if (!fullScreen && isFullScreen) {
677 [w toggleFullScreen:nil];
678 }
679}

References window.

◆ InternalFlutter_Window_SetMaximized()

FLUTTER_DARWIN_EXPORT void InternalFlutter_Window_SetMaximized ( void *  window,
bool  maximized 
)

Definition at line 642 of file FlutterWindowController.mm.

642 {
643 NSWindow* w = (__bridge NSWindow*)window;
644 if (maximized & !w.isZoomed) {
645 [w zoom:nil];
646 } else if (!maximized && w.isZoomed) {
647 [w zoom:nil];
648 }
649}

References window.

Referenced by flutter::testing::TEST_F().

◆ InternalFlutter_Window_SetTitle()

FLUTTER_DARWIN_EXPORT void InternalFlutter_Window_SetTitle ( void *  window,
const char *  title 
)

Definition at line 637 of file FlutterWindowController.mm.

637 {
638 NSWindow* w = (__bridge NSWindow*)window;
639 w.title = [NSString stringWithUTF8String:title];
640}

References window.

◆ InternalFlutter_Window_Unminimize()

FLUTTER_DARWIN_EXPORT void InternalFlutter_Window_Unminimize ( void *  window)

Definition at line 661 of file FlutterWindowController.mm.

661 {
662 NSWindow* w = (__bridge NSWindow*)window;
663 [w deminiaturize:nil];
664}

References window.

◆ InternalFlutter_Window_UpdatePosition()

FLUTTER_DARWIN_EXPORT void InternalFlutter_Window_UpdatePosition ( void *  window)

Definition at line 702 of file FlutterWindowController.mm.

702 {
703 NSWindow* w = (__bridge NSWindow*)window;
704 FlutterWindowOwner* owner = (FlutterWindowOwner*)w.delegate;
705 [owner updatePosition];
706}

References window.

◆ InternalFlutter_WindowController_CreateDialogWindow()

FLUTTER_DARWIN_EXPORT int64_t InternalFlutter_WindowController_CreateDialogWindow ( int64_t  engine_id,
const FlutterWindowCreationRequest request 
)

Definition at line 579 of file FlutterWindowController.mm.

581 {
582 FlutterEngine* engine = [FlutterEngine engineForIdentifier:engine_id];
583 [engine enableMultiView];
584 return [engine.windowController createDialogWindow:request];
585}

References engine.

◆ InternalFlutter_WindowController_CreatePopupWindow()

FLUTTER_DARWIN_EXPORT int64_t InternalFlutter_WindowController_CreatePopupWindow ( int64_t  engine_id,
const FlutterWindowCreationRequest request 
)

Definition at line 595 of file FlutterWindowController.mm.

597 {
598 FlutterEngine* engine = [FlutterEngine engineForIdentifier:engine_id];
599 [engine enableMultiView];
600 return [engine.windowController createPopupWindow:request];
601}

References engine.

Referenced by flutter::testing::TEST_F().

◆ InternalFlutter_WindowController_CreateRegularWindow()

FLUTTER_DARWIN_EXPORT int64_t InternalFlutter_WindowController_CreateRegularWindow ( int64_t  engine_id,
const FlutterWindowCreationRequest request 
)

Definition at line 571 of file FlutterWindowController.mm.

573 {
574 FlutterEngine* engine = [FlutterEngine engineForIdentifier:engine_id];
575 [engine enableMultiView];
576 return [engine.windowController createRegularWindow:request];
577}

References engine.

Referenced by flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), and flutter::testing::TEST_F().

◆ InternalFlutter_WindowController_CreateTooltipWindow()

FLUTTER_DARWIN_EXPORT int64_t InternalFlutter_WindowController_CreateTooltipWindow ( int64_t  engine_id,
const FlutterWindowCreationRequest request 
)

Definition at line 587 of file FlutterWindowController.mm.

589 {
590 FlutterEngine* engine = [FlutterEngine engineForIdentifier:engine_id];
591 [engine enableMultiView];
592 return [engine.windowController createTooltipWindow:request];
593}

References engine.

Referenced by flutter::testing::TEST_F(), and flutter::testing::TEST_F().