vlc | branch: master | Felix Paul Kühne <fe...@feepk.net> | Sun Nov 3 19:12:50 2019 +0100| [096145ee1df4fc5ce40ba95daf73efc683678cab] | committer: Felix Paul Kühne
macosx/tracking view: add API to animate transitions > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=096145ee1df4fc5ce40ba95daf73efc683678cab --- modules/gui/macosx/views/VLCTrackingView.h | 1 + modules/gui/macosx/views/VLCTrackingView.m | 25 +++++++++++++++++++++++-- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/modules/gui/macosx/views/VLCTrackingView.h b/modules/gui/macosx/views/VLCTrackingView.h index 2c4a6976ed..c115a7f17c 100644 --- a/modules/gui/macosx/views/VLCTrackingView.h +++ b/modules/gui/macosx/views/VLCTrackingView.h @@ -26,6 +26,7 @@ NS_ASSUME_NONNULL_BEGIN @interface VLCTrackingView : NSView +@property (readwrite) BOOL animatesTransition; @property (readwrite, assign, nullable) NSView *viewToHide; @end diff --git a/modules/gui/macosx/views/VLCTrackingView.m b/modules/gui/macosx/views/VLCTrackingView.m index 01fb4cf7f1..bc07fa830b 100644 --- a/modules/gui/macosx/views/VLCTrackingView.m +++ b/modules/gui/macosx/views/VLCTrackingView.m @@ -32,12 +32,33 @@ - (void)mouseExited:(NSEvent *)event { - self.viewToHide.hidden = YES; + if (self.animatesTransition) { + [self.viewToHide setAlphaValue:1.0]; + __weak typeof(self.viewToHide) weakViewToHide = self.viewToHide; + [NSAnimationContext runAnimationGroup:^(NSAnimationContext *context){ + [[NSAnimationContext currentContext] setDuration:0.9]; + [[weakViewToHide animator] setAlphaValue:0.0]; + } completionHandler:^{ + [weakViewToHide setHidden:YES]; + }]; + } else { + self.viewToHide.hidden = YES; + } } - (void)mouseEntered:(NSEvent *)event { - self.viewToHide.hidden = NO; + if (self.animatesTransition) { + [self.viewToHide setAlphaValue:.0]; + [self.viewToHide setHidden:NO]; + __weak typeof(self.viewToHide) weakViewToHide = self.viewToHide; + [NSAnimationContext runAnimationGroup:^(NSAnimationContext *context){ + [[NSAnimationContext currentContext] setDuration:0.9]; + [[weakViewToHide animator] setAlphaValue:1.0]; + } completionHandler:nil]; + } else { + self.viewToHide.hidden = NO; + } } - (void)updateTrackingAreas _______________________________________________ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits