}
-- (void) openPreferences: (id) sender
+- (void) openPreferences: (NSString *) saver
{
- NSString *saver = [listController selected];
- if (! saver) return;
-
[self loadSaver:saver launch:NO];
if (! saverView) return;
+ NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
+ [prefs setObject:saver forKey:@"selectedSaverName"];
+ [prefs synchronize];
+
[rootViewController pushViewController: [saverView configureView]
animated:YES];
}
-- (void) loadSaverMenu: (id) sender
-{
- NSString *saver = [listController selected];
- NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
- if (saver) {
- [prefs setObject:saver forKey:@"selectedSaverName"];
- } else {
- [prefs removeObjectForKey:@"selectedSaverName"];
- }
- [self saveScreenshot];
- [self selectedSaverDidChange:nil];
-}
-
#endif // USE_IPHONE
# else // USE_IPHONE
+ NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
+ [prefs setObject:name forKey:@"selectedSaverName"];
+ [prefs synchronize];
+
if (saverName && [saverName isEqualToString: name]) {
if (launch && ![saverView isAnimating]) {
[window addSubview: saverView];
}
-- (UIViewController *) makeMenu
-{
- listController = [[[SaverListController alloc]
- initWithNames:saverNames
- descriptions:[self makeDescTable]]
- retain];
- UIBarButtonItem *run = [[[UIBarButtonItem alloc]
- initWithTitle:@"Run"
- style: UIBarButtonItemStylePlain
- target: self
- action: @selector(loadSaverMenu:)]
- autorelease];
- UIBarButtonItem *about = [[[UIBarButtonItem alloc]
- initWithTitle: @"About"
- style: UIBarButtonItemStylePlain
- target: self
- action: @selector(aboutPanel:)]
- autorelease];
- UIBarButtonItem *pref = [[[UIBarButtonItem alloc]
- initWithTitle:@"Settings"
- style: UIBarButtonItemStylePlain
- target: self
- action: @selector(openPreferences:)]
- autorelease];
- NSArray *a = [NSArray arrayWithObjects: pref, about, nil];
-
- [run setEnabled:NO];
- [about setEnabled:YES];
- [pref setEnabled:NO];
- listController.navigationItem.leftBarButtonItem = run;
- listController.navigationItem.rightBarButtonItems = a;
-
- return listController;
-}
-
#endif // USE_IPHONE
rootViewController = [[[RotateyViewController alloc] init] retain];
[window setRootViewController: rootViewController];
- [rootViewController pushViewController:[self makeMenu]
- animated:YES];
+
+ SaverListController *menu = [[SaverListController alloc]
+ initWithNames:saverNames
+ descriptions:[self makeDescTable]];
+ [rootViewController pushViewController:menu animated:YES];
[window makeKeyAndVisible];
[window setAutoresizesSubviews:YES];
# ifdef USE_IPHONE
NSString *prev = [prefs stringForKey:@"selectedSaverName"];
+
if (forced)
prev = forced;
prev = [saverNames objectAtIndex: (random() % [saverNames count])];
if (prev)
- [listController scrollTo: prev];
+ [menu scrollTo: prev];
# endif // USE_IPHONE
if (forced)