vlc | branch: master | David Fuhrmann <[email protected]> | Sat Jul  1 
12:01:26 2017 +0200| [fa94ead8f4f45872c6b6ad5f828adea0a28eff62] | committer: 
David Fuhrmann

macosx: Fix animation of prev / next buttons

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=fa94ead8f4f45872c6b6ad5f828adea0a28eff62
---

 modules/gui/macosx/UI/MainWindow.xib          |  4 ++
 modules/gui/macosx/VLCMainWindowControlsBar.h |  2 +
 modules/gui/macosx/VLCMainWindowControlsBar.m | 77 ++++++++++++---------------
 3 files changed, 39 insertions(+), 44 deletions(-)

diff --git a/modules/gui/macosx/UI/MainWindow.xib 
b/modules/gui/macosx/UI/MainWindow.xib
index a022c51372..67b8d1c5e0 100644
--- a/modules/gui/macosx/UI/MainWindow.xib
+++ b/modules/gui/macosx/UI/MainWindow.xib
@@ -450,6 +450,7 @@
                                             <button 
translatesAutoresizingMaskIntoConstraints="NO" id="qfh-30-nky" 
userLabel="Previous Button">
                                                 <rect key="frame" x="0.0" 
y="0.0" width="29" height="23"/>
                                                 <constraints>
+                                                    <constraint 
firstAttribute="width" constant="29" id="bP7-Ec-OLG"/>
                                                     <constraint 
firstAttribute="height" constant="23" id="bsS-LC-mxp"/>
                                                 </constraints>
                                                 <buttonCell key="cell" 
type="bevel" bezelStyle="regularSquare" image="previous-6btns" 
imagePosition="only" alignment="center" alternateImage="previous-6btns-pressed" 
continuous="YES" enabled="NO" id="KXm-ys-zEA">
@@ -503,6 +504,7 @@
                                                 <rect key="frame" x="112" 
y="0.0" width="29" height="23"/>
                                                 <constraints>
                                                     <constraint 
firstAttribute="height" constant="23" id="Icc-CC-PIU"/>
+                                                    <constraint 
firstAttribute="width" constant="29" id="uPv-u5-I21"/>
                                                 </constraints>
                                                 <buttonCell key="cell" 
type="bevel" bezelStyle="regularSquare" image="next-6btns" imagePosition="only" 
alignment="center" alternateImage="next-6btns-pressed" continuous="YES" 
enabled="NO" id="tLR-jN-43M">
                                                     <behavior key="behavior" 
lightByContents="YES"/>
@@ -848,9 +850,11 @@
                 <outlet property="forwardButton" destination="3648" 
id="0bA-YS-tkr"/>
                 <outlet property="fullscreenButton" destination="4419" 
id="hgS-Tk-jle"/>
                 <outlet property="nextButton" destination="HBS-xq-EkN" 
id="MIO-Ba-jDH"/>
+                <outlet property="nextButtonWidthConstraint" 
destination="uPv-u5-I21" id="Lsk-Nu-vmn"/>
                 <outlet property="playButton" destination="3571" 
id="5Mf-48-Ga9"/>
                 <outlet property="playlistButton" destination="4671" 
id="AZd-5b-MrA"/>
                 <outlet property="prevButton" destination="qfh-30-nky" 
id="uN2-nC-7Mt"/>
+                <outlet property="prevButtonWidthConstraint" 
destination="bP7-Ec-OLG" id="qs4-ok-Ual"/>
                 <outlet property="progressBar" destination="3584" 
id="d57-az-Grm"/>
                 <outlet property="progressView" destination="5335" 
id="dBT-U1-rmL"/>
                 <outlet property="repeatButton" destination="2789" 
id="lRj-JN-Yry"/>
diff --git a/modules/gui/macosx/VLCMainWindowControlsBar.h 
b/modules/gui/macosx/VLCMainWindowControlsBar.h
index cdd3327837..f78dc26196 100644
--- a/modules/gui/macosx/VLCMainWindowControlsBar.h
+++ b/modules/gui/macosx/VLCMainWindowControlsBar.h
@@ -37,7 +37,9 @@
 @property (readwrite, strong) IBOutlet NSButton *stopButton;
 
 @property (readwrite, strong) IBOutlet NSButton *prevButton;
+@property (readwrite, strong) IBOutlet NSLayoutConstraint 
*prevButtonWidthConstraint;
 @property (readwrite, strong) IBOutlet NSButton *nextButton;
+@property (readwrite, strong) IBOutlet NSLayoutConstraint 
*nextButtonWidthConstraint;
 
 @property (readwrite, strong) IBOutlet NSButton *playlistButton;
 @property (readwrite, strong) IBOutlet NSButton *repeatButton;
diff --git a/modules/gui/macosx/VLCMainWindowControlsBar.m 
b/modules/gui/macosx/VLCMainWindowControlsBar.m
index b0818eb13f..f76c567331 100644
--- a/modules/gui/macosx/VLCMainWindowControlsBar.m
+++ b/modules/gui/macosx/VLCMainWindowControlsBar.m
@@ -56,8 +56,6 @@
     NSLayoutConstraint *_hideNextButtonConstraint;
 }
 
-- (void)addJumpButtons:(BOOL)b_fast;
-- (void)removeJumpButtons:(BOOL)b_fast;
 - (void)addPlaymodeButtons:(BOOL)withAnimation;
 - (void)removePlaymodeButtons:(BOOL)withAnimation;
 
@@ -200,23 +198,9 @@
     if (!b_show_playmode_buttons)
         [self removePlaymodeButtons:NO];
 
-    _hidePrevButtonConstraint = [NSLayoutConstraint 
constraintWithItem:self.prevButton
-                                                               
attribute:NSLayoutAttributeWidth
-                                                               
relatedBy:NSLayoutRelationEqual
-                                                                  toItem:nil
-                                                               
attribute:NSLayoutAttributeNotAnAttribute
-                                                              multiplier:1
-                                                                constant:0];
-    _hideNextButtonConstraint = [NSLayoutConstraint 
constraintWithItem:self.nextButton
-                                                             
attribute:NSLayoutAttributeWidth
-                                                             
relatedBy:NSLayoutRelationEqual
-                                                                toItem:nil
-                                                             
attribute:NSLayoutAttributeNotAnAttribute
-                                                            multiplier:1
-                                                              constant:0];
     b_show_jump_buttons = var_InheritBool(getIntf(), 
"macosx-show-playback-buttons");
     if (!b_show_jump_buttons)
-        [self removeJumpButtons:YES];
+        [self removeJumpButtons:NO];
 
     [[[VLCMain sharedInstance] playlist] playbackModeUpdated];
 
@@ -291,50 +275,55 @@
     b_show_jump_buttons = config_GetInt(getIntf(), 
"macosx-show-playback-buttons");
 
     if (b_show_jump_buttons)
-        [self addJumpButtons:NO];
+        [self addJumpButtons:YES];
     else
-        [self removeJumpButtons:NO];
+        [self removeJumpButtons:YES];
 }
 
-- (void)addJumpButtons:(BOOL)b_fast
+- (void)addJumpButtons:(BOOL)withAnimation
 {
-    [self.prevButton removeConstraint:_hidePrevButtonConstraint];
-    [self.nextButton removeConstraint:_hideNextButtonConstraint];
+    [NSAnimationContext beginGrouping];
+    [self showButtonWithConstraint:self.prevButtonWidthConstraint 
animation:withAnimation];
+    [self showButtonWithConstraint:self.nextButtonWidthConstraint 
animation:withAnimation];
 
+    id backwardButton = withAnimation ? self.backwardButton.animator : 
self.backwardButton;
+    id forwardButton = withAnimation ? self.forwardButton.animator : 
self.forwardButton;
     if (self.darkInterface) {
-        [[self.forwardButton animator] 
setImage:imageFromRes(@"forward-6btns-dark")];
-        [[self.forwardButton animator] 
setAlternateImage:imageFromRes(@"forward-6btns-dark-pressed")];
-        [[self.backwardButton animator] 
setImage:imageFromRes(@"backward-6btns-dark")];
-        [[self.backwardButton animator] 
setAlternateImage:imageFromRes(@"backward-6btns-dark-pressed")];
+        [forwardButton setImage:imageFromRes(@"forward-6btns-dark")];
+        [forwardButton 
setAlternateImage:imageFromRes(@"forward-6btns-dark-pressed")];
+        [backwardButton setImage:imageFromRes(@"backward-6btns-dark")];
+        [backwardButton 
setAlternateImage:imageFromRes(@"backward-6btns-dark-pressed")];
     } else {
-        [[self.forwardButton animator] 
setImage:imageFromRes(@"forward-6btns")];
-        [[self.forwardButton animator] 
setAlternateImage:imageFromRes(@"forward-6btns-pressed")];
-        [[self.backwardButton animator] 
setImage:imageFromRes(@"backward-6btns")];
-        [[self.backwardButton animator] 
setAlternateImage:imageFromRes(@"backward-6btns-pressed")];
+        [forwardButton setImage:imageFromRes(@"forward-6btns")];
+        [forwardButton 
setAlternateImage:imageFromRes(@"forward-6btns-pressed")];
+        [backwardButton setImage:imageFromRes(@"backward-6btns")];
+        [backwardButton 
setAlternateImage:imageFromRes(@"backward-6btns-pressed")];
     }
+    [NSAnimationContext endGrouping];
 
     [self toggleForwardBackwardMode: YES];
 }
 
-- (void)removeJumpButtons:(BOOL)b_fast
+- (void)removeJumpButtons:(BOOL)withAnimation
 {
-    if (!self.prevButton || !self.nextButton)
-        return;
-
-    [self.prevButton addConstraint:_hidePrevButtonConstraint];
-    [self.nextButton addConstraint:_hideNextButtonConstraint];
+    [NSAnimationContext beginGrouping];
+    [self hideButtonWithConstraint:self.prevButtonWidthConstraint 
animation:withAnimation];
+    [self hideButtonWithConstraint:self.nextButtonWidthConstraint 
animation:withAnimation];
 
+    id backwardButton = withAnimation ? self.backwardButton.animator : 
self.backwardButton;
+    id forwardButton = withAnimation ? self.forwardButton.animator : 
self.forwardButton;
     if (self.darkInterface) {
-        [[self.forwardButton animator] 
setImage:imageFromRes(@"forward-3btns-dark")];
-        [[self.forwardButton animator] 
setAlternateImage:imageFromRes(@"forward-3btns-dark-pressed")];
-        [[self.backwardButton animator] 
setImage:imageFromRes(@"backward-3btns-dark")];
-        [[self.backwardButton animator] 
setAlternateImage:imageFromRes(@"backward-3btns-dark-pressed")];
+        [forwardButton setImage:imageFromRes(@"forward-3btns-dark")];
+        [forwardButton 
setAlternateImage:imageFromRes(@"forward-3btns-dark-pressed")];
+        [backwardButton setImage:imageFromRes(@"backward-3btns-dark")];
+        [backwardButton 
setAlternateImage:imageFromRes(@"backward-3btns-dark-pressed")];
     } else {
-        [[self.forwardButton animator] 
setImage:imageFromRes(@"forward-3btns")];
-        [[self.forwardButton animator] 
setAlternateImage:imageFromRes(@"forward-3btns-pressed")];
-        [[self.backwardButton animator] 
setImage:imageFromRes(@"backward-3btns")];
-        [[self.backwardButton animator] 
setAlternateImage:imageFromRes(@"backward-3btns-pressed")];
+        [forwardButton setImage:imageFromRes(@"forward-3btns")];
+        [forwardButton 
setAlternateImage:imageFromRes(@"forward-3btns-pressed")];
+        [backwardButton setImage:imageFromRes(@"backward-3btns")];
+        [backwardButton 
setAlternateImage:imageFromRes(@"backward-3btns-pressed")];
     }
+    [NSAnimationContext endGrouping];
 
     [self toggleForwardBackwardMode: NO];
 }

_______________________________________________
vlc-commits mailing list
[email protected]
https://mailman.videolan.org/listinfo/vlc-commits

Reply via email to