Revision: 12966
http://bibdesk.svn.sourceforge.net/bibdesk/?rev=12966&view=rev
Author: hofman
Date: 2008-03-04 17:22:36 -0800 (Tue, 04 Mar 2008)
Log Message:
-----------
Move fade animation of slider window in slider window orderFront/orderOut. Use
a special animation so we can actually close the window at the end of the
animation.
Modified Paths:
--------------
trunk/bibdesk_vendorsrc/amaxwell/FileView/FVSlider.h
trunk/bibdesk_vendorsrc/amaxwell/FileView/FVSlider.m
trunk/bibdesk_vendorsrc/amaxwell/FileView/FileView.m
Modified: trunk/bibdesk_vendorsrc/amaxwell/FileView/FVSlider.h
===================================================================
--- trunk/bibdesk_vendorsrc/amaxwell/FileView/FVSlider.h 2008-03-04
23:24:27 UTC (rev 12965)
+++ trunk/bibdesk_vendorsrc/amaxwell/FileView/FVSlider.h 2008-03-05
01:22:36 UTC (rev 12966)
@@ -56,7 +56,4 @@
- (id)init;
- (FVSlider *)slider;
-// cover for -animator on 10.5, returns self on 10.4
-- (id)animator;
-
@end
Modified: trunk/bibdesk_vendorsrc/amaxwell/FileView/FVSlider.m
===================================================================
--- trunk/bibdesk_vendorsrc/amaxwell/FileView/FVSlider.m 2008-03-04
23:24:27 UTC (rev 12965)
+++ trunk/bibdesk_vendorsrc/amaxwell/FileView/FVSlider.m 2008-03-05
01:22:36 UTC (rev 12966)
@@ -38,6 +38,7 @@
#import "FVSlider.h"
#import "FVUtilities.h"
+#import <QuartzCore/QuartzCore.h>
NSString * const FVSliderMouseExitedNotificationName =
@"FVSliderMouseExitedNotificationName";
@@ -164,15 +165,38 @@
[_slider setAutoresizingMask:NSViewWidthSizable|NSViewHeightSizable];
[[self contentView] addSubview:_slider];
[_slider release];
+
+ id animation = [NSClassFromString(@"CABasicAnimation") animation];
+ if (animation) {
+ [animation setDelegate:self];
+ [self setAnimations:[NSDictionary dictionaryWithObject:animation
forKey:@"alphaValue"]];
+ }
+
}
return self;
}
- (FVSlider *)slider { return _slider; }
-- (id)animator
-{
- return [[FVSliderWindow superclass] instancesRespondToSelector:_cmd] ?
[super animator] : self;
+- (void)orderFront:(id)sender {
+ if ([self isVisible] == NO && [self
respondsToSelector:@selector(animator)]) {
+ [self setAlphaValue:0.0];
+ [[self animator] setAlphaValue:1.0];
+ }
+ [super orderFront:sender];
}
+- (void)orderOut:(id)sender {
+ if ([self isVisible] && [self respondsToSelector:@selector(animator)]) {
+ [[self animator] setAlphaValue:0.0];
+ } else {
+ [super orderOut:sender];
+ }
+}
+
+- (void)animationDidStop:(id)animation finished:(BOOL)flag {
+ if ([self alphaValue] < 0.0001 && [self isVisible])
+ [super orderOut:self];
+}
+
@end
Modified: trunk/bibdesk_vendorsrc/amaxwell/FileView/FileView.m
===================================================================
--- trunk/bibdesk_vendorsrc/amaxwell/FileView/FileView.m 2008-03-04
23:24:27 UTC (rev 12965)
+++ trunk/bibdesk_vendorsrc/amaxwell/FileView/FileView.m 2008-03-05
01:22:36 UTC (rev 12966)
@@ -1771,10 +1771,8 @@
if (NSEqualRects([_sliderWindow frame], sliderRect) == NO)
[_sliderWindow setFrame:sliderRect display:NO];
- [_sliderWindow setAlphaValue:0.0];
- [_sliderWindow orderFrontRegardless];
+ [_sliderWindow orderFront:self];
[[self window] addChildWindow:_sliderWindow
ordered:NSWindowAbove];
- [[_sliderWindow animator] setAlphaValue:1.0];
}
}
}
@@ -1788,7 +1786,6 @@
- (void)handleSliderMouseExited:(NSNotification *)aNote
{
if ([[[self window] childWindows] containsObject:_sliderWindow]) {
- [[_sliderWindow animator] setAlphaValue:0.0];
[[self window] removeChildWindow:_sliderWindow];
[_sliderWindow orderOut:self];
}
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Bibdesk-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit