@interface PithosBrowserController (Private) {}
- (void)resetContainers;
+- (void)getInfo:(NSMenuItem *)sender;
@end
@implementation PithosBrowserController
- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
+ [browserMenu release];
[sharedPreviewController release];
[outlineViewDataSourceArray release];
[accountNode release];
[rootNode release];
- [browser release];
- [splitView release];
- [outlineView release];
[super dealloc];
}
[browser setDraggingSourceOperationMask:NSDragOperationCopy forLocal:NO];
[browser setCellClass:[PithosBrowserCell class]];
+
+ browserMenu = [[NSMenu alloc] init];
+ [browserMenu setDelegate:self];
+ [browser setMenu:browserMenu];
}
- (void)resetContainers {
}
}
+#pragma mark -
+#pragma mark NSMenuDelegate
+
+- (void)menuNeedsUpdate:(NSMenu *)menu {
+ NSInteger column = [browser clickedColumn];
+ NSInteger row = [browser clickedRow];
+ [menu removeAllItems];
+ if ((column == -1) || (row == -1)) {
+ // General context menu has 0
+ } else {
+ // PithosNode menu has 1 items
+ // Get Info
+ NSMenuItem *menuItem = [[NSMenuItem alloc] initWithTitle:@"Get Info" action:@selector(getInfo:) keyEquivalent:@""];
+ [menuItem setRepresentedObject:[browser itemAtRow:row inColumn:column]];
+ [menu addItem:menuItem];
+ }
+}
+
+#pragma mark -
+#pragma mark Menu Actions
+
+- (void)getInfo:(NSMenuItem *)sender {
+ [(PithosNode *)[sender representedObject] showPithosNodeInfo:sender];
+}
+
@end
\ No newline at end of file