Commit 8403fa0b authored by Derk-Jan Hartman's avatar Derk-Jan Hartman

* modules/gui/macosx/macosx.m

  - added a macosx-float config option
  - changed 'opaqueness' into 'macosx-opaqueness'
* modules/gui/macosx/vout.?
  - let vout respect 'float' on top option.
  - added a toggle function to toggle float on top.
ALL:
  - menuitem and corresponding code for float on top.
parent 496c6c03
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
deinterlace = id; deinterlace = id;
doubleWindow = id; doubleWindow = id;
faster = id; faster = id;
floatOnTop = id;
forward = id; forward = id;
fullscreen = id; fullscreen = id;
halfWindow = id; halfWindow = id;
...@@ -108,6 +109,7 @@ ...@@ -108,6 +109,7 @@
"o_mi_device" = id; "o_mi_device" = id;
"o_mi_double_window" = id; "o_mi_double_window" = id;
"o_mi_faster" = id; "o_mi_faster" = id;
"o_mi_floatontop" = id;
"o_mi_fullscreen" = id; "o_mi_fullscreen" = id;
"o_mi_fwd" = id; "o_mi_fwd" = id;
"o_mi_half_window" = id; "o_mi_half_window" = id;
......
...@@ -23,8 +23,8 @@ ...@@ -23,8 +23,8 @@
</array> </array>
<key>IBOpenObjects</key> <key>IBOpenObjects</key>
<array> <array>
<integer>1411</integer>
<integer>29</integer> <integer>29</integer>
<integer>1411</integer>
</array> </array>
<key>IBSystem Version</key> <key>IBSystem Version</key>
<string>6L29</string> <string>6L29</string>
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* controls.h: MacOS X interface plugin * controls.h: MacOS X interface plugin
***************************************************************************** *****************************************************************************
* Copyright (C) 2002-2003 VideoLAN * Copyright (C) 2002-2003 VideoLAN
* $Id: controls.h,v 1.1 2003/03/06 11:43:07 hartman Exp $ * $Id: controls.h,v 1.2 2003/05/01 01:11:17 hartman Exp $
* *
* Authors: Jon Lech Johansen <jon-vl@nanocrew.net> * Authors: Jon Lech Johansen <jon-vl@nanocrew.net>
* Christophe Massiot <massiot@via.ecp.fr> * Christophe Massiot <massiot@via.ecp.fr>
...@@ -56,6 +56,7 @@ ...@@ -56,6 +56,7 @@
- (IBAction)normalWindow:(id)sender; - (IBAction)normalWindow:(id)sender;
- (IBAction)doubleWindow:(id)sender; - (IBAction)doubleWindow:(id)sender;
- (IBAction)fullscreen:(id)sender; - (IBAction)fullscreen:(id)sender;
- (IBAction)floatOnTop:(id)sender;
- (IBAction)deinterlace:(id)sender; - (IBAction)deinterlace:(id)sender;
- (IBAction)toggleProgram:(id)sender; - (IBAction)toggleProgram:(id)sender;
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* controls.m: MacOS X interface plugin * controls.m: MacOS X interface plugin
***************************************************************************** *****************************************************************************
* Copyright (C) 2002-2003 VideoLAN * Copyright (C) 2002-2003 VideoLAN
* $Id: controls.m,v 1.33 2003/04/30 14:04:53 hartman Exp $ * $Id: controls.m,v 1.34 2003/05/01 01:11:17 hartman Exp $
* *
* Authors: Jon Lech Johansen <jon-vl@nanocrew.net> * Authors: Jon Lech Johansen <jon-vl@nanocrew.net>
* Christophe Massiot <massiot@via.ecp.fr> * Christophe Massiot <massiot@via.ecp.fr>
...@@ -385,6 +385,21 @@ ...@@ -385,6 +385,21 @@
} }
} }
- (IBAction)floatOnTop:(id)sender
{
id o_window = [NSApp keyWindow];
NSArray *o_windows = [NSApp windows];
NSEnumerator *o_enumerator = [o_windows objectEnumerator];
while ((o_window = [o_enumerator nextObject]))
{
if( [[o_window className] isEqualToString: @"VLCWindow"] )
{
[o_window toggleFloatOnTop];
}
}
}
- (IBAction)deinterlace:(id)sender - (IBAction)deinterlace:(id)sender
{ {
intf_thread_t * p_intf = [NSApp getIntf]; intf_thread_t * p_intf = [NSApp getIntf];
...@@ -705,13 +720,21 @@ ...@@ -705,13 +720,21 @@
else if( [[o_mi title] isEqualToString: _NS("Fullscreen")] || else if( [[o_mi title] isEqualToString: _NS("Fullscreen")] ||
[[o_mi title] isEqualToString: _NS("Half Size")] || [[o_mi title] isEqualToString: _NS("Half Size")] ||
[[o_mi title] isEqualToString: _NS("Normal Size")] || [[o_mi title] isEqualToString: _NS("Normal Size")] ||
[[o_mi title] isEqualToString: _NS("Double Size")]) [[o_mi title] isEqualToString: _NS("Double Size")] ||
[[o_mi title] isEqualToString: _NS("Float On Top")] )
{ {
id o_window; id o_window;
NSArray *o_windows = [NSApp windows]; NSArray *o_windows = [NSApp windows];
NSEnumerator *o_enumerator = [o_windows objectEnumerator]; NSEnumerator *o_enumerator = [o_windows objectEnumerator];
bEnabled = FALSE; bEnabled = FALSE;
if ( [[o_mi title] isEqualToString: _NS("Float On Top")] )
{
int i_state = config_GetInt( p_playlist, "macosx-float" ) ?
NSOnState : NSOffState;
[o_mi setState: i_state];
}
while ((o_window = [o_enumerator nextObject])) while ((o_window = [o_enumerator nextObject]))
{ {
if( [[o_window className] isEqualToString: @"VLCWindow"] ) if( [[o_window className] isEqualToString: @"VLCWindow"] )
...@@ -721,6 +744,11 @@ ...@@ -721,6 +744,11 @@
} }
} }
} }
else if( [[o_mi title] isEqualToString: _NS("Float On Top")] )
{
bEnabled = TRUE;
}
else if( o_menu != nil && else if( o_menu != nil &&
[[o_menu title] isEqualToString: _NS("Deinterlace")] ) [[o_menu title] isEqualToString: _NS("Deinterlace")] )
{ {
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* intf.h: MacOS X interface plugin * intf.h: MacOS X interface plugin
***************************************************************************** *****************************************************************************
* Copyright (C) 2002-2003 VideoLAN * Copyright (C) 2002-2003 VideoLAN
* $Id: intf.h,v 1.33 2003/04/06 23:21:13 massiot Exp $ * $Id: intf.h,v 1.34 2003/05/01 01:11:17 hartman Exp $
* *
* Authors: Jon Lech Johansen <jon-vl@nanocrew.net> * Authors: Jon Lech Johansen <jon-vl@nanocrew.net>
* Christophe Massiot <massiot@via.ecp.fr> * Christophe Massiot <massiot@via.ecp.fr>
...@@ -188,6 +188,7 @@ struct intf_sys_t ...@@ -188,6 +188,7 @@ struct intf_sys_t
IBOutlet id o_mi_normal_window; IBOutlet id o_mi_normal_window;
IBOutlet id o_mi_double_window; IBOutlet id o_mi_double_window;
IBOutlet id o_mi_fullscreen; IBOutlet id o_mi_fullscreen;
IBOutlet id o_mi_floatontop;
IBOutlet id o_mi_screen; IBOutlet id o_mi_screen;
IBOutlet id o_mi_deinterlace; IBOutlet id o_mi_deinterlace;
IBOutlet id o_mu_deinterlace; IBOutlet id o_mu_deinterlace;
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* intf.m: MacOS X interface plugin * intf.m: MacOS X interface plugin
***************************************************************************** *****************************************************************************
* Copyright (C) 2002-2003 VideoLAN * Copyright (C) 2002-2003 VideoLAN
* $Id: intf.m,v 1.70 2003/04/15 14:05:13 hartman Exp $ * $Id: intf.m,v 1.71 2003/05/01 01:11:17 hartman Exp $
* *
* Authors: Jon Lech Johansen <jon-vl@nanocrew.net> * Authors: Jon Lech Johansen <jon-vl@nanocrew.net>
* Christophe Massiot <massiot@via.ecp.fr> * Christophe Massiot <massiot@via.ecp.fr>
...@@ -346,6 +346,7 @@ int ExecuteOnMainThread( id target, SEL sel, void * p_arg ) ...@@ -346,6 +346,7 @@ int ExecuteOnMainThread( id target, SEL sel, void * p_arg )
[o_mi_normal_window setTitle: _NS("Normal Size")]; [o_mi_normal_window setTitle: _NS("Normal Size")];
[o_mi_double_window setTitle: _NS("Double Size")]; [o_mi_double_window setTitle: _NS("Double Size")];
[o_mi_fullscreen setTitle: _NS("Fullscreen")]; [o_mi_fullscreen setTitle: _NS("Fullscreen")];
[o_mi_floatontop setTitle: _NS("Float On Top")];
[o_mi_screen setTitle: _NS("Screen")]; [o_mi_screen setTitle: _NS("Screen")];
[o_mi_deinterlace setTitle: _NS("Deinterlace")]; [o_mi_deinterlace setTitle: _NS("Deinterlace")];
[o_mu_deinterlace setTitle: _NS("Deinterlace")]; [o_mu_deinterlace setTitle: _NS("Deinterlace")];
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* macosx.m: MacOS X plugin for vlc * macosx.m: MacOS X plugin for vlc
***************************************************************************** *****************************************************************************
* Copyright (C) 2001-2003 VideoLAN * Copyright (C) 2001-2003 VideoLAN
* $Id: macosx.m,v 1.7 2003/04/19 13:55:56 hartman Exp $ * $Id: macosx.m,v 1.8 2003/05/01 01:11:17 hartman Exp $
* *
* Authors: Colin Delacroix <colin@zoy.org> * Authors: Colin Delacroix <colin@zoy.org>
* Eugenio Jarosiewicz <ej0@cise.ufl.edu> * Eugenio Jarosiewicz <ej0@cise.ufl.edu>
...@@ -50,6 +50,10 @@ void E_(CloseVideo) ( vlc_object_t * ); ...@@ -50,6 +50,10 @@ void E_(CloseVideo) ( vlc_object_t * );
#define OPAQUENESS_LONGTEXT N_( \ #define OPAQUENESS_LONGTEXT N_( \
"Set the transparency of the video output. 1 is non-transparent (default) " \ "Set the transparency of the video output. 1 is non-transparent (default) " \
"0 is fully transparent.") "0 is fully transparent.")
#define FLOAT_TEXT N_("float on top")
#define FLOAT_LONGTEXT N_( \
"Let the video window float on top of other windows.")
vlc_module_begin(); vlc_module_begin();
set_description( _("MacOS X interface, sound and video") ); set_description( _("MacOS X interface, sound and video") );
...@@ -61,6 +65,7 @@ vlc_module_begin(); ...@@ -61,6 +65,7 @@ vlc_module_begin();
set_callbacks( E_(OpenVideo), E_(CloseVideo) ); set_callbacks( E_(OpenVideo), E_(CloseVideo) );
add_category_hint( N_("Video"), NULL, VLC_FALSE ); add_category_hint( N_("Video"), NULL, VLC_FALSE );
add_integer( "macosx-vdev", 0, NULL, VDEV_TEXT, VDEV_TEXT, VLC_FALSE ); add_integer( "macosx-vdev", 0, NULL, VDEV_TEXT, VDEV_TEXT, VLC_FALSE );
add_float( "opaqueness", 1, NULL, OPAQUENESS_TEXT, OPAQUENESS_LONGTEXT, VLC_FALSE ); add_float( "macosx-opaqueness", 1, NULL, OPAQUENESS_TEXT, OPAQUENESS_LONGTEXT, VLC_FALSE );
add_bool( "macosx-float", 0, NULL, FLOAT_TEXT, FLOAT_LONGTEXT, VLC_FALSE );
vlc_module_end(); vlc_module_end();
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* vout.h: MacOS X interface plugin * vout.h: MacOS X interface plugin
***************************************************************************** *****************************************************************************
* Copyright (C) 2001-2003 VideoLAN * Copyright (C) 2001-2003 VideoLAN
* $Id: vout.h,v 1.10 2003/03/06 11:43:07 hartman Exp $ * $Id: vout.h,v 1.11 2003/05/01 01:11:17 hartman Exp $
* *
* Authors: Colin Delacroix <colin@zoy.org> * Authors: Colin Delacroix <colin@zoy.org>
* Florian G. Pflug <fgp@phlo.org> * Florian G. Pflug <fgp@phlo.org>
...@@ -35,6 +35,7 @@ ...@@ -35,6 +35,7 @@
- (vout_thread_t *)getVout; - (vout_thread_t *)getVout;
- (void)scaleWindowWithFactor: (float)factor; - (void)scaleWindowWithFactor: (float)factor;
- (void)toggleFloatOnTop;
- (void)toggleFullscreen; - (void)toggleFullscreen;
- (BOOL)isFullscreen; - (BOOL)isFullscreen;
- (void)updateTitle; - (void)updateTitle;
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* vout.m: MacOS X video output plugin * vout.m: MacOS X video output plugin
***************************************************************************** *****************************************************************************
* Copyright (C) 2001-2003 VideoLAN * Copyright (C) 2001-2003 VideoLAN
* $Id: vout.m,v 1.44 2003/04/19 13:55:56 hartman Exp $ * $Id: vout.m,v 1.45 2003/05/01 01:11:17 hartman Exp $
* *
* Authors: Colin Delacroix <colin@zoy.org> * Authors: Colin Delacroix <colin@zoy.org>
* Florian G. Pflug <fgp@phlo.org> * Florian G. Pflug <fgp@phlo.org>
...@@ -818,6 +818,20 @@ static void QTFreePicture( vout_thread_t *p_vout, picture_t *p_pic ) ...@@ -818,6 +818,20 @@ static void QTFreePicture( vout_thread_t *p_vout, picture_t *p_pic )
} }
} }
- (void)toggleFloatOnTop
{
if( config_GetInt( p_vout, "macosx-float" ) )
{
config_PutInt( p_vout, "macosx-float", 0 );
[p_vout->p_sys->o_window setLevel: NSNormalWindowLevel];
}
else
{
config_PutInt( p_vout, "macosx-float", 1 );
[p_vout->p_sys->o_window setLevel: NSStatusWindowLevel];
}
}
- (void)toggleFullscreen - (void)toggleFullscreen
{ {
p_vout->i_changes |= VOUT_FULLSCREEN_CHANGE; p_vout->i_changes |= VOUT_FULLSCREEN_CHANGE;
...@@ -1256,8 +1270,13 @@ static void QTFreePicture( vout_thread_t *p_vout, picture_t *p_pic ) ...@@ -1256,8 +1270,13 @@ static void QTFreePicture( vout_thread_t *p_vout, picture_t *p_pic )
backing: NSBackingStoreBuffered backing: NSBackingStoreBuffered
defer: NO screen: o_screen]; defer: NO screen: o_screen];
[p_vout->p_sys->o_window setAlphaValue: config_GetFloat( p_vout, "opaqueness" )]; [p_vout->p_sys->o_window setAlphaValue: config_GetFloat( p_vout, "macosx-opaqueness" )];
if( config_GetInt( p_vout, "macosx-float" ) )
{
[p_vout->p_sys->o_window setLevel: NSStatusWindowLevel];
}
if( !p_vout->p_sys->b_pos_saved ) if( !p_vout->p_sys->b_pos_saved )
{ {
[p_vout->p_sys->o_window center]; [p_vout->p_sys->o_window center];
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment