Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-2-2
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc-2-2
Commits
9288133f
Commit
9288133f
authored
Jul 23, 2012
by
David Fuhrmann
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
macosx: re-implement macosx-background
refs #5174
parent
9bd356e5
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
90 additions
and
39 deletions
+90
-39
NEWS
NEWS
+1
-0
modules/gui/macosx/MainWindow.h
modules/gui/macosx/MainWindow.h
+2
-0
modules/gui/macosx/MainWindow.m
modules/gui/macosx/MainWindow.m
+80
-38
modules/gui/macosx/intf.m
modules/gui/macosx/intf.m
+3
-0
modules/gui/macosx/macosx.m
modules/gui/macosx/macosx.m
+4
-1
No files found.
NEWS
View file @
9288133f
...
...
@@ -58,6 +58,7 @@ Mac OS X Interface:
* added an option to hide the shuffle and repeat buttons
* added optional playlist columns for track number, genre, album, description,
date and language.
* add an option to play videos as a desktop background
Removed modules:
* portaudio audio output
...
...
modules/gui/macosx/MainWindow.h
View file @
9288133f
...
...
@@ -141,6 +141,8 @@
VLCColorView
*
o_color_backdrop
;
NSInteger
i_originalLevel
;
NSRect
previousSavedFrame
;
VLCWindow
*
o_extra_video_window
;
}
+
(
VLCMainWindow
*
)
sharedInstance
;
...
...
modules/gui/macosx/MainWindow.m
View file @
9288133f
...
...
@@ -148,6 +148,10 @@ static VLCMainWindow *_o_sharedInstance = nil;
[[
NSNotificationCenter
defaultCenter
]
removeObserver
:
self
];
[
o_sidebaritems
release
];
if
(
o_extra_video_window
)
[
o_extra_video_window
release
];
[
super
dealloc
];
}
...
...
@@ -1018,7 +1022,7 @@ static VLCMainWindow *_o_sharedInstance = nil;
[
o_playlist_table
setHidden
:
NO
];
[
o_video_view
setHidden
:
!
b_activeVideo
];
if
(
b_activeVideo
&&
[[
o_video_view
subviews
]
count
]
>
0
)
[
o_detached_video_window
makeFirstResponder
:
[[
o_video_view
subviews
]
objectAtIndex
:
0
]];
[
[
o_video_view
window
]
makeFirstResponder
:
[[
o_video_view
subviews
]
objectAtIndex
:
0
]];
}
}
}
...
...
@@ -1744,52 +1748,88 @@ static VLCMainWindow *_o_sharedInstance = nil;
-
(
id
)
setupVideoView
{
vout_thread_t
*
p_vout
=
getVout
();
if
((
config_GetInt
(
VLCIntf
,
"embedded-video"
)
||
b_nativeFullscreenMode
)
&&
b_video_deco
)
if
(
config_GetInt
(
VLCIntf
,
"macosx-background"
)
)
{
if
([
o_video_view
window
]
!=
self
)
{
msg_Dbg
(
VLCIntf
,
"Creating background window"
);
NSScreen
*
screen
=
[
NSScreen
screenWithDisplayID
:(
CGDirectDisplayID
)
config_GetInt
(
VLCIntf
,
"macosx-vdev"
)];
if
(
!
screen
)
screen
=
[
self
screen
];
NSRect
screen_rect
=
[
screen
frame
];
if
(
o_extra_video_window
)
[
o_extra_video_window
release
];
o_extra_video_window
=
[[
VLCWindow
alloc
]
initWithContentRect
:
screen_rect
styleMask
:
NSBorderlessWindowMask
backing
:
NSBackingStoreBuffered
defer
:
NO
];
[
o_extra_video_window
setLevel
:
CGWindowLevelForKey
(
kCGDesktopWindowLevelKey
)
+
1
];
[
o_extra_video_window
setBackgroundColor
:
[
NSColor
blackColor
]];
[
o_extra_video_window
setCanBecomeKeyWindow
:
NO
];
[
o_extra_video_window
setCanBecomeMainWindow
:
NO
];
[
o_extra_video_window
useOptimizedDrawing
:
YES
];
[
o_extra_video_window
setMovableByWindowBackground
:
NO
];
[
o_video_view
retain
];
if
([
o_video_view
superview
]
!=
NULL
)
[
o_video_view
removeFromSuperviewWithoutNeedingDisplay
];
[
o_video_view
setFrame
:
[
o_split_view
frame
]];
[[
self
contentView
]
addSubview
:
o_video_view
positioned
:
NSWindowAbove
relativeTo
:
nil
];
}
b_nonembedded
=
NO
;
screen_rect
.
origin
.
x
=
screen_rect
.
origin
.
y
=
0
;
[
o_video_view
setFrame
:
screen_rect
];
[[
o_extra_video_window
contentView
]
addSubview
:
o_video_view
positioned
:
NSWindowAbove
relativeTo
:
nil
];
[
o_video_view
release
];
[
o_extra_video_window
orderBack
:
nil
];
b_nonembedded
=
YES
;
}
else
{
if
([
o_video_view
superview
]
!=
NULL
)
[
o_video_view
removeFromSuperviewWithoutNeedingDisplay
];
NSRect
frame
=
[
o_detached_video_window
frame
];
NSRect
videoFrame
=
[
o_video_view
frame
];
frame
.
size
.
width
=
videoFrame
.
size
.
width
;
if
(
b_video_deco
)
frame
.
size
.
height
=
videoFrame
.
size
.
height
+
[
o_detached_bottombar_view
frame
].
size
.
height
+
[
o_titlebar_view
frame
].
size
.
height
;
if
((
config_GetInt
(
VLCIntf
,
"embedded-video"
)
||
b_nativeFullscreenMode
)
&&
b_video_deco
)
{
if
([
o_video_view
window
]
!=
self
)
{
[
o_video_view
removeFromSuperviewWithoutNeedingDisplay
];
[
o_video_view
setFrame
:
[
o_split_view
frame
]];
[[
self
contentView
]
addSubview
:
o_video_view
positioned
:
NSWindowAbove
relativeTo
:
nil
];
}
b_nonembedded
=
NO
;
}
else
{
frame
.
size
.
height
=
videoFrame
.
size
.
height
;
videoFrame
.
origin
.
y
=
.
0
;
videoFrame
.
origin
.
x
=
.
0
;
[
o_video_view
setFrame
:
videoFrame
];
if
([
o_video_view
superview
]
!=
NULL
)
[
o_video_view
removeFromSuperviewWithoutNeedingDisplay
];
NSRect
frame
=
[
o_detached_video_window
frame
];
NSRect
videoFrame
=
[
o_video_view
frame
];
frame
.
size
.
width
=
videoFrame
.
size
.
width
;
if
(
b_video_deco
)
frame
.
size
.
height
=
videoFrame
.
size
.
height
+
[
o_detached_bottombar_view
frame
].
size
.
height
+
[
o_titlebar_view
frame
].
size
.
height
;
else
{
frame
.
size
.
height
=
videoFrame
.
size
.
height
;
videoFrame
.
origin
.
y
=
.
0
;
videoFrame
.
origin
.
x
=
.
0
;
[
o_video_view
setFrame
:
videoFrame
];
}
[
o_detached_video_window
setFrame
:
frame
display
:
NO
];
[[
o_detached_video_window
contentView
]
addSubview
:
o_video_view
positioned
:
NSWindowAbove
relativeTo
:
nil
];
[
o_detached_video_window
setLevel
:
NSNormalWindowLevel
];
[
o_detached_video_window
useOptimizedDrawing
:
YES
];
[
o_detached_video_window
center
];
b_nonembedded
=
YES
;
}
[[
o_video_view
window
]
makeKeyAndOrderFront
:
self
];
vout_thread_t
*
p_vout
=
getVout
();
if
(
p_vout
)
{
if
(
var_GetBool
(
p_vout
,
"video-on-top"
)
)
[[
o_video_view
window
]
setLevel
:
NSStatusWindowLevel
];
else
[[
o_video_view
window
]
setLevel
:
NSNormalWindowLevel
];
vlc_object_release
(
p_vout
);
}
[
o_detached_video_window
setFrame
:
frame
display
:
NO
];
[[
o_detached_video_window
contentView
]
addSubview
:
o_video_view
positioned
:
NSWindowAbove
relativeTo
:
nil
];
[
o_detached_video_window
setLevel
:
NSNormalWindowLevel
];
[
o_detached_video_window
useOptimizedDrawing
:
YES
];
[
o_detached_video_window
center
];
b_nonembedded
=
YES
;
}
[[
o_video_view
window
]
makeKeyAndOrderFront
:
self
];
[[
o_video_view
window
]
setAlphaValue
:
config_GetFloat
(
VLCIntf
,
"macosx-opaqueness"
)];
if
(
p_vout
)
{
if
(
var_GetBool
(
p_vout
,
"video-on-top"
)
)
[[
o_video_view
window
]
setLevel
:
NSStatusWindowLevel
];
else
[[
o_video_view
window
]
setLevel
:
NSNormalWindowLevel
];
vlc_object_release
(
p_vout
);
}
[[
o_video_view
window
]
setAlphaValue
:
config_GetFloat
(
VLCIntf
,
"macosx-opaqueness"
)];
return
o_video_view
;
}
...
...
@@ -1806,6 +1846,8 @@ static VLCMainWindow *_o_sharedInstance = nil;
{
[
self
makeFirstResponder
:
nil
];
[
o_detached_video_window
orderOut
:
nil
];
if
(
o_extra_video_window
)
[
o_extra_video_window
orderOut
:
nil
];
if
(
[
self
level
]
!=
NSNormalWindowLevel
)
[
self
setLevel
:
NSNormalWindowLevel
];
...
...
@@ -1885,7 +1927,7 @@ static VLCMainWindow *_o_sharedInstance = nil;
{
nativeVideoSize
=
size
;
if
(
config_GetInt
(
VLCIntf
,
"macosx-video-autoresize"
)
&&
!
b_fullscreen
)
if
(
config_GetInt
(
VLCIntf
,
"macosx-video-autoresize"
)
&&
!
b_fullscreen
&&
!
config_GetInt
(
VLCIntf
,
"macosx-background"
)
)
[
self
performSelectorOnMainThread
:
@selector
(
resizeWindow
)
withObject
:
nil
waitUntilDone
:
NO
];
}
...
...
modules/gui/macosx/intf.m
View file @
9288133f
...
...
@@ -1655,6 +1655,9 @@ unsigned int CocoaKeyToVLC( unichar i_key )
-
(
void
)
setWindowLevel
:(
NSNumber
*
)
state
{
if
(
config_GetInt
(
p_intf
,
"macosx-background"
)
)
return
;
if
([
state
unsignedIntValue
]
&
VOUT_WINDOW_STATE_ABOVE
)
[[[[
VLCMainWindow
sharedInstance
]
videoView
]
window
]
setLevel
:
NSStatusWindowLevel
];
else
...
...
modules/gui/macosx/macosx.m
View file @
9288133f
...
...
@@ -113,6 +113,9 @@ void WindowClose ( vout_window_t * );
#define PLAYMODEBUTTONS_TEXT N_( "Show play mode control buttons" )
#define PLAYMODEBUTTONS_LONGTEXT N_( "Shows the shuffle and repeat buttons in the main window" )
#define BACKGROUND_TEXT N_( "Use as desktop background" )
#define BACKGROUND_LONGTEXT N_( "Use the video as the desktop background." )
vlc_module_begin ()
set_description( N_("Mac OS X interface") )
set_capability( "interface", 200 )
...
...
@@ -129,7 +132,6 @@ vlc_module_begin ()
add_bool( "macosx-interfacestyle", false, INTERFACE_STYLE_TEXT, INTERFACE_STYLE_LONGTEXT, false )
add_bool( "macosx-nativefullscreenmode", false, NATIVE_FULLSCREEN_MODE_ON_LION_TEXT, NATIVE_FULLSCREEN_MODE_ON_LION_LONGTEXT, false )
add_obsolete_bool( "macosx-stretch" ) /* since 2.0.0 */
add_obsolete_bool( "macosx-background" ) /* since 2.0.0 */
add_obsolete_bool( "macosx-eq-keep" ) /* since 2.0.0 */
add_obsolete_bool( "macosx-autosave-volume" ) /* since 2.1.0 */
add_bool( "macosx-video-autoresize", true, KEEPSIZE_TEXT, KEEPSIZE_LONGTEXT, false )
...
...
@@ -138,6 +140,7 @@ vlc_module_begin ()
add_bool( "macosx-icon-change", true, ICONCHANGE_TEXT, ICONCHANGE_LONGTEXT, true )
add_bool( "macosx-show-playback-buttons", false, JUMPBUTTONS_TEXT, JUMPBUTTONS_LONGTEXT, false )
add_bool( "macosx-show-playmode-buttons", true, PLAYMODEBUTTONS_TEXT, PLAYMODEBUTTONS_LONGTEXT, false )
add_bool( "macosx-background", false, BACKGROUND_TEXT, BACKGROUND_LONGTEXT, false )
add_submodule ()
set_description( "Mac OS X Video Output Provider" )
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment