- /* Find out on which screen to open the window */
- if( i_device <= 0 || i_device > (int)[o_screens count] )
- {
- /* No preference specified. Use the main screen */
- o_screen = [NSScreen mainScreen];
- if( o_screen == [o_screens objectAtIndex: 0] )
- b_menubar_screen = VLC_TRUE;
- }
- else
- {
- i_device--;
- o_screen = [o_screens objectAtIndex: i_device];
- b_menubar_screen = ( i_device == 0 );
- }
-
- if( p_vout->b_fullscreen )
- {
- NSRect screen_rect = [o_screen frame];
- screen_rect.origin.x = screen_rect.origin.y = 0;
-
- /* Creates a window with size: screen_rect on o_screen */
- [self initWithContentRect: screen_rect
- styleMask: NSBorderlessWindowMask
- backing: NSBackingStoreBuffered
- defer: YES screen: o_screen];
-
- if( b_menubar_screen )
- {
- BeginFullScreen( &p_fullscreen_state, NULL, 0, 0,
- NULL, NULL, fullScreenAllowEvents );
- }
- }
- else if( var_GetBool( p_real_vout, "macosx-background" ) )
- {
- NSRect screen_rect = [o_screen frame];
- screen_rect.origin.x = screen_rect.origin.y = 0;
-
- /* Creates a window with size: screen_rect on o_screen */
- [self initWithContentRect: screen_rect
- styleMask: NSBorderlessWindowMask
- backing: NSBackingStoreBuffered
- defer: YES screen: o_screen];
-
- [self setLevel: CGWindowLevelForKey(kCGDesktopWindowLevelKey)];
- }
- else
- {
- unsigned int i_stylemask = NSTitledWindowMask |
- NSMiniaturizableWindowMask |
- NSClosableWindowMask |
- NSResizableWindowMask;
-
- NSRect s_rect;
- if( !s_frame )
- {
- s_rect.size.width = p_vout->i_window_width;
- s_rect.size.height = p_vout->i_window_height;
- }
- else
- {
- s_rect = *s_frame;
- }
-
- [self initWithContentRect: s_rect
- styleMask: i_stylemask
- backing: NSBackingStoreBuffered
- defer: YES screen: o_screen];
-
- [self setAlphaValue: var_GetFloat( p_vout, "macosx-opaqueness" )];
-
- if( var_GetBool( p_real_vout, "video-on-top" ) )
- {
- [self setLevel: NSStatusWindowLevel];
- }
-
- if( !s_frame )
- {
- [self center];
- }
- }
-
- [self updateTitle];
- [self makeKeyAndOrderFront: nil];
- [self setReleasedWhenClosed: YES];
-
- /* We'll catch mouse events */
- [self setAcceptsMouseMovedEvents: YES];
- [self makeFirstResponder: self];
-