Revision: 2613
          http://skim-app.svn.sourceforge.net/skim-app/?rev=2613&view=rev
Author:   hofman
Date:     2007-08-06 08:01:22 -0700 (Mon, 06 Aug 2007)

Log Message:
-----------
Create table contextual menus in controller and some more menu items.

Modified Paths:
--------------
    trunk/Dutch.lproj/Localizable.strings
    trunk/French.lproj/Localizable.strings
    trunk/Italian.lproj/Localizable.strings
    trunk/SKMainWindowController.m
    trunk/SKNoteOutlineView.h
    trunk/SKNoteOutlineView.m
    trunk/SKThumbnailTableView.h
    trunk/SKThumbnailTableView.m

Modified: trunk/Dutch.lproj/Localizable.strings
===================================================================
(Binary files differ)

Modified: trunk/French.lproj/Localizable.strings
===================================================================
(Binary files differ)

Modified: trunk/Italian.lproj/Localizable.strings
===================================================================
(Binary files differ)

Modified: trunk/SKMainWindowController.m
===================================================================
--- trunk/SKMainWindowController.m      2007-08-06 13:33:48 UTC (rev 2612)
+++ trunk/SKMainWindowController.m      2007-08-06 15:01:22 UTC (rev 2613)
@@ -3262,6 +3262,47 @@
     [[SKPDFHoverWindow sharedHoverWindow] hide];
 }
 
+- (void)deleteNote:(id)sender {
+    PDFAnnotation *annotation = [sender representedObject];
+    [pdfView removeAnnotation:annotation];
+    [[[self document] undoManager] setActionName:NSLocalizedString(@"Remove 
Note", @"Undo action name")];
+}
+
+- (void)selectNote:(id)sender {
+    PDFAnnotation *annotation = [sender representedObject];
+    [pdfView setActiveAnnotation:annotation];
+}
+
+- (void)deselectNote:(id)sender {
+    [pdfView setActiveAnnotation:nil];
+}
+
+- (NSMenu *)outlineView:(NSOutlineView *)ov menuForTableColumn:(NSTableColumn 
*)tableColumn item:(id)item {
+    NSMenu *menu = nil;
+    if ([ov isEqual:noteOutlineView]) {
+        if ([item type] == nil)
+            item = [(SKNoteText *)item annotation];
+        menu = [[[NSMenu allocWithZone:[NSMenu menuZone]] init] autorelease];
+        NSMenuItem *menuItem = [menu 
addItemWithTitle:NSLocalizedString(@"Delete", @"Menu item title") 
action:@selector(deleteNote:) keyEquivalent:@""];
+        [menuItem setTarget:self];
+        [menuItem setRepresentedObject:item];
+        if ([pdfView hideNotes] == NO) {
+            if ([item isEditable]) {
+                menuItem = [menu addItemWithTitle:NSLocalizedString(@"Edit", 
@"Menu item title") action:@selector(editThisAnnotation:) keyEquivalent:@""];
+                [menuItem setTarget:pdfView];
+                [menuItem setRepresentedObject:item];
+            }
+            if ([pdfView activeAnnotation] == item)
+                menuItem = [menu 
addItemWithTitle:NSLocalizedString(@"Deselect", @"Menu item title") 
action:@selector(deselectNote:) keyEquivalent:@""];
+            else
+                menuItem = [menu addItemWithTitle:NSLocalizedString(@"Select", 
@"Menu item title") action:@selector(selectNote:) keyEquivalent:@""];
+            [menuItem setTarget:self];
+            [menuItem setRepresentedObject:item];
+        }
+    }
+    return menu;
+}
+
 #pragma mark NSTableView delegate protocol
 
 - (void)tableViewSelectionDidChange:(NSNotification *)aNotification {
@@ -3423,6 +3464,61 @@
     }
 }
 
+- (void)copyPage:(id)sender {
+    PDFPage *page = [sender representedObject];
+    NSData *pdfData = [page dataRepresentation];
+    NSData *tiffData = [[page imageForBox:[pdfView displayBox]] 
TIFFRepresentation];
+    NSPasteboard *pboard = [NSPasteboard generalPasteboard];
+    [pboard declareTypes:[NSArray arrayWithObjects:NSPDFPboardType, 
NSTIFFPboardType, nil] owner:nil];
+    [pboard setData:pdfData forType:NSPDFPboardType];
+    [pboard setData:tiffData forType:NSTIFFPboardType];
+}
+
+- (void)deleteSnapshot:(id)sender {
+    SKSnapshotWindowController *controller = [sender representedObject];
+    [[controller window] orderOut:self];
+    [[self mutableArrayValueForKey:@"snapshots"] removeObject:controller];
+}
+
+- (void)showSnapshot:(id)sender {
+    SKSnapshotWindowController *controller = [sender representedObject];
+    if ([[controller window] isVisible])
+        [[controller window] orderFront:self];
+    else
+        [controller deminiaturize];
+}
+
+- (void)hideSnapshot:(id)sender {
+    SKSnapshotWindowController *controller = [sender representedObject];
+    if ([[controller window] isVisible])
+        [controller miniaturize];
+}
+
+- (NSMenu *)tableView:(NSTableView *)tv menuForTableColumn:(NSTableColumn 
*)tableColumn row:(int)row {
+    NSMenu *menu = nil;
+    if ([tv isEqual:thumbnailTableView]) {
+        menu = [[[NSMenu allocWithZone:[NSMenu menuZone]] init] autorelease];
+        NSMenuItem *menuItem = [menu 
addItemWithTitle:NSLocalizedString(@"Copy", @"Menu item title") 
action:@selector(copyPage:) keyEquivalent:@""];
+        [menuItem setTarget:self];
+        [menuItem setRepresentedObject:[[pdfView document] pageAtIndex:row]];
+    } else if ([tv isEqual:snapshotTableView]) {
+        menu = [[[NSMenu allocWithZone:[NSMenu menuZone]] init] autorelease];
+        SKSnapshotWindowController *controller = [[snapshotArrayController 
arrangedObjects] objectAtIndex:row];
+        NSMenuItem *menuItem = [menu 
addItemWithTitle:NSLocalizedString(@"Delete", @"Menu item title") 
action:@selector(deleteSnapshot:) keyEquivalent:@""];
+        [menuItem setTarget:self];
+        [menuItem setRepresentedObject:controller];
+        menuItem = [menu addItemWithTitle:NSLocalizedString(@"Show", @"Menu 
item title") action:@selector(showSnapshot:) keyEquivalent:@""];
+        [menuItem setTarget:self];
+        [menuItem setRepresentedObject:controller];
+        if ([[controller window] isVisible]) {
+            menuItem = [menu addItemWithTitle:NSLocalizedString(@"Hide", 
@"Menu item title") action:@selector(hideSnapshot:) keyEquivalent:@""];
+            [menuItem setTarget:self];
+            [menuItem setRepresentedObject:controller];
+        }
+    }
+    return menu;
+}
+
 #pragma mark Outline
 
 - (int)outlineRowForPageIndex:(unsigned int)pageIndex {

Modified: trunk/SKNoteOutlineView.h
===================================================================
--- trunk/SKNoteOutlineView.h   2007-08-06 13:33:48 UTC (rev 2612)
+++ trunk/SKNoteOutlineView.h   2007-08-06 15:01:22 UTC (rev 2613)
@@ -61,6 +61,7 @@
 - (BOOL)outlineView:(NSOutlineView *)anOutlineView canResizeRowByItem:(id)item;
 - (void)outlineView:(NSOutlineView *)anOutlineView 
setHeightOfRow:(int)newHeight byItem:(id)item;
 - (void)outlineViewNoteTypesDidChange:(NSOutlineView *)anOutlineView;
+- (NSMenu *)outlineView:(NSOutlineView *)anOutlineView 
menuForTableColumn:(NSTableColumn *)tableColumn item:(id)item;
 @end
 
 

Modified: trunk/SKNoteOutlineView.m
===================================================================
--- trunk/SKNoteOutlineView.m   2007-08-06 13:33:48 UTC (rev 2612)
+++ trunk/SKNoteOutlineView.m   2007-08-06 15:01:22 UTC (rev 2613)
@@ -72,6 +72,30 @@
                [super keyDown:theEvent];
 }
 
+- (BOOL)validateMenuItem:(NSMenuItem *)menuItem {
+    if ([menuItem action] == @selector(delete:))
+        return [[self selectedRowIndexes] count] > 0;
+    else if ([NSOutlineView 
instancesRespondToSelector:@selector(validateMenuItem:)])
+        return [super validateMenuItem:menuItem];
+    return YES;
+}
+
+- (NSMenu *)menuForEvent:(NSEvent *)theEvent {
+    NSMenu *menu = nil;
+    
+    if ([[self delegate] 
respondsToSelector:@selector(outlineView:menuForTableColumn:item:)]) {
+        NSPoint mouseLoc = [self convertPoint:[theEvent locationInWindow] 
fromView:nil];
+        int row = [self rowAtPoint:mouseLoc];
+        int column = [self columnAtPoint:mouseLoc];
+        if (row != -1 && column != -1) {
+            NSTableColumn *tableColumn = [[self tableColumns] 
objectAtIndex:column];
+            menu = [[self delegate] outlineView:self 
menuForTableColumn:tableColumn item:[self itemAtRow:row]];
+        }
+    }
+    
+       return menu;
+}
+
 - (BOOL)resizeRow:(int)row withEvent:(NSEvent *)theEvent {
     id item = [self itemAtRow:row];
     NSPoint startPoint = [self convertPoint:[theEvent locationInWindow] 
fromView:nil];

Modified: trunk/SKThumbnailTableView.h
===================================================================
--- trunk/SKThumbnailTableView.h        2007-08-06 13:33:48 UTC (rev 2612)
+++ trunk/SKThumbnailTableView.h        2007-08-06 15:01:22 UTC (rev 2613)
@@ -70,4 +70,5 @@
 - (BOOL)tableView:(NSTableView *)tableView commandSelectRow:(int)rowIndex;
 - (void)tableView:(NSTableView *)aTableView copyRowsWithIndexes:(NSIndexSet 
*)rowIndexes;
 - (BOOL)tableView:(NSTableView *)aTableView canCopyRowsWithIndexes:(NSIndexSet 
*)rowIndexes;
+- (NSMenu *)tableView:(NSTableView *)aTableView 
menuForTableColumn:(NSTableColumn *)tableColumn row:(int)rowIndex;
 @end

Modified: trunk/SKThumbnailTableView.m
===================================================================
--- trunk/SKThumbnailTableView.m        2007-08-06 13:33:48 UTC (rev 2612)
+++ trunk/SKThumbnailTableView.m        2007-08-06 15:01:22 UTC (rev 2613)
@@ -146,34 +146,25 @@
         NSBeep();
 }
 
-- (void)copyFromContextualMenu:(id)sender {
-    [[self delegate] tableView:self copyRowsWithIndexes:[sender 
representedObject]];
-}
-
 - (NSMenu *)menuForEvent:(NSEvent *)theEvent {
-    NSMenu *menu = [super menuForEvent:theEvent];
-    NSPoint mouseLoc = [self convertPoint:[theEvent locationInWindow] 
fromView:nil];
-    int row = [self rowAtPoint:mouseLoc];
-    if (row != -1) {
-        NSIndexSet *indexes = [NSIndexSet indexSetWithIndex:row];
-        if ([[self delegate] 
respondsToSelector:@selector(tableView:canCopyRowsWithIndexes:)] && 
-            [[self delegate] 
respondsToSelector:@selector(tableView:copyRowsWithIndexes:)] && 
-            [[self delegate] tableView:self canCopyRowsWithIndexes:indexes]) {
-            if (menu == nil)
-                menu = [[[NSMenu allocWithZone:[NSMenu menuZone]] init] 
autorelease];
-            NSMenuItem *item = [menu 
addItemWithTitle:NSLocalizedString(@"Copy", @"Menu item title") 
action:@selector(copyFromContextualMenu:) keyEquivalent:@""];
-            [item setTarget:self];
-            [item setRepresentedObject:indexes];
+    NSMenu *menu = nil;
+    
+    if ([[self delegate] 
respondsToSelector:@selector(tableView:menuForTableColumn:row:)]) {
+        NSPoint mouseLoc = [self convertPoint:[theEvent locationInWindow] 
fromView:nil];
+        int row = [self rowAtPoint:mouseLoc];
+        int column = [self columnAtPoint:mouseLoc];
+        if (row != -1 && column != -1) {
+            NSTableColumn *tableColumn = [[self tableColumns] 
objectAtIndex:column];
+            menu = [[self delegate] tableView:self 
menuForTableColumn:tableColumn row:row];
         }
     }
+    
        return menu;
 }
 
 - (BOOL)validateMenuItem:(NSMenuItem *)menuItem {
     if ([menuItem action] == @selector(copy:))
         return [self canCopy];
-    else if ([menuItem action] == @selector(copyFromContextualMenu:))
-        return YES;
     else if ([NSTableView 
instancesRespondToSelector:@selector(validateMenuItem:)])
         return [super validateMenuItem:menuItem];
     return YES;
@@ -211,34 +202,9 @@
                [super keyDown:theEvent];
 }
 
-- (void)deleteFromContextualMenu:(id)sender {
-    [[self delegate] tableView:self deleteRowsWithIndexes:[sender 
representedObject]];
-}
-
-- (NSMenu *)menuForEvent:(NSEvent *)theEvent {
-    NSMenu *menu = [super menuForEvent:theEvent];
-    NSPoint mouseLoc = [self convertPoint:[theEvent locationInWindow] 
fromView:nil];
-    int row = [self rowAtPoint:mouseLoc];
-    if (row != -1) {
-        NSIndexSet *indexes = [NSIndexSet indexSetWithIndex:row];
-        if ([[self delegate] 
respondsToSelector:@selector(tableView:canDeleteRowsWithIndexes:)] && 
-            [[self delegate] 
respondsToSelector:@selector(tableView:deleteRowsWithIndexes:)] && 
-            [[self delegate] tableView:self canDeleteRowsWithIndexes:indexes]) 
{
-            if (menu == nil)
-                menu = [[[NSMenu allocWithZone:[NSMenu menuZone]] init] 
autorelease];
-            NSMenuItem *item = [menu 
addItemWithTitle:NSLocalizedString(@"Delete", @"Menu item title") 
action:@selector(deleteFromContextualMenu:) keyEquivalent:@""];
-            [item setTarget:self];
-            [item setRepresentedObject:indexes];
-        }
-    }
-       return menu;
-}
-
 - (BOOL)validateMenuItem:(NSMenuItem *)menuItem {
     if ([menuItem action] == @selector(delete:))
         return [self canDelete];
-    else if ([menuItem action] == @selector(deleteFromContextualMenu:))
-        return YES;
     return [super validateMenuItem:menuItem];
 }
 


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: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
Skim-app-commit mailing list
Skim-app-commit@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to