Revision: 2580
http://skim-app.svn.sourceforge.net/skim-app/?rev=2580&view=rev
Author: hofman
Date: 2007-07-28 11:18:15 -0700 (Sat, 28 Jul 2007)
Log Message:
-----------
Show hover window on outline view and find results table.
Modified Paths:
--------------
trunk/Dutch.lproj/MainWindow.nib/classes.nib
trunk/Dutch.lproj/MainWindow.nib/info.nib
trunk/Dutch.lproj/MainWindow.nib/keyedobjects.nib
trunk/English.lproj/MainWindow.nib/classes.nib
trunk/English.lproj/MainWindow.nib/info.nib
trunk/English.lproj/MainWindow.nib/keyedobjects.nib
trunk/French.lproj/MainWindow.nib/classes.nib
trunk/French.lproj/MainWindow.nib/info.nib
trunk/French.lproj/MainWindow.nib/keyedobjects.nib
trunk/Italian.lproj/MainWindow.nib/classes.nib
trunk/Italian.lproj/MainWindow.nib/info.nib
trunk/Italian.lproj/MainWindow.nib/keyedobjects.nib
trunk/PDFSelection_SKExtensions.h
trunk/PDFSelection_SKExtensions.m
trunk/SKMainWindowController.m
trunk/SKOutlineView.h
trunk/SKOutlineView.m
trunk/SKSideWindow.m
trunk/Skim.xcodeproj/project.pbxproj
Added Paths:
-----------
trunk/SKFindTableView.h
trunk/SKFindTableView.m
Modified: trunk/Dutch.lproj/MainWindow.nib/classes.nib
===================================================================
--- trunk/Dutch.lproj/MainWindow.nib/classes.nib 2007-07-28 16:50:23 UTC
(rev 2579)
+++ trunk/Dutch.lproj/MainWindow.nib/classes.nib 2007-07-28 18:18:15 UTC
(rev 2580)
@@ -37,6 +37,7 @@
SUPERCLASS = NSTextFieldCell;
},
{CLASS = SKColorSwatch; LANGUAGE = ObjC; SUPERCLASS = NSControl; },
+ {CLASS = SKFindTableView; LANGUAGE = ObjC; SUPERCLASS = NSTableView;
},
{CLASS = SKFullScreenWindow; LANGUAGE = ObjC; SUPERCLASS = NSWindow;
},
{CLASS = SKMainWindow; LANGUAGE = ObjC; SUPERCLASS = NSWindow; },
{
Modified: trunk/Dutch.lproj/MainWindow.nib/info.nib
===================================================================
--- trunk/Dutch.lproj/MainWindow.nib/info.nib 2007-07-28 16:50:23 UTC (rev
2579)
+++ trunk/Dutch.lproj/MainWindow.nib/info.nib 2007-07-28 18:18:15 UTC (rev
2580)
@@ -31,10 +31,11 @@
</array>
<key>IBOpenObjects</key>
<array>
- <integer>5</integer>
<integer>168</integer>
+ <integer>224</integer>
<integer>256</integer>
<integer>511</integer>
+ <integer>5</integer>
</array>
<key>IBSystem Version</key>
<string>8R218</string>
Modified: trunk/Dutch.lproj/MainWindow.nib/keyedobjects.nib
===================================================================
(Binary files differ)
Modified: trunk/English.lproj/MainWindow.nib/classes.nib
===================================================================
--- trunk/English.lproj/MainWindow.nib/classes.nib 2007-07-28 16:50:23 UTC
(rev 2579)
+++ trunk/English.lproj/MainWindow.nib/classes.nib 2007-07-28 18:18:15 UTC
(rev 2580)
@@ -37,6 +37,7 @@
SUPERCLASS = NSTextFieldCell;
},
{CLASS = SKColorSwatch; LANGUAGE = ObjC; SUPERCLASS = NSControl; },
+ {CLASS = SKFindTableView; LANGUAGE = ObjC; SUPERCLASS = NSTableView;
},
{CLASS = SKFullScreenWindow; LANGUAGE = ObjC; SUPERCLASS = NSWindow;
},
{CLASS = SKMainWindow; LANGUAGE = ObjC; SUPERCLASS = NSWindow; },
{
Modified: trunk/English.lproj/MainWindow.nib/info.nib
===================================================================
--- trunk/English.lproj/MainWindow.nib/info.nib 2007-07-28 16:50:23 UTC (rev
2579)
+++ trunk/English.lproj/MainWindow.nib/info.nib 2007-07-28 18:18:15 UTC (rev
2580)
@@ -32,19 +32,19 @@
<key>IBOpenObjects</key>
<array>
<integer>502</integer>
+ <integer>511</integer>
+ <integer>224</integer>
+ <integer>585</integer>
<integer>208</integer>
+ <integer>539</integer>
<integer>5</integer>
- <integer>539</integer>
- <integer>314</integer>
- <integer>224</integer>
+ <integer>687</integer>
+ <integer>168</integer>
+ <integer>256</integer>
<integer>694</integer>
- <integer>256</integer>
- <integer>585</integer>
- <integer>511</integer>
<integer>633</integer>
- <integer>168</integer>
<integer>553</integer>
- <integer>687</integer>
+ <integer>314</integer>
</array>
<key>IBSystem Version</key>
<string>8R218</string>
Modified: trunk/English.lproj/MainWindow.nib/keyedobjects.nib
===================================================================
(Binary files differ)
Modified: trunk/French.lproj/MainWindow.nib/classes.nib
===================================================================
--- trunk/French.lproj/MainWindow.nib/classes.nib 2007-07-28 16:50:23 UTC
(rev 2579)
+++ trunk/French.lproj/MainWindow.nib/classes.nib 2007-07-28 18:18:15 UTC
(rev 2580)
@@ -37,6 +37,7 @@
SUPERCLASS = NSTextFieldCell;
},
{CLASS = SKColorSwatch; LANGUAGE = ObjC; SUPERCLASS = NSControl; },
+ {CLASS = SKFindTableView; LANGUAGE = ObjC; SUPERCLASS = NSTableView;
},
{CLASS = SKFullScreenWindow; LANGUAGE = ObjC; SUPERCLASS = NSWindow;
},
{CLASS = SKMainWindow; LANGUAGE = ObjC; SUPERCLASS = NSWindow; },
{
Modified: trunk/French.lproj/MainWindow.nib/info.nib
===================================================================
--- trunk/French.lproj/MainWindow.nib/info.nib 2007-07-28 16:50:23 UTC (rev
2579)
+++ trunk/French.lproj/MainWindow.nib/info.nib 2007-07-28 18:18:15 UTC (rev
2580)
@@ -9,7 +9,7 @@
<key>168</key>
<string>601 521 237 239 0 0 1440 938 </string>
<key>224</key>
- <string>690 564 220 442 0 0 1600 1178 </string>
+ <string>610 420 220 442 0 0 1440 938 </string>
<key>256</key>
<string>610 420 220 442 0 0 1440 938 </string>
<key>314</key>
@@ -31,15 +31,16 @@
</array>
<key>IBOpenObjects</key>
<array>
+ <integer>256</integer>
+ <integer>314</integer>
<integer>5</integer>
- <integer>502</integer>
- <integer>168</integer>
<integer>633</integer>
+ <integer>661</integer>
<integer>511</integer>
+ <integer>168</integer>
+ <integer>502</integer>
<integer>660</integer>
- <integer>314</integer>
- <integer>661</integer>
- <integer>256</integer>
+ <integer>224</integer>
</array>
<key>IBSystem Version</key>
<string>8R218</string>
Modified: trunk/French.lproj/MainWindow.nib/keyedobjects.nib
===================================================================
(Binary files differ)
Modified: trunk/Italian.lproj/MainWindow.nib/classes.nib
===================================================================
--- trunk/Italian.lproj/MainWindow.nib/classes.nib 2007-07-28 16:50:23 UTC
(rev 2579)
+++ trunk/Italian.lproj/MainWindow.nib/classes.nib 2007-07-28 18:18:15 UTC
(rev 2580)
@@ -37,6 +37,7 @@
SUPERCLASS = NSTextFieldCell;
},
{CLASS = SKColorSwatch; LANGUAGE = ObjC; SUPERCLASS = NSControl; },
+ {CLASS = SKFindTableView; LANGUAGE = ObjC; SUPERCLASS = NSTableView;
},
{CLASS = SKFullScreenWindow; LANGUAGE = ObjC; SUPERCLASS = NSWindow;
},
{CLASS = SKMainWindow; LANGUAGE = ObjC; SUPERCLASS = NSWindow; },
{
Modified: trunk/Italian.lproj/MainWindow.nib/info.nib
===================================================================
--- trunk/Italian.lproj/MainWindow.nib/info.nib 2007-07-28 16:50:23 UTC (rev
2579)
+++ trunk/Italian.lproj/MainWindow.nib/info.nib 2007-07-28 18:18:15 UTC (rev
2580)
@@ -31,18 +31,18 @@
</array>
<key>IBOpenObjects</key>
<array>
- <integer>5</integer>
+ <integer>256</integer>
+ <integer>314</integer>
+ <integer>224</integer>
+ <integer>208</integer>
+ <integer>628</integer>
<integer>677</integer>
- <integer>256</integer>
- <integer>553</integer>
<integer>502</integer>
- <integer>224</integer>
- <integer>539</integer>
+ <integer>5</integer>
<integer>676</integer>
- <integer>314</integer>
- <integer>628</integer>
- <integer>208</integer>
+ <integer>553</integer>
<integer>511</integer>
+ <integer>539</integer>
<integer>168</integer>
</array>
<key>IBSystem Version</key>
Modified: trunk/Italian.lproj/MainWindow.nib/keyedobjects.nib
===================================================================
(Binary files differ)
Modified: trunk/PDFSelection_SKExtensions.h
===================================================================
--- trunk/PDFSelection_SKExtensions.h 2007-07-28 16:50:23 UTC (rev 2579)
+++ trunk/PDFSelection_SKExtensions.h 2007-07-28 18:18:15 UTC (rev 2580)
@@ -45,6 +45,8 @@
- (NSString *)firstPageLabel;
- (NSAttributedString *)contextString;
+- (PDFDestination *)destination;
+
- (int)safeNumberOfRangesOnPage:(PDFPage *)page;
- (NSRange)safeRangeAtIndex:(int)index onPage:(PDFPage *)page;
Modified: trunk/PDFSelection_SKExtensions.m
===================================================================
--- trunk/PDFSelection_SKExtensions.m 2007-07-28 16:50:23 UTC (rev 2579)
+++ trunk/PDFSelection_SKExtensions.m 2007-07-28 18:18:15 UTC (rev 2580)
@@ -100,6 +100,17 @@
return [attributedSample autorelease];
}
+- (PDFDestination *)destination {
+ PDFDestination *destination = nil;
+ NSArray *pages = [self pages];
+ if ([pages count]) {
+ PDFPage *page = [pages objectAtIndex:0];
+ NSRect bounds = [self boundsForPage:page];
+ destination = [[[PDFDestination alloc] initWithPage:page
atPoint:NSMakePoint(NSMinX(bounds), NSMaxY(bounds))] autorelease];
+ }
+ return destination;
+}
+
- (int)safeNumberOfRangesOnPage:(PDFPage *)page {
if ([self respondsToSelector:@selector(numberOfRangesOnPage:)])
return [self numberOfRangesOnPage:page];
Added: trunk/SKFindTableView.h
===================================================================
--- trunk/SKFindTableView.h (rev 0)
+++ trunk/SKFindTableView.h 2007-07-28 18:18:15 UTC (rev 2580)
@@ -0,0 +1,23 @@
+//
+// SKFindTableView.h
+// Skim
+//
+// Created by Christiaan Hofman on 28/7/07.
+// Copyright 2007 __MyCompanyName__. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+#import <Carbon/Carbon.h>
+
+
[EMAIL PROTECTED] SKFindTableView : NSTableView {
+ CFMutableArrayRef trackingRects;
+}
[EMAIL PROTECTED]
+
+
[EMAIL PROTECTED] NSObject (SKFindTableViewDelegate)
+- (BOOL)tableView:(NSTableView *)aTableView
shouldTrackTableColumn:(NSTableColumn *)aTableColumn row:(int)rowIndex;
+- (void)tableView:(NSTableView *)aTableView
mouseEnteredTableColumn:(NSTableColumn *)aTableColumn row:(int)rowIndex;
+- (void)tableView:(NSTableView *)aTableView
mouseExitedTableColumn:(NSTableColumn *)aTableColumn row:(int)rowIndex;
[EMAIL PROTECTED]
Added: trunk/SKFindTableView.m
===================================================================
--- trunk/SKFindTableView.m (rev 0)
+++ trunk/SKFindTableView.m 2007-07-28 18:18:15 UTC (rev 2580)
@@ -0,0 +1,111 @@
+//
+// SKFindTableView.m
+// Skim
+//
+// Created by Christiaan Hofman on 28/7/07.
+// Copyright 2007 __MyCompanyName__. All rights reserved.
+//
+
+#import "SKFindTableView.h"
+
+
[EMAIL PROTECTED] SKFindTableView
+
+- (void)dealloc{
+ if (trackingRects != NULL)
+ CFRelease(trackingRects);
+ [super dealloc];
+}
+
+- (void)removeTrackingRects {
+ if ([[self delegate]
respondsToSelector:@selector(tableView:shouldTrackTableColumn:row:)] == NO)
+ return;
+
+ CFIndex idx = CFArrayGetCount(trackingRects);
+ while(idx--)
+ [self
removeTrackingRect:(NSTrackingRectTag)CFArrayGetValueAtIndex(trackingRects,
idx)];
+ CFArrayRemoveAllValues(trackingRects);
+}
+
+- (void)rebuildTrackingRects {
+ if ([[self delegate]
respondsToSelector:@selector(tableView:shouldTrackTableColumn:row:)] == NO)
+ return;
+
+ if (trackingRects == nil)
+ trackingRects = CFArrayCreateMutable(kCFAllocatorDefault, 0, NULL);
+ else
+ [self removeTrackingRects];
+
+ NSRange rowRange = [self rowsInRect:[self visibleRect]];
+ NSRange columnRange = [self columnsInRect:[self visibleRect]];
+ unsigned int row, column;
+ NSTableColumn *tableColumn;
+ NSTrackingRectTag tag;
+ BOOL assumeInside = [[self delegate]
respondsToSelector:@selector(tableView:mouseEnteredTableColumn:row:)];
+
+ for (column = columnRange.location; column < NSMaxRange(columnRange);
column++) {
+ tableColumn = [[self tableColumns] objectAtIndex:column];
+ for (row = rowRange.location; row < NSMaxRange(rowRange);
row++) {
+ if ([[self delegate] tableView:self
shouldTrackTableColumn:tableColumn row:row]) {
+ tag = [self addTrackingRect:[self frameOfCellAtColumn:column
row:row] owner:self userData:NULL assumeInside:assumeInside];
+ CFArrayAppendValue(trackingRects, (const void *)tag);
+ }
+ }
+ }
+}
+
+- (void)reloadData{
+ [super reloadData];
+ [self rebuildTrackingRects];
+}
+
+- (void)resetCursorRects {
+ [super resetCursorRects];
+ [self rebuildTrackingRects];
+}
+
+- (void)setDataSource:(id)anObject {
+ [super setDataSource:anObject];
+ [self rebuildTrackingRects];
+}
+
+- (void)noteNumberOfRowsChanged {
+ [super noteNumberOfRowsChanged];
+ [self rebuildTrackingRects];
+}
+
+- (void)viewWillMoveToWindow:(NSWindow *)newWindow {
+ if ([self window])
+ [self removeTrackingRects];
+}
+
+- (void)viewDidMoveToWindow {
+ if ([self window])
+ [self rebuildTrackingRects];
+}
+
+- (void)mouseEntered:(NSEvent *)theEvent{
+ if ([[self delegate]
respondsToSelector:@selector(tableView:mouseEnteredTableColumn:row:)]) {
+ NSPoint point = [self convertPoint:[theEvent locationInWindow]
fromView:nil];
+ int column = [self columnAtPoint:point];
+ int row = [self rowAtPoint:point];
+ if (column != -1 && row != -1) {
+ NSTableColumn *tableColumn = [[self tableColumns]
objectAtIndex:column];
+ [[self delegate] tableView:self
mouseEnteredTableColumn:tableColumn row:row];
+ }
+ }
+}
+
+- (void)mouseExited:(NSEvent *)theEvent{
+ if ([[self delegate]
respondsToSelector:@selector(tableView:mouseExitedTableColumn:row:)]) {
+ NSPoint point = [self convertPoint:[theEvent locationInWindow]
fromView:nil];
+ int column = [self columnAtPoint:point];
+ int row = [self rowAtPoint:point];
+ if (column != -1 && row != -1) {
+ NSTableColumn *tableColumn = [[self tableColumns]
objectAtIndex:column];
+ [[self delegate] tableView:self mouseExitedTableColumn:tableColumn
row:row];
+ }
+ }
+}
+
[EMAIL PROTECTED]
Modified: trunk/SKMainWindowController.m
===================================================================
--- trunk/SKMainWindowController.m 2007-07-28 16:50:23 UTC (rev 2579)
+++ trunk/SKMainWindowController.m 2007-07-28 18:18:15 UTC (rev 2580)
@@ -63,6 +63,7 @@
#import "SKOutlineView.h"
#import "SKNoteOutlineView.h"
#import "SKThumbnailTableView.h"
+#import "SKFindTableView.h"
#import "BDSKImagePopUpButton.h"
#import "NSWindowController_SKExtensions.h"
#import "SKPDFHoverWindow.h"
@@ -2237,6 +2238,9 @@
if ([newView window] == nil) {
BOOL wasFirstResponder = [[[oldView window] firstResponder]
isDescendantOf:oldView];
+ if ([oldView isEqual:tocView] || [oldView isEqual:findView])
+ [[SKPDFHoverWindow sharedHoverWindow] orderOut:self];
+
[newView setFrame:[oldView frame]];
[newView setHidden:animate];
[[oldView superview] addSubview:newView];
@@ -3152,15 +3156,6 @@
}
}
-- (NSString *)outlineView:(NSOutlineView *)ov toolTipForCell:(NSCell *)cell
rect:(NSRectPointer)rect tableColumn:(NSTableColumn *)tc item:(id)item
mouseLocation:(NSPoint)mouseLocation{
- if ([ov isEqual:outlineView]) {
- return [(PDFOutline *)item label];
- } else if ([ov isEqual:noteOutlineView]) {
- return [item type] ? [item contents] : [[(SKNoteText *)item contents]
string];
- }
- return nil;
-}
-
- (void)outlineViewNoteTypesDidChange:(NSOutlineView *)ov {
if ([ov isEqual:noteOutlineView]) {
[self updateNoteFilterPredicate];
@@ -3218,6 +3213,20 @@
return nil;
}
+- (BOOL)outlineView:(NSOutlineView *)anOutlineView
shouldTrackTableColumn:(NSTableColumn *)aTableColumn item:(id)item {
+ return YES;
+}
+
+- (void)outlineView:(NSOutlineView *)anOutlineView
mouseEnteredTableColumn:(NSTableColumn *)aTableColumn item:(id)item {
+ PDFAnnotationLink *link = [[[PDFAnnotationLink alloc]
initWithBounds:NSZeroRect] autorelease];
+ [link setDestination:[item destination]];
+ [[SKPDFHoverWindow sharedHoverWindow] showForAnnotation:link
atPoint:NSZeroPoint];
+}
+
+- (void)outlineView:(NSOutlineView *)anOutlineView
mouseExitedTableColumn:(NSTableColumn *)aTableColumn item:(id)item {
+ [[SKPDFHoverWindow sharedHoverWindow] hide];
+}
+
#pragma mark NSTableView delegate protocol
- (void)tableViewSelectionDidChange:(NSNotification *)aNotification {
@@ -3341,6 +3350,30 @@
return nil;
}
+- (BOOL)tableView:(NSTableView *)tv shouldTrackTableColumn:(NSTableColumn
*)aTableColumn row:(int)row {
+ if ([tv isEqual:findTableView]) {
+ return YES;
+ }
+ return NO;
+}
+
+- (void)tableView:(NSTableView *)tv mouseEnteredTableColumn:(NSTableColumn
*)aTableColumn row:(int)row {
+ if ([tv isEqual:findTableView]) {
+ PDFAnnotationLink *link = [[[PDFAnnotationLink alloc]
initWithBounds:NSZeroRect] autorelease];
+ PDFSelection *selection = [[[findArrayController arrangedObjects]
objectAtIndex:row] copy];
+ [selection extendSelectionAtStart:10];
+ [link setDestination:[selection destination]];
+ [selection release];
+ [[SKPDFHoverWindow sharedHoverWindow] showForAnnotation:link
atPoint:NSZeroPoint];
+ }
+}
+
+- (void)tableView:(NSTableView *)tv mouseExitedTableColumn:(NSTableColumn
*)aTableColumn row:(int)row {
+ if ([tv isEqual:findTableView]) {
+ [[SKPDFHoverWindow sharedHoverWindow] hide];
+ }
+}
+
#pragma mark Outline
- (int)outlineRowForPageIndex:(unsigned int)pageIndex {
Modified: trunk/SKOutlineView.h
===================================================================
--- trunk/SKOutlineView.h 2007-07-28 16:50:23 UTC (rev 2579)
+++ trunk/SKOutlineView.h 2007-07-28 18:18:15 UTC (rev 2580)
@@ -37,12 +37,18 @@
*/
#import <Cocoa/Cocoa.h>
+#import <Carbon/Carbon.h>
[EMAIL PROTECTED] SKOutlineView : NSOutlineView
[EMAIL PROTECTED] SKOutlineView : NSOutlineView {
+ CFMutableArrayRef trackingRects;
+}
@end
@interface NSObject (SKOutlineViewDelegate)
- (NSArray *)outlineViewHighlightedRows:(NSOutlineView *)anOutlineView;
+- (BOOL)outlineView:(NSOutlineView *)anOutlineView
shouldTrackTableColumn:(NSTableColumn *)aTableColumn item:(id)item;
+- (void)outlineView:(NSOutlineView *)anOutlineView
mouseEnteredTableColumn:(NSTableColumn *)aTableColumn item:(id)item;
+- (void)outlineView:(NSOutlineView *)anOutlineView
mouseExitedTableColumn:(NSTableColumn *)aTableColumn item:(id)item;
@end
Modified: trunk/SKOutlineView.m
===================================================================
--- trunk/SKOutlineView.m 2007-07-28 16:50:23 UTC (rev 2579)
+++ trunk/SKOutlineView.m 2007-07-28 18:18:15 UTC (rev 2580)
@@ -41,6 +41,12 @@
@implementation SKOutlineView
+- (void)dealloc {
+ if (trackingRects != NULL)
+ CFRelease(trackingRects);
+ [super dealloc];
+}
+
- (void)highlightSelectionInClipRect:(NSRect)clipRect {
if ([[self delegate]
respondsToSelector:@selector(outlineViewHighlightedRows:)]) {
NSMutableIndexSet *rowIndexes = [[[self selectedRowIndexes]
mutableCopy] autorelease];
@@ -65,4 +71,94 @@
[super highlightSelectionInClipRect:clipRect];
}
+- (void)removeTrackingRects {
+ if ([[self delegate]
respondsToSelector:@selector(outlineView:shouldTrackTableColumn:item:)] == NO)
+ return;
+
+ CFIndex idx = CFArrayGetCount(trackingRects);
+ while(idx--)
+ [self
removeTrackingRect:(NSTrackingRectTag)CFArrayGetValueAtIndex(trackingRects,
idx)];
+ CFArrayRemoveAllValues(trackingRects);
+}
+
+- (void)rebuildTrackingRects {
+ if ([[self delegate]
respondsToSelector:@selector(outlineView:shouldTrackTableColumn:item:)] == NO)
+ return;
+
+ if (trackingRects == nil)
+ trackingRects = CFArrayCreateMutable(kCFAllocatorDefault, 0, NULL);
+ else
+ [self removeTrackingRects];
+
+ NSRange rowRange = [self rowsInRect:[self visibleRect]];
+ NSRange columnRange = [self columnsInRect:[self visibleRect]];
+ unsigned int row, column;
+ NSTableColumn *tableColumn;
+ NSTrackingRectTag tag;
+
+ for (column = columnRange.location; column < NSMaxRange(columnRange);
column++) {
+ tableColumn = [[self tableColumns] objectAtIndex:column];
+ for (row = rowRange.location; row < NSMaxRange(rowRange);
row++) {
+ if ([[self delegate] outlineView:self
shouldTrackTableColumn:tableColumn item:[self itemAtRow:row]]) {
+ tag = [self addTrackingRect:[self frameOfCellAtColumn:column
row:row] owner:self userData:NULL assumeInside:NO];
+ CFArrayAppendValue(trackingRects, (const void *)tag);
+ }
+ }
+ }
+}
+
+- (void)reloadData{
+ [super reloadData];
+ [self rebuildTrackingRects];
+}
+
+- (void)resetCursorRects {
+ [super resetCursorRects];
+ [self rebuildTrackingRects];
+}
+
+- (void)setDataSource:(id)anObject {
+ [super setDataSource:anObject];
+ [self rebuildTrackingRects];
+}
+
+- (void)noteNumberOfRowsChanged {
+ [super noteNumberOfRowsChanged];
+ [self rebuildTrackingRects];
+}
+
+- (void)viewWillMoveToWindow:(NSWindow *)newWindow {
+ if ([self window])
+ [self removeTrackingRects];
+}
+
+- (void)viewDidMoveToWindow {
+ if ([self window])
+ [self rebuildTrackingRects];
+}
+
+- (void)mouseEntered:(NSEvent *)theEvent{
+ if ([[self delegate]
respondsToSelector:@selector(outlineView:mouseEnteredTableColumn:item:)]) {
+ NSPoint point = [self convertPoint:[theEvent locationInWindow]
fromView:nil];
+ int column = [self columnAtPoint:point];
+ int row = [self rowAtPoint:point];
+ if (column != -1 && row != -1) {
+ NSTableColumn *tableColumn = [[self tableColumns]
objectAtIndex:column];
+ [[self delegate] outlineView:self
mouseEnteredTableColumn:tableColumn item:[self itemAtRow:row]];
+ }
+ }
+}
+
+- (void)mouseExited:(NSEvent *)theEvent{
+ if ([[self delegate]
respondsToSelector:@selector(outlineView:mouseExitedTableColumn:item:)]) {
+ NSPoint point = [self convertPoint:[theEvent locationInWindow]
fromView:nil];
+ int column = [self columnAtPoint:point];
+ int row = [self rowAtPoint:point];
+ if (column != -1 && row != -1) {
+ NSTableColumn *tableColumn = [[self tableColumns]
objectAtIndex:column];
+ [[self delegate] outlineView:self
mouseExitedTableColumn:tableColumn item:[self itemAtRow:row]];
+ }
+ }
+}
+
@end
Modified: trunk/SKSideWindow.m
===================================================================
--- trunk/SKSideWindow.m 2007-07-28 16:50:23 UTC (rev 2579)
+++ trunk/SKSideWindow.m 2007-07-28 18:18:15 UTC (rev 2580)
@@ -39,6 +39,7 @@
#import "SKSideWindow.h"
#import "SKMainWindowController.h"
#import "NSBezierPath_BDSKExtensions.h"
+#import "SKPDFHoverWindow.h"
#define DEFAULT_WINDOW_WIDTH 300.0
#define WINDOW_INSET 1.0
@@ -171,6 +172,12 @@
[(SKSideWindowContentView *)[self contentView] setEnabled:flag];
}
+- (void)sendEvent:(NSEvent *)theEvent {
+ if ([theEvent type] == NSLeftMouseDown || [theEvent type] ==
NSRightMouseDown)
+ [[SKPDFHoverWindow sharedHoverWindow] orderOut:nil];
+ [super sendEvent:theEvent];
+}
+
- (void)keyDown:(NSEvent *)theEvent {
NSString *characters = [theEvent charactersIgnoringModifiers];
unichar ch = [characters length] > 0 ? [characters characterAtIndex:0] : 0;
Modified: trunk/Skim.xcodeproj/project.pbxproj
===================================================================
--- trunk/Skim.xcodeproj/project.pbxproj 2007-07-28 16:50:23 UTC (rev
2579)
+++ trunk/Skim.xcodeproj/project.pbxproj 2007-07-28 18:18:15 UTC (rev
2580)
@@ -159,6 +159,8 @@
CEB735A20C4A8CD6000350F9 /* TransitionShading.tiff in Resources
*/ = {isa = PBXBuildFile; fileRef = CEB735A10C4A8CD6000350F9 /*
TransitionShading.tiff */; };
CECDC4FF0C5966A80026AAEC /* NSImage_BDSKExtensions.m in Sources
*/ = {isa = PBXBuildFile; fileRef = CECDC4FD0C5966A80026AAEC /*
NSImage_BDSKExtensions.m */; };
CECDD2990C5B68580026AAEC /* SKCenteredTextFieldCell.m in
Sources */ = {isa = PBXBuildFile; fileRef = CECDD2970C5B68580026AAEC /*
SKCenteredTextFieldCell.m */; };
+ CECDDBAD0C5BB9600026AAEC /* SKFindTableView.h in CopyFiles */ =
{isa = PBXBuildFile; fileRef = CECDDBAB0C5BB95F0026AAEC /* SKFindTableView.h
*/; };
+ CECDDBAE0C5BB9600026AAEC /* SKFindTableView.m in Sources */ =
{isa = PBXBuildFile; fileRef = CECDDBAC0C5BB95F0026AAEC /* SKFindTableView.m
*/; };
CEE106150BCBB72C00BF2D3E /* SKNotesDocument.m in Sources */ =
{isa = PBXBuildFile; fileRef = CEE106140BCBB72C00BF2D3E /* SKNotesDocument.m
*/; };
CEE1065E0BCBBE1300BF2D3E /* NotesDocument.nib in Resources */ =
{isa = PBXBuildFile; fileRef = CEE106580BCBBE1200BF2D3E /* NotesDocument.nib
*/; };
CEE229390BFB7CE9002B746B /* ReleaseNotes.rtf in Resources */ =
{isa = PBXBuildFile; fileRef = CE54AA8E0BBC037400008750 /* ReleaseNotes.rtf */;
};
@@ -257,6 +259,7 @@
dstSubfolderSpec = 10;
files = (
CE2BD8450BD4135600A5F4DB /* Sparkle.framework
in CopyFiles */,
+ CECDDBAD0C5BB9600026AAEC /* SKFindTableView.h
in CopyFiles */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -541,6 +544,8 @@
CECDC4FD0C5966A80026AAEC /* NSImage_BDSKExtensions.m */ = {isa
= PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc;
path = NSImage_BDSKExtensions.m; sourceTree = "<group>"; };
CECDD2960C5B68580026AAEC /* SKCenteredTextFieldCell.h */ = {isa
= PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path
= SKCenteredTextFieldCell.h; sourceTree = "<group>"; };
CECDD2970C5B68580026AAEC /* SKCenteredTextFieldCell.m */ = {isa
= PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc;
path = SKCenteredTextFieldCell.m; sourceTree = "<group>"; };
+ CECDDBAB0C5BB95F0026AAEC /* SKFindTableView.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path =
SKFindTableView.h; sourceTree = "<group>"; };
+ CECDDBAC0C5BB95F0026AAEC /* SKFindTableView.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path
= SKFindTableView.m; sourceTree = "<group>"; };
CEE106130BCBB72C00BF2D3E /* SKNotesDocument.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path =
SKNotesDocument.h; sourceTree = "<group>"; };
CEE106140BCBB72C00BF2D3E /* SKNotesDocument.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path
= SKNotesDocument.m; sourceTree = "<group>"; };
CEE106590BCBBE1200BF2D3E /* English */ = {isa =
PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path =
English.lproj/NotesDocument.nib; sourceTree = "<group>"; };
@@ -863,6 +868,8 @@
children = (
CE4D97FA0C3C2BFF002C20CB /* SKColorSwatch.h */,
CE4D97FB0C3C2BFF002C20CB /* SKColorSwatch.m */,
+ CECDDBAB0C5BB95F0026AAEC /* SKFindTableView.h
*/,
+ CECDDBAC0C5BB95F0026AAEC /* SKFindTableView.m
*/,
CE4BC12D0C357A0300C2AF03 /* SKLineWell.h */,
CE4BC12E0C357A0300C2AF03 /* SKLineWell.m */,
CEA575CC0B9206E60003D2E7 /* SKNoteOutlineView.h
*/,
@@ -1373,6 +1380,7 @@
CE1ADEBF0C4C341100071840 /*
SKTransitionController.m in Sources */,
CECDC4FF0C5966A80026AAEC /*
NSImage_BDSKExtensions.m in Sources */,
CECDD2990C5B68580026AAEC /*
SKCenteredTextFieldCell.m in Sources */,
+ CECDDBAE0C5BB9600026AAEC /* SKFindTableView.m
in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit