Revision: 3312
http://skim-app.svn.sourceforge.net/skim-app/?rev=3312&view=rev
Author: hofman
Date: 2007-12-05 08:35:55 -0800 (Wed, 05 Dec 2007)
Log Message:
-----------
Use built-in mouseover support in nsbutton to show custom tool tips in
navigation window.
Modified Paths:
--------------
trunk/SKNavigationWindow.h
trunk/SKNavigationWindow.m
Modified: trunk/SKNavigationWindow.h
===================================================================
--- trunk/SKNavigationWindow.h 2007-12-05 12:57:16 UTC (rev 3311)
+++ trunk/SKNavigationWindow.h 2007-12-05 16:35:55 UTC (rev 3312)
@@ -56,9 +56,11 @@
@interface SKNavigationToolTipWindow : NSWindow {
SKNavigationToolTipView *toolTipView;
+ NSView *view;
}
+ (id)sharedToolTipWindow;
-- (void)showToolTip:(NSString *)toolTip forView:(NSView *)view;
+- (void)showToolTip:(NSString *)toolTip forView:(NSView *)aView;
+- (NSView *)view;
@end
@interface SKNavigationToolTipView : NSView {
Modified: trunk/SKNavigationWindow.m
===================================================================
--- trunk/SKNavigationWindow.m 2007-12-05 12:57:16 UTC (rev 3311)
+++ trunk/SKNavigationWindow.m 2007-12-05 16:35:55 UTC (rev 3312)
@@ -75,16 +75,16 @@
[button setTarget:controller];
[button setAction:@selector(doGoToPreviousPage:)];
[button setToolTip:NSLocalizedString(@"Previous", @"Tool tip
message")];
+ [button setShowsBorderOnlyWhileMouseInside:YES];
[[self contentView] addSubview:button];
- [button addTrackingRect:NSInsetRect([button bounds], 3.0, 0.0)
owner:button userData:nil assumeInside:NO];
rect.origin.x = NSMaxX(rect);
button = [[[SKNavigationNextButton alloc] initWithFrame:rect]
autorelease];
[button setTarget:controller];
[button setAction:@selector(doGoToNextPage:)];
[button setToolTip:NSLocalizedString(@"Next", @"Tool tip message")];
+ [button setShowsBorderOnlyWhileMouseInside:YES];
[[self contentView] addSubview:button];
- [button addTrackingRect:NSInsetRect([button bounds], 3.0, 0.0)
owner:button userData:nil assumeInside:NO];
rect.origin.x = NSMaxX(rect);
rect.size.width = SEP_WIDTH;
@@ -99,8 +99,8 @@
[button setToolTip:NSLocalizedString(@"Fit to Screen", @"Tool tip
message")];
[button setAlternateToolTip:NSLocalizedString(@"Actual Size", @"Tool
tip message")];
[button setState:[pdfView autoScales]];
+ [button setShowsBorderOnlyWhileMouseInside:YES];
[[self contentView] addSubview:button];
- [button addTrackingRect:NSInsetRect([button bounds], 3.0, 0.0)
owner:button userData:nil assumeInside:NO];
[[NSNotificationCenter defaultCenter] addObserver: button selector:
@selector(handleScaleChangedNotification:)
name:
PDFViewScaleChangedNotification object: pdfView];
@@ -115,8 +115,8 @@
[button setTarget:controller];
[button setAction:@selector(exitFullScreen:)];
[button setToolTip:NSLocalizedString(@"Close", @"Tool tip message")];
+ [button setShowsBorderOnlyWhileMouseInside:YES];
[[self contentView] addSubview:button];
- [button addTrackingRect:NSInsetRect([button bounds], 3.0, 0.0)
owner:button userData:nil assumeInside:NO];
}
return self;
}
@@ -195,9 +195,7 @@
@end
[EMAIL PROTECTED] SKNavigationToolTipWindow : NSWindow {
- SKNavigationToolTipView *toolTipView;
-}
[EMAIL PROTECTED] SKNavigationToolTipWindow
static SKNavigationToolTipWindow *sharedToolTipWindow = nil;
@@ -224,7 +222,9 @@
- (BOOL)canBecomeMainWindow { return NO; }
-- (void)showToolTip:(NSString *)toolTip forView:(NSView *)view {
+- (void)showToolTip:(NSString *)toolTip forView:(NSView *)aView {
+ [view release];
+ view = [aView retain];
[toolTipView setStringValue:toolTip];
[toolTipView sizeToFit];
NSRect newFrame = [self frameRectForContentRect:[toolTipView frame]];
@@ -243,8 +243,14 @@
- (void)orderOut:(id)sender {
[[self parentWindow] removeChildWindow:self];
[super orderOut:sender];
+ [view release];
+ view = nil;
}
+- (NSView *)view {
+ return view;
+}
+
@end
@implementation SKNavigationToolTipView
@@ -344,14 +350,6 @@
}
}
-- (void)mouseEntered:(NSEvent *)theEvent {
- [[SKNavigationToolTipWindow sharedToolTipWindow] showToolTip:[self
currentToolTip] forView:self];
-}
-
-- (void)mouseExited:(NSEvent *)theEvent {
- [[SKNavigationToolTipWindow sharedToolTipWindow] orderOut:self];
-}
-
@end
@implementation SKNavigationButtonCell
@@ -374,6 +372,19 @@
return nil;
}
+- (void)mouseEntered:(NSEvent *)theEvent {
+ SKNavigationButton *button = (SKNavigationButton *)[self controlView];
+ [[SKNavigationToolTipWindow sharedToolTipWindow] showToolTip:[button
currentToolTip] forView:button];
+ [super mouseEntered:theEvent];
+}
+
+- (void)mouseExited:(NSEvent *)theEvent {
+ SKNavigationButton *button = (SKNavigationButton *)[self controlView];
+ if ([[[SKNavigationToolTipWindow sharedToolTipWindow] view]
isEqual:button])
+ [[SKNavigationToolTipWindow sharedToolTipWindow] orderOut:button];
+ [super mouseExited:theEvent];
+}
+
@end
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell. From the desktop to the data center, Linux is going
mainstream. Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit