Revision: 7325
http://skim-app.svn.sourceforge.net/skim-app/?rev=7325&view=rev
Author: hofman
Date: 2011-07-05 18:39:10 +0000 (Tue, 05 Jul 2011)
Log Message:
-----------
Use panes for next/previous pane actions and validate menu items
Modified Paths:
--------------
trunk/SKPreferenceController.m
Modified: trunk/SKPreferenceController.m
===================================================================
--- trunk/SKPreferenceController.m 2011-07-05 18:26:29 UTC (rev 7324)
+++ trunk/SKPreferenceController.m 2011-07-05 18:39:10 UTC (rev 7325)
@@ -211,8 +211,7 @@
return nil;
}
-- (void)selectPane:(id)sender {
- SKPreferencePane *pane = [self preferencePaneForItemIdentifier:[sender
itemIdentifier]];
+- (void)selectPane:(SKPreferencePane *)pane {
if ([pane isEqual:currentPane] == NO) {
[[self window] setTitle:[pane title]];
@@ -239,13 +238,17 @@
}
}
+- (void)selectPaneAction:(id)sender {
+ [self selectPane:[self preferencePaneForItemIdentifier:[sender
itemIdentifier]]];
+}
+
- (NSToolbarItem *)toolbar:(NSToolbar *)toolbar
itemForItemIdentifier:(NSString *)itemIdent
willBeInsertedIntoToolbar:(BOOL)willBeInserted {
SKPreferencePane *pane = [self preferencePaneForItemIdentifier:itemIdent];
NSToolbarItem *item = [[[NSToolbarItem alloc]
initWithItemIdentifier:itemIdent] autorelease];
[item setLabel:[pane title]];
[item setImage:[pane icon]];
[item setTarget:self];
- [item setAction:@selector(selectPane:)];
+ [item setAction:@selector(selectPaneAction:)];
return item;
}
@@ -262,25 +265,29 @@
}
- (IBAction)doGoToNextPage:(id)sender {
- NSToolbar *toolbar = [[self window] toolbar];
- NSString *itemID = [toolbar selectedItemIdentifier];
- NSArray *itemIDs = [[toolbar visibleItems] valueForKey:@"itemIdentifier"];
- NSUInteger itemIndex = [itemIDs indexOfObject:itemID];
- if (itemIndex != NSNotFound && ++itemIndex < [itemIDs count]) {
- [toolbar setSelectedItemIdentifier:[itemIDs objectAtIndex:itemIndex]];
- [self selectPane:[[toolbar visibleItems] objectAtIndex:itemIndex]];
+ NSUInteger itemIndex = [preferencePanes indexOfObject:currentPane];
+ if (itemIndex != NSNotFound && ++itemIndex < [preferencePanes count]) {
+ SKPreferencePane *pane = [preferencePanes objectAtIndex:itemIndex];
+ [[[self window] toolbar] setSelectedItemIdentifier:[pane nibName]];
+ [self selectPane:pane];
}
}
- (IBAction)doGoToPreviousPage:(id)sender {
- NSToolbar *toolbar = [[self window] toolbar];
- NSString *itemID = [toolbar selectedItemIdentifier];
- NSArray *itemIDs = [[toolbar visibleItems] valueForKey:@"itemIdentifier"];
- NSUInteger itemIndex = [itemIDs indexOfObject:itemID];
+ NSUInteger itemIndex = [preferencePanes indexOfObject:currentPane];
if (itemIndex != NSNotFound && itemIndex-- > 0) {
- [toolbar setSelectedItemIdentifier:[itemIDs objectAtIndex:itemIndex]];
- [self selectPane:[[toolbar visibleItems] objectAtIndex:itemIndex]];
+ SKPreferencePane *pane = [preferencePanes objectAtIndex:itemIndex];
+ [[[self window] toolbar] setSelectedItemIdentifier:[pane nibName]];
+ [self selectPane:pane];
}
}
+- (BOOL)validateMenuItem:(NSMenuItem *)menuItem {
+ if ([menuItem action] == @selector(doGoToNextPage:))
+ return [currentPane isEqual:[preferencePanes lastObject]] == NO;
+ else if ([menuItem action] == @selector(doGoToPreviousPage:))
+ return [currentPane isEqual:[preferencePanes objectAtIndex:0]] == NO;
+ return YES;
+}
+
@end
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