Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc
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
Commits
23ab7c47
Commit
23ab7c47
authored
Nov 23, 2013
by
David Fuhrmann
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
macosx: Use enum to distinguish different events for playlist / main window states
No functional change.
parent
a1e8dd24
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
57 additions
and
49 deletions
+57
-49
extras/package/macosx/Resources/English.lproj/MainWindow.xib
extras/package/macosx/Resources/English.lproj/MainWindow.xib
+18
-18
modules/gui/macosx/ControlsBar.h
modules/gui/macosx/ControlsBar.h
+2
-0
modules/gui/macosx/ControlsBar.m
modules/gui/macosx/ControlsBar.m
+5
-0
modules/gui/macosx/MainMenu.m
modules/gui/macosx/MainMenu.m
+1
-1
modules/gui/macosx/MainWindow.h
modules/gui/macosx/MainWindow.h
+8
-1
modules/gui/macosx/MainWindow.m
modules/gui/macosx/MainWindow.m
+21
-26
modules/gui/macosx/intf.m
modules/gui/macosx/intf.m
+2
-3
No files found.
extras/package/macosx/Resources/English.lproj/MainWindow.xib
View file @
23ab7c47
...
...
@@ -21,10 +21,10 @@
</object>
<object
class=
"NSMutableArray"
key=
"IBDocument.EditedObjectIDs"
>
<bool
key=
"EncodedWithXMLCoder"
>
YES
</bool>
<integer
value=
"4756"
/>
<integer
value=
"4722"
/>
<integer
value=
"4850"
/>
<integer
value=
"5260"
/>
<integer
value=
"21"
/>
<integer
value=
"4722"
/>
</object>
<object
class=
"NSArray"
key=
"IBDocument.PluginDependencies"
>
<bool
key=
"EncodedWithXMLCoder"
>
YES
</bool>
...
...
@@ -1829,14 +1829,6 @@
</object>
<int
key=
"connectionID"
>
4666
</int>
</object>
<object
class=
"IBConnectionRecord"
>
<object
class=
"IBActionConnection"
key=
"connection"
>
<string
key=
"label"
>
togglePlaylist:
</string>
<reference
key=
"source"
ref=
"498338108"
/>
<reference
key=
"destination"
ref=
"955174811"
/>
</object>
<int
key=
"connectionID"
>
4674
</int>
</object>
<object
class=
"IBConnectionRecord"
>
<object
class=
"IBOutletConnection"
key=
"connection"
>
<string
key=
"label"
>
o_split_view
</string>
...
...
@@ -2493,6 +2485,14 @@
</object>
<int
key=
"connectionID"
>
5603
</int>
</object>
<object
class=
"IBConnectionRecord"
>
<object
class=
"IBActionConnection"
key=
"connection"
>
<string
key=
"label"
>
togglePlaylist:
</string>
<reference
key=
"source"
ref=
"878580547"
/>
<reference
key=
"destination"
ref=
"955174811"
/>
</object>
<int
key=
"connectionID"
>
5604
</int>
</object>
</object>
<object
class=
"IBMutableOrderedSet"
key=
"objectRecords"
>
<object
class=
"NSArray"
key=
"orderedObjects"
>
...
...
@@ -4064,7 +4064,7 @@
</object>
</object>
<nil
key=
"sourceID"
/>
<int
key=
"maxID"
>
560
3
</int>
<int
key=
"maxID"
>
560
4
</int>
</object>
<object
class=
"IBClassDescriber"
key=
"IBDocument.Classes"
>
<object
class=
"NSMutableArray"
key=
"referencedPartialClassDescriptions"
>
...
...
@@ -4687,7 +4687,6 @@
<string>
dropzoneButtonAction:
</string>
<string>
removePodcast:
</string>
<string>
removePodcastWindowAction:
</string>
<string>
togglePlaylist:
</string>
</object>
<object
class=
"NSMutableArray"
key=
"dict.values"
>
<bool
key=
"EncodedWithXMLCoder"
>
YES
</bool>
...
...
@@ -4696,7 +4695,6 @@
<string>
id
</string>
<string>
id
</string>
<string>
id
</string>
<string>
id
</string>
</object>
</object>
<object
class=
"NSMutableDictionary"
key=
"actionInfosByName"
>
...
...
@@ -4708,7 +4706,6 @@
<string>
dropzoneButtonAction:
</string>
<string>
removePodcast:
</string>
<string>
removePodcastWindowAction:
</string>
<string>
togglePlaylist:
</string>
</object>
<object
class=
"NSMutableArray"
key=
"dict.values"
>
<bool
key=
"EncodedWithXMLCoder"
>
YES
</bool>
...
...
@@ -4732,10 +4729,6 @@
<string
key=
"name"
>
removePodcastWindowAction:
</string>
<string
key=
"candidateClassName"
>
id
</string>
</object>
<object
class=
"IBActionInfo"
>
<string
key=
"name"
>
togglePlaylist:
</string>
<string
key=
"candidateClassName"
>
id
</string>
</object>
</object>
</object>
<object
class=
"NSMutableDictionary"
key=
"outlets"
>
...
...
@@ -4961,6 +4954,7 @@
<string>
repeat:
</string>
<string>
shuffle:
</string>
<string>
stop:
</string>
<string>
togglePlaylist:
</string>
<string>
volumeAction:
</string>
</object>
<object
class=
"NSMutableArray"
key=
"dict.values"
>
...
...
@@ -4970,6 +4964,7 @@
<string>
id
</string>
<string>
id
</string>
<string>
id
</string>
<string>
id
</string>
</object>
</object>
<object
class=
"NSMutableDictionary"
key=
"actionInfosByName"
>
...
...
@@ -4980,6 +4975,7 @@
<string>
repeat:
</string>
<string>
shuffle:
</string>
<string>
stop:
</string>
<string>
togglePlaylist:
</string>
<string>
volumeAction:
</string>
</object>
<object
class=
"NSMutableArray"
key=
"dict.values"
>
...
...
@@ -5000,6 +4996,10 @@
<string
key=
"name"
>
stop:
</string>
<string
key=
"candidateClassName"
>
id
</string>
</object>
<object
class=
"IBActionInfo"
>
<string
key=
"name"
>
togglePlaylist:
</string>
<string
key=
"candidateClassName"
>
id
</string>
</object>
<object
class=
"IBActionInfo"
>
<string
key=
"name"
>
volumeAction:
</string>
<string
key=
"candidateClassName"
>
id
</string>
...
...
modules/gui/macosx/ControlsBar.h
View file @
23ab7c47
...
...
@@ -145,6 +145,8 @@
-
(
void
)
setShuffle
;
-
(
IBAction
)
shuffle
:(
id
)
sender
;
-
(
IBAction
)
togglePlaylist
:(
id
)
sender
;
-
(
void
)
toggleEffectsButton
;
-
(
void
)
toggleJumpButtons
;
-
(
void
)
togglePlaymodeButtons
;
...
...
modules/gui/macosx/ControlsBar.m
View file @
23ab7c47
...
...
@@ -1062,6 +1062,11 @@ else \
[
self
setShuffle
];
}
-
(
IBAction
)
togglePlaylist
:(
id
)
sender
{
[[[
VLCMain
sharedInstance
]
mainWindow
]
changePlaylistState
:
psUserEvent
];
}
-
(
IBAction
)
volumeAction
:(
id
)
sender
{
if
(
sender
==
o_volume_sld
)
...
...
modules/gui/macosx/MainMenu.m
View file @
23ab7c47
...
...
@@ -1128,7 +1128,7 @@ static VLCMainMenu *_o_sharedInstance = nil;
-
(
IBAction
)
showPlaylist
:(
id
)
sender
{
[[
VLCMainWindow
sharedInstance
]
togglePlaylist
:
sender
];
[[
VLCMainWindow
sharedInstance
]
changePlaylistState
:
psUserMenuEvent
];
}
#pragma mark -
...
...
modules/gui/macosx/MainWindow.h
View file @
23ab7c47
...
...
@@ -42,6 +42,13 @@
@class
VLCMainWindowControlsBar
;
@class
VLCVoutView
;
typedef
enum
{
psUserEvent
,
psUserMenuEvent
,
psVideoStartedOrStoppedEvent
,
psPlaylistItemChangedEvent
}
VLCPlaylistStateEvent
;
@interface
VLCMainWindow
:
VLCVideoWindowCommon
<
PXSourceListDataSource
,
PXSourceListDelegate
,
NSWindowDelegate
,
NSAnimationDelegate
,
NSSplitViewDelegate
>
{
IBOutlet
id
o_search_fld
;
...
...
@@ -105,7 +112,7 @@
-
(
VLCMainWindowControlsBar
*
)
controlsBar
;
-
(
IBAction
)
togglePlaylist
:(
id
)
sender
;
-
(
void
)
changePlaylistState
:(
VLCPlaylistStateEvent
)
event
;
-
(
IBAction
)
dropzoneButtonAction
:(
id
)
sender
;
...
...
modules/gui/macosx/MainWindow.m
View file @
23ab7c47
...
...
@@ -476,55 +476,48 @@ static VLCMainWindow *_o_sharedInstance = nil;
[
self
makeFirstResponder
:
[[
o_video_view
subviews
]
objectAtIndex
:
0
]];
}
// only exception for an controls bar button action
-
(
IBAction
)
togglePlaylist
:(
id
)
sender
-
(
void
)
changePlaylistState
:(
VLCPlaylistStateEvent
)
event
{
// Beware, this code is really ugly
/*
* sender can be:
* - nil if video playback is started or stopped
* - NSNumber with 1 if playlist item changes --> show video view
* - sender object if triggered through menu item or button
*/
BOOL
b_unhide_videoview
=
NO
;
if
([
sender
isKindOfClass
:
[
NSNumber
class
]]
&&
[
sender
intValue
]
==
1
)
{
b_unhide_videoview
=
YES
;
sender
=
nil
;
}
msg_Dbg
(
VLCIntf
,
"toggle playlist from state: removed splitview %i, minimized view %i. Sender is %p, unhide video view %i"
,
b_splitview_removed
,
b_minimized_view
,
sender
,
b_unhide_videoview
);
if
(
!
[
self
isVisible
]
&&
sender
!=
nil
)
{
[
self
makeKeyAndOrderFront
:
sender
];
msg_Dbg
(
VLCIntf
,
"toggle playlist from state: removed splitview %i, minimized view %i. Event %i"
,
b_splitview_removed
,
b_minimized_view
,
event
);
if
(
!
[
self
isVisible
]
&&
event
==
psUserMenuEvent
)
{
[
self
makeKeyAndOrderFront
:
nil
];
return
;
}
BOOL
b_activeVideo
=
[[
VLCMain
sharedInstance
]
activeVideoPlayback
];
BOOL
b_restored
=
NO
;
// ignore alt if triggered through main menu shortcut
BOOL
b_have_alt_key
=
([[
NSApp
currentEvent
]
modifierFlags
]
&
NSAlternateKeyMask
)
!=
0
;
if
(
sender
&&
[
sender
isKindOfClass
:
[
NSMenuItem
class
]]
)
if
(
event
==
psUserMenuEvent
)
b_have_alt_key
=
NO
;
// eUserMenuEvent is now handled same as eUserEvent
if
(
event
==
psUserMenuEvent
)
event
=
psUserEvent
;
if
(
b_dropzone_active
&&
b_have_alt_key
)
{
[
self
hideDropZone
];
return
;
}
if
(
!
(
b_nativeFullscreenMode
&&
b_fullscreen
)
&&
!
b_splitview_removed
&&
((
b_have_alt_key
&&
b_activeVideo
)
||
(
b_nonembedded
&&
sender
!=
nil
)
||
(
!
b_activeVideo
&&
sender
!=
nil
)
||
(
b_minimized_view
&&
sender
==
nil
&&
b_unhide_videoview
==
NO
)))
{
||
(
b_nonembedded
&&
event
==
psUserEvent
)
||
(
!
b_activeVideo
&&
event
==
psUserEvent
)
||
(
b_minimized_view
&&
event
==
psVideoStartedOrStoppedEvent
)))
{
// for starting playback, window is resized through resized events
// for stopping playback, resize through reset to previous frame
[
self
hideSplitView
:
sender
!=
nil
];
[
self
hideSplitView
:
event
!=
psVideoStartedOrStoppedEvent
];
b_minimized_view
=
NO
;
}
else
{
if
(
b_splitview_removed
)
{
if
(
!
b_nonembedded
||
(
sender
!=
nil
&&
b_nonembedded
))
[
self
showSplitView
:
sender
!=
nil
||
b_unhide_videoview
];
if
(
!
b_nonembedded
||
(
event
==
psUserEvent
&&
b_nonembedded
))
[
self
showSplitView
:
event
!=
psVideoStartedOrStoppedEvent
];
if
(
sender
==
nil
)
if
(
event
!=
psUserEvent
)
b_minimized_view
=
YES
;
else
b_minimized_view
=
NO
;
...
...
@@ -534,7 +527,7 @@ static VLCMainWindow *_o_sharedInstance = nil;
}
if
(
!
b_nonembedded
)
{
if
(([
o_video_view
isHidden
]
&&
b_activeVideo
)
||
b_restored
||
(
b_activeVideo
&&
sender
==
nil
))
if
(([
o_video_view
isHidden
]
&&
b_activeVideo
)
||
b_restored
||
(
b_activeVideo
&&
event
!=
psUserEvent
))
[
self
makeSplitViewHidden
];
else
[
self
makeSplitViewVisible
];
...
...
@@ -815,6 +808,8 @@ static VLCMainWindow *_o_sharedInstance = nil;
[
o_fspanel
setNonActive
:
nil
];
}
}
[
self
changePlaylistState
:
psVideoStartedOrStoppedEvent
];
}
#pragma mark -
...
...
modules/gui/macosx/intf.m
View file @
23ab7c47
...
...
@@ -1268,7 +1268,7 @@ static VLCMain *_o_sharedMainInstance = nil;
#pragma mark -
#pragma mark Interface updaters
// This must be called on main thread
-
(
void
)
PlaylistItemChanged
{
if
(
p_current_input
&&
(
p_current_input
->
b_dead
||
!
vlc_object_alive
(
p_current_input
)))
{
...
...
@@ -1287,7 +1287,7 @@ static VLCMain *_o_sharedMainInstance = nil;
[
o_mainmenu
setRateControlsEnabled
:
YES
];
if
([
self
activeVideoPlayback
]
&&
[[
o_mainwindow
videoView
]
isHidden
])
{
[
o_mainwindow
performSelectorOnMainThread
:
@selector
(
togglePlaylist
:)
withObject
:
[
NSNumber
numberWithInt
:
1
]
waitUntilDone
:
NO
];
[
o_mainwindow
changePlaylistState
:
psPlaylistItemChangedEvent
];
}
p_input_changed
=
vlc_object_hold
(
p_current_input
);
...
...
@@ -1538,7 +1538,6 @@ static VLCMain *_o_sharedMainInstance = nil;
b_active_videoplayback
=
b_value
;
if
(
o_mainwindow
)
{
[
o_mainwindow
performSelectorOnMainThread
:
@selector
(
setVideoplayEnabled
)
withObject
:
nil
waitUntilDone
:
YES
];
[
o_mainwindow
performSelectorOnMainThread
:
@selector
(
togglePlaylist
:)
withObject
:
nil
waitUntilDone
:
NO
];
}
// update sleep blockers
...
...
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