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
