Revision: 7331
http://skim-app.svn.sourceforge.net/skim-app/?rev=7331&view=rev
Author: hofman
Date: 2011-07-07 23:44:29 +0000 (Thu, 07 Jul 2011)
Log Message:
-----------
fade pref pane switches, disable animation when hidden pref is set
Modified Paths:
--------------
trunk/SKPreferenceController.m
Modified: trunk/SKPreferenceController.m
===================================================================
--- trunk/SKPreferenceController.m 2011-07-07 11:32:14 UTC (rev 7330)
+++ trunk/SKPreferenceController.m 2011-07-07 23:44:29 UTC (rev 7331)
@@ -44,6 +44,7 @@
#import "SKSyncPreferences.h"
#import "NSUserDefaultsController_SKExtensions.h"
#import "SKFontWell.h"
+#import "SKStringConstants.h"
#import "NSView_SKExtensions.h"
#import "NSGeometry_SKExtensions.h"
@@ -108,29 +109,44 @@
return nil;
}
+- (void)endAnimation {
+ [contentView setWantsLayer:NO];
+}
+
- (void)selectPane:(SKPreferencePane *)pane {
if ([pane isEqual:currentPane] == NO) {
-
- [[self window] setTitle:[pane title]];
-
// make sure edits are committed
[currentPane commitEditing];
[[NSUserDefaultsController sharedUserDefaultsController]
commitEditing];
+ NSView *oldView = [currentPane view];
NSView *view = [pane view];
NSRect frame = [view frame];
CGFloat dh = NSHeight([contentView frame]) - NSHeight(frame);
- [contentView replaceSubview:[currentPane view] with:view];
-
- currentPane = pane;
-
frame = [[self window] frame];
frame.origin.y += dh;
frame.size.height -= dh;
- [[self window] setFrame:frame display:YES animate:YES];
+ currentPane = pane;
+
+ [[self window] setTitle:[currentPane title]];
[[NSUserDefaults standardUserDefaults] setObject:[currentPane nibName]
forKey:SKLastSelectedPreferencePaneKey];
+
+ if ([[NSUserDefaults standardUserDefaults]
boolForKey:SKDisableAnimationsKey]) {
+ [contentView replaceSubview:oldView with:view];
+ [[self window] setFrame:frame display:YES];
+ } else {
+ NSTimeInterval duration = [[self window]
animationResizeTime:frame];
+ [contentView setWantsLayer:YES];
+ [contentView displayIfNeeded];
+ [NSAnimationContext beginGrouping];
+ [[NSAnimationContext currentContext] setDuration:duration];
+ [[contentView animator] replaceSubview:oldView with:view];
+ [[[self window] animator] setFrame:frame display:YES];
+ [NSAnimationContext endGrouping];
+ [self performSelector:@selector(endAnimation) withObject:nil
afterDelay:duration];
+ }
}
}
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
All of the data generated in your IT infrastructure is seriously valuable.
Why? It contains a definitive record of application performance, security
threats, fraudulent activity, and more. Splunk takes this data and makes
sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-d2d-c2
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit