Revision: 3304
          http://skim-app.svn.sourceforge.net/skim-app/?rev=3304&view=rev
Author:   hofman
Date:     2007-12-03 08:31:12 -0800 (Mon, 03 Dec 2007)

Log Message:
-----------
Move indication window for remote control state indication to separate file. 
use a shared window, we should never show two at a time. 

Modified Paths:
--------------
    trunk/SKApplicationController.h
    trunk/SKApplicationController.m
    trunk/Skim.xcodeproj/project.pbxproj

Added Paths:
-----------
    trunk/SKRemoteStateWindow.h
    trunk/SKRemoteStateWindow.m

Modified: trunk/SKApplicationController.h
===================================================================
--- trunk/SKApplicationController.h     2007-12-03 10:57:20 UTC (rev 3303)
+++ trunk/SKApplicationController.h     2007-12-03 16:31:12 UTC (rev 3304)
@@ -99,24 +99,3 @@
 - (SKLine *)objectInLinesAtIndex:(unsigned int)index;
 
 @end
-
-#pragma mark -
-
-enum {
-    SKSplashTypeResize,
-    SKSplashTypeScroll
-};
-
[EMAIL PROTECTED] SKSplashWindow : NSWindow
-- (id)initWithType:(int)splashType atPoint:(NSPoint)point screen:(NSScreen 
*)screen;
-- (void)showWithTimeout:(NSTimeInterval)timeout;
-- (void)fadeOut:(id)sender;
[EMAIL PROTECTED]
-
-
[EMAIL PROTECTED] SKSplashContentView : NSView {
-    int splashType;
-}
-- (id)initWithType:(int)aSplashType;
[EMAIL PROTECTED]
-

Modified: trunk/SKApplicationController.m
===================================================================
--- trunk/SKApplicationController.m     2007-12-03 10:57:20 UTC (rev 3303)
+++ trunk/SKApplicationController.m     2007-12-03 16:31:12 UTC (rev 3304)
@@ -56,19 +56,17 @@
 #import "KeyspanFrontRowControl.h"
 #import "GlobalKeyboardDevice.h"
 #import "RemoteControlContainer.h"
-#import "MultiClickRemoteBehavior.h"
-#import "NSBezierPath_BDSKExtensions.h"
 #import "SKLine.h"
 #import "NSImage_SKExtensions.h"
 #import "SKDownloadController.h"
 #import "NSURL_SKExtensions.h"
 #import "SKDocumentController.h"
 #import "Files_SKExtensions.h"
-#import "NSGeometry_SKExtensions.h"
 #import "NSTask_SKExtensions.h"
 #import "NSView_SKExtensions.h"
 #import "OBUtilities.h"
 #import "SKPDFAnnotationNote.h"
+#import "SKRemoteStateWindow.h"
 
 #define WEBSITE_URL @"http://skim-app.sourceforge.net/";
 #define WIKI_URL    @"http://skim-app.sourceforge.net/wiki/";
@@ -374,10 +372,10 @@
             remoteScrolling = !remoteScrolling;
             float timeout = [[NSUserDefaults standardUserDefaults] 
floatForKey:SKAppleRemoteSwitchIndicationTimeoutKey];
             if (timeout > 0.0) {
-                NSWindow *window = [controller window];
-                NSRect rect = [window frame];
-                SKSplashWindow *splashWindow = [[[SKSplashWindow alloc] 
initWithType:remoteScrolling ? SKSplashTypeScroll : SKSplashTypeResize 
atPoint:NSMakePoint(NSMidX(rect), NSMidY(rect)) screen:[window screen]] 
autorelease];
-                [splashWindow showWithTimeout:timeout];
+                NSRect rect = [[controller window] frame];
+                NSPoint point = NSMakePoint(NSMidX(rect), NSMidY(rect));
+                int type = remoteScrolling ? SKRemoteStateScroll : 
SKRemoteStateResize;
+                [SKRemoteStateWindow showWithType:type atPoint:point 
timeout:timeout];
             }
             break;
         default:
@@ -701,145 +699,3 @@
 }
 
 @end
-
-#pragma mark -
-
[EMAIL PROTECTED] SKSplashWindow
-
-- (id)initWithType:(int)splashType atPoint:(NSPoint)point screen:(NSScreen 
*)screen {
-    NSRect contentRect = NSMakeRect(point.x - 30.0, point.y - 30.0, 60.0, 
60.0);
-    if (self = [super initWithContentRect:contentRect 
styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:NO 
screen:screen]) {
-        [self setIgnoresMouseEvents:YES];
-               [self setBackgroundColor:[NSColor clearColor]];
-        [self setAlphaValue:0.95];
-               [self setOpaque:NO];
-        [self setDisplaysWhenScreenProfileChanges:YES];
-        [self setLevel:NSStatusWindowLevel];
-        [self setContentView:[[[SKSplashContentView alloc] 
initWithType:splashType] autorelease]];
-    }
-    return self;
-}
-
-- (BOOL)canBecomeKeyWindow { return NO; }
-
-- (BOOL)canBecomeMainWindow { return NO; }
-    
-- (void)animationDidEnd:(NSAnimation *)animation { [self close]; }
-
-- (void)animationDidStop:(NSAnimation *)animation { [self close]; }
-
-- (void)fadeOut:(id)sender {
-    NSDictionary *fadeOutDict = [[NSDictionary alloc] 
initWithObjectsAndKeys:self, NSViewAnimationTargetKey, 
NSViewAnimationFadeOutEffect, NSViewAnimationEffectKey, nil];
-    NSViewAnimation *animation = [[[NSViewAnimation alloc] 
initWithViewAnimations:[NSArray arrayWithObjects:fadeOutDict, nil]] 
autorelease];
-    [fadeOutDict release];
-    [animation setDuration:1.0];
-    [animation setAnimationBlockingMode:NSAnimationNonblocking];
-    [animation setDelegate:self];
-    [animation startAnimation];
-}
-
-- (void)showWithTimeout:(NSTimeInterval)timeout {
-    [self retain]; // isReleasedWhenClosed is true by default
-    [self orderFrontRegardless];
-    [NSTimer scheduledTimerWithTimeInterval:timeout target:self 
selector:@selector(fadeOut:) userInfo:nil repeats:NO];
-}
-
[EMAIL PROTECTED]
-
-#pragma mark -
-
[EMAIL PROTECTED] SKSplashContentView
-
-- (id)initWithType:(int)aSplashType {
-    if (self = [super init]) {
-        splashType = aSplashType;
-    }
-    return self;
-}
-
-- (void)drawRect:(NSRect)rect {
-    NSRect bounds = [self bounds];
-    NSPoint center = SKCenterPoint(bounds);
-    
-    [[NSColor colorWithCalibratedWhite:0.0 alpha:0.5] setFill];
-    [NSBezierPath fillRoundRectInRect:[self bounds] radius:10.0];
-    
-    NSBezierPath *path = nil;
-    
-    if (splashType == SKSplashTypeResize) {
-        
-        path = [NSBezierPath bezierPathWithRoundRectInRect:NSInsetRect(bounds, 
20.0, 20.0) radius:3.0];
-        [path appendBezierPath:[NSBezierPath 
bezierPathWithRect:NSInsetRect(bounds, 24.0, 24.0)]];
-        
-        NSBezierPath *arrow = [NSBezierPath bezierPath];
-        [arrow moveToPoint:NSMakePoint(NSMinX(bounds) + 10.0, NSMinY(bounds) + 
10.0)];
-        [arrow relativeLineToPoint:NSMakePoint(6.0, 0.0)];
-        [arrow relativeLineToPoint:NSMakePoint(-2.0, 2.0)];
-        [arrow relativeLineToPoint:NSMakePoint(2.0, 2.0)];
-        [arrow relativeLineToPoint:NSMakePoint(2.0, -2.0)];
-        [arrow relativeLineToPoint:NSMakePoint(0.0, 6.0)];
-        [arrow relativeLineToPoint:NSMakePoint(-6.0, 0.0)];
-        [arrow relativeLineToPoint:NSMakePoint(2.0, -2.0)];
-        [arrow relativeLineToPoint:NSMakePoint(-2.0, -2.0)];
-        [arrow relativeLineToPoint:NSMakePoint(-2.0, 2.0)];
-        [arrow closePath];
-        
-        NSAffineTransform *transform = [[[NSAffineTransform alloc] init] 
autorelease];
-        [transform translateXBy:center.x yBy:center.y];
-        [transform rotateByDegrees:90.0];
-        [transform translateXBy:-center.x yBy:-center.y];
-        [path appendBezierPath:arrow];
-        [arrow transformUsingAffineTransform:transform];
-        [path appendBezierPath:arrow];
-        [arrow transformUsingAffineTransform:transform];
-        [path appendBezierPath:arrow];
-        [arrow transformUsingAffineTransform:transform];
-        [path appendBezierPath:arrow];
-        
-        arrow = [NSBezierPath bezierPath];
-        [arrow moveToPoint:NSMakePoint(NSMinX(bounds) + 5.0, NSMidY(bounds))];
-        [arrow relativeLineToPoint:NSMakePoint(10.0, 5.0)];
-        [arrow relativeLineToPoint:NSMakePoint(0.0, -10.0)];
-        [arrow closePath];
-        [path appendBezierPath:arrow];
-        [transform translateXBy:center.x yBy:center.y];
-        [transform rotateByDegrees:90.0];
-        [transform translateXBy:-center.x yBy:-center.y];
-        [arrow transformUsingAffineTransform:transform];
-        [path appendBezierPath:arrow];
-        
-        [path setWindingRule:NSEvenOddWindingRule];
-        
-    } else if (splashType == SKSplashTypeScroll) {
-        
-        path = [NSBezierPath bezierPathWithOvalInRect:NSInsetRect(bounds, 8.0, 
8.0)];
-        [path appendBezierPath:[NSBezierPath 
bezierPathWithOvalInRect:NSInsetRect(bounds, 9.0, 9.0)]];
-        [path appendBezierPath:[NSBezierPath 
bezierPathWithOvalInRect:NSInsetRect(bounds, 25.0, 25.0)]];
-        
-        NSBezierPath *arrow = [NSBezierPath bezierPath];
-        [arrow moveToPoint:NSMakePoint(NSMidX(bounds), NSMinY(bounds) + 12.0)];
-        [arrow relativeLineToPoint:NSMakePoint(7.0, 7.0)];
-        [arrow relativeLineToPoint:NSMakePoint(-14.0, 0.0)];
-        [arrow closePath];
-        
-        NSAffineTransform *transform = [[[NSAffineTransform alloc] init] 
autorelease];
-        [transform translateXBy:center.x yBy:center.y];
-        [transform rotateByDegrees:90.0];
-        [transform translateXBy:-center.x yBy:-center.y];
-        [path appendBezierPath:arrow];
-        [arrow transformUsingAffineTransform:transform];
-        [path appendBezierPath:arrow];
-        [arrow transformUsingAffineTransform:transform];
-        [path appendBezierPath:arrow];
-        [arrow transformUsingAffineTransform:transform];
-        [path appendBezierPath:arrow];
-        
-        [path setWindingRule:NSEvenOddWindingRule];
-        
-    }
-    
-    [[NSColor colorWithCalibratedWhite:1.0 alpha:1.0] setFill];
-    [path fill];
-}
-
[EMAIL PROTECTED]

Added: trunk/SKRemoteStateWindow.h
===================================================================
--- trunk/SKRemoteStateWindow.h                         (rev 0)
+++ trunk/SKRemoteStateWindow.h 2007-12-03 16:31:12 UTC (rev 3304)
@@ -0,0 +1,51 @@
+//
+//  SKRemoteStateWindow.h
+//  Skim
+//
+//  Created by Christiaan Hofman on 12/3/07.
+/*
+ This software is Copyright (c) 2007
+ Christiaan Hofman. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+ - Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in
+    the documentation and/or other materials provided with the
+    distribution.
+
+ - Neither the name of Christiaan Hofman nor the names of any
+    contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import <Cocoa/Cocoa.h>
+
+enum {
+    SKRemoteStateResize,
+    SKRemoteStateScroll
+};
+
[EMAIL PROTECTED] SKRemoteStateWindow : NSWindow {
+    NSViewAnimation *animation;
+    NSTimer *timer;
+}
++ (void)showWithType:(int)remoteState atPoint:(NSPoint)point 
timeout:(NSTimeInterval)timeout;
[EMAIL PROTECTED]

Added: trunk/SKRemoteStateWindow.m
===================================================================
--- trunk/SKRemoteStateWindow.m                         (rev 0)
+++ trunk/SKRemoteStateWindow.m 2007-12-03 16:31:12 UTC (rev 3304)
@@ -0,0 +1,222 @@
+//
+//  SKRemoteStateWindow.m
+//  Skim
+//
+//  Created by Christiaan Hofman on 12/3/07.
+/*
+ This software is Copyright (c) 2007
+ Christiaan Hofman. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+ - Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in
+    the documentation and/or other materials provided with the
+    distribution.
+
+ - Neither the name of Christiaan Hofman nor the names of any
+    contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import "SKRemoteStateWindow.h"
+#import "NSGeometry_SKExtensions.h"
+#import "NSBezierPath_BDSKExtensions.h"
+
+
[EMAIL PROTECTED] SKRemoteStateView : NSView {
+    int remoteState;
+}
+- (int)remoteState;
+- (void)setRemoteState:(int)newRemoteState;
[EMAIL PROTECTED]
+
+
[EMAIL PROTECTED] SKRemoteStateWindow
+
++ (id)sharedRemoteStateWindow {
+    static id sharedRemoteStateWindow = nil;
+    if (sharedRemoteStateWindow == nil)
+        sharedRemoteStateWindow = [[SKRemoteStateWindow alloc] init];
+    return sharedRemoteStateWindow;
+}
+
++ (void)showWithType:(int)remoteState atPoint:(NSPoint)point 
timeout:(NSTimeInterval)timeout {
+    [[[self class] sharedRemoteStateWindow] showWithType:remoteState 
atPoint:point timeout:timeout];
+}
+
+- (id)init {
+    NSRect contentRect = SKRectFromCenterAndSize(NSZeroPoint, 
SKMakeSquareSize(60.0));
+    if (self = [super initWithContentRect:contentRect 
styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:NO]) {
+        [self setIgnoresMouseEvents:YES];
+        [self setReleasedWhenClosed:NO];
+               [self setBackgroundColor:[NSColor clearColor]];
+        [self setAlphaValue:0.95];
+               [self setOpaque:NO];
+        [self setDisplaysWhenScreenProfileChanges:NO];
+        [self setLevel:NSStatusWindowLevel];
+        [self setContentView:[[[SKRemoteStateView alloc] init] autorelease]];
+    }
+    return self;
+}
+
+- (BOOL)canBecomeKeyWindow { return NO; }
+
+- (BOOL)canBecomeMainWindow { return NO; }
+    
+- (void)animationDidEnd:(NSAnimation *)anAnimation {  
+    [animation release];
+    animation = nil;
+    [self orderOut:self];
+    [self setAlphaValue:1.0];
+}
+
+- (void)animationDidStop:(NSAnimation *)animation { [self close]; }
+
+- (void)fadeOut:(id)sender {
+    [timer invalidate];
+    [timer release];
+    timer = nil;
+    
+    NSDictionary *fadeOutDict = [[NSDictionary alloc] 
initWithObjectsAndKeys:self, NSViewAnimationTargetKey, 
NSViewAnimationFadeOutEffect, NSViewAnimationEffectKey, nil];
+    animation = [[NSViewAnimation alloc] initWithViewAnimations:[NSArray 
arrayWithObjects:fadeOutDict, nil]];
+    [fadeOutDict release];
+    [animation setDuration:1.0];
+    [animation setAnimationBlockingMode:NSAnimationNonblocking];
+    [animation setDelegate:self];
+    [animation startAnimation];
+}
+
+- (void)showWithType:(int)remoteState atPoint:(NSPoint)point 
timeout:(NSTimeInterval)timeout {
+    [timer invalidate];
+    [timer release];
+    timer = nil;
+    
+    [animation stopAnimation];
+    [animation release];
+    animation = nil;
+    
+    [self setFrame:SKRectFromCenterAndSize(point, SKMakeSquareSize(60.0)) 
display:NO animate:NO];
+    [(SKRemoteStateView *)[self contentView] setRemoteState:remoteState];
+    
+    [self orderFrontRegardless];
+    timer = [[NSTimer scheduledTimerWithTimeInterval:timeout target:self 
selector:@selector(fadeOut:) userInfo:nil repeats:NO] retain];
+}
+
[EMAIL PROTECTED]
+
+#pragma mark -
+
[EMAIL PROTECTED] SKRemoteStateView
+
+- (int)remoteState {
+    return remoteState;
+}
+
+- (void)setRemoteState:(int)newRemoteState {
+    remoteState = newRemoteState;
+}
+
+- (void)drawRect:(NSRect)rect {
+    NSRect bounds = [self bounds];
+    NSPoint center = SKCenterPoint(bounds);
+    
+    [[NSColor colorWithCalibratedWhite:0.0 alpha:0.5] setFill];
+    [NSBezierPath fillRoundRectInRect:[self bounds] radius:10.0];
+    
+    NSBezierPath *path = nil;
+    
+    if (remoteState == SKRemoteStateResize) {
+        
+        path = [NSBezierPath bezierPathWithRoundRectInRect:NSInsetRect(bounds, 
20.0, 20.0) radius:3.0];
+        [path appendBezierPath:[NSBezierPath 
bezierPathWithRect:NSInsetRect(bounds, 24.0, 24.0)]];
+        
+        NSBezierPath *arrow = [NSBezierPath bezierPath];
+        [arrow moveToPoint:NSMakePoint(NSMinX(bounds) + 10.0, NSMinY(bounds) + 
10.0)];
+        [arrow relativeLineToPoint:NSMakePoint(6.0, 0.0)];
+        [arrow relativeLineToPoint:NSMakePoint(-2.0, 2.0)];
+        [arrow relativeLineToPoint:NSMakePoint(2.0, 2.0)];
+        [arrow relativeLineToPoint:NSMakePoint(2.0, -2.0)];
+        [arrow relativeLineToPoint:NSMakePoint(0.0, 6.0)];
+        [arrow relativeLineToPoint:NSMakePoint(-6.0, 0.0)];
+        [arrow relativeLineToPoint:NSMakePoint(2.0, -2.0)];
+        [arrow relativeLineToPoint:NSMakePoint(-2.0, -2.0)];
+        [arrow relativeLineToPoint:NSMakePoint(-2.0, 2.0)];
+        [arrow closePath];
+        
+        NSAffineTransform *transform = [[[NSAffineTransform alloc] init] 
autorelease];
+        [transform translateXBy:center.x yBy:center.y];
+        [transform rotateByDegrees:90.0];
+        [transform translateXBy:-center.x yBy:-center.y];
+        [path appendBezierPath:arrow];
+        [arrow transformUsingAffineTransform:transform];
+        [path appendBezierPath:arrow];
+        [arrow transformUsingAffineTransform:transform];
+        [path appendBezierPath:arrow];
+        [arrow transformUsingAffineTransform:transform];
+        [path appendBezierPath:arrow];
+        
+        arrow = [NSBezierPath bezierPath];
+        [arrow moveToPoint:NSMakePoint(NSMinX(bounds) + 5.0, NSMidY(bounds))];
+        [arrow relativeLineToPoint:NSMakePoint(10.0, 5.0)];
+        [arrow relativeLineToPoint:NSMakePoint(0.0, -10.0)];
+        [arrow closePath];
+        [path appendBezierPath:arrow];
+        [transform translateXBy:center.x yBy:center.y];
+        [transform rotateByDegrees:90.0];
+        [transform translateXBy:-center.x yBy:-center.y];
+        [arrow transformUsingAffineTransform:transform];
+        [path appendBezierPath:arrow];
+        
+        [path setWindingRule:NSEvenOddWindingRule];
+        
+    } else if (remoteState == SKRemoteStateScroll) {
+        
+        path = [NSBezierPath bezierPathWithOvalInRect:NSInsetRect(bounds, 8.0, 
8.0)];
+        [path appendBezierPath:[NSBezierPath 
bezierPathWithOvalInRect:NSInsetRect(bounds, 9.0, 9.0)]];
+        [path appendBezierPath:[NSBezierPath 
bezierPathWithOvalInRect:NSInsetRect(bounds, 25.0, 25.0)]];
+        
+        NSBezierPath *arrow = [NSBezierPath bezierPath];
+        [arrow moveToPoint:NSMakePoint(NSMidX(bounds), NSMinY(bounds) + 12.0)];
+        [arrow relativeLineToPoint:NSMakePoint(7.0, 7.0)];
+        [arrow relativeLineToPoint:NSMakePoint(-14.0, 0.0)];
+        [arrow closePath];
+        
+        NSAffineTransform *transform = [[[NSAffineTransform alloc] init] 
autorelease];
+        [transform translateXBy:center.x yBy:center.y];
+        [transform rotateByDegrees:90.0];
+        [transform translateXBy:-center.x yBy:-center.y];
+        [path appendBezierPath:arrow];
+        [arrow transformUsingAffineTransform:transform];
+        [path appendBezierPath:arrow];
+        [arrow transformUsingAffineTransform:transform];
+        [path appendBezierPath:arrow];
+        [arrow transformUsingAffineTransform:transform];
+        [path appendBezierPath:arrow];
+        
+        [path setWindingRule:NSEvenOddWindingRule];
+        
+    }
+    
+    [[NSColor colorWithCalibratedWhite:1.0 alpha:1.0] setFill];
+    [path fill];
+}
+
[EMAIL PROTECTED]

Modified: trunk/Skim.xcodeproj/project.pbxproj
===================================================================
--- trunk/Skim.xcodeproj/project.pbxproj        2007-12-03 10:57:20 UTC (rev 
3303)
+++ trunk/Skim.xcodeproj/project.pbxproj        2007-12-03 16:31:12 UTC (rev 
3304)
@@ -168,6 +168,8 @@
                CE8B46E90C29CA00005CE7F1 /* SKLineInspector.m in Sources */ = 
{isa = PBXBuildFile; fileRef = CE8B46E70C29CA00005CE7F1 /* SKLineInspector.m 
*/; };
                CE8B46F00C29CA3D005CE7F1 /* LineInspector.nib in Resources */ = 
{isa = PBXBuildFile; fileRef = CE8B46EA0C29CA3D005CE7F1 /* LineInspector.nib 
*/; };
                CE9A87930C0C9E9A004F1F97 /* ProgressSheet.nib in Resources */ = 
{isa = PBXBuildFile; fileRef = CE9A878D0C0C9E9A004F1F97 /* ProgressSheet.nib 
*/; };
+               CE9B951D0D04657A00EB1A6C /* SKRemoteStateWindow.h in CopyFiles 
*/ = {isa = PBXBuildFile; fileRef = CE9B951B0D04657A00EB1A6C /* 
SKRemoteStateWindow.h */; };
+               CE9B951E0D04657A00EB1A6C /* SKRemoteStateWindow.m in Sources */ 
= {isa = PBXBuildFile; fileRef = CE9B951C0D04657A00EB1A6C /* 
SKRemoteStateWindow.m */; };
                CE9C423C0B8B5633004AD8CF /* PreferenceWindow.nib in Resources 
*/ = {isa = PBXBuildFile; fileRef = CE9C42360B8B5633004AD8CF /* 
PreferenceWindow.nib */; };
                CE9DC2EA0B9F131900D64F28 /* ToolbarHighlightNote.tiff in 
Resources */ = {isa = PBXBuildFile; fileRef = CE9DC2E80B9F131800D64F28 /* 
ToolbarHighlightNote.tiff */; };
                CEA182280C92E3300061A6D4 /* NSData_SKExtensions.m in Sources */ 
= {isa = PBXBuildFile; fileRef = CEA182260C92E3300061A6D4 /* 
NSData_SKExtensions.m */; };
@@ -337,6 +339,7 @@
                        dstSubfolderSpec = 10;
                        files = (
                                CE2BD8450BD4135600A5F4DB /* Sparkle.framework 
in CopyFiles */,
+                               CE9B951D0D04657A00EB1A6C /* 
SKRemoteStateWindow.h in CopyFiles */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
@@ -671,6 +674,8 @@
                CE9A878E0C0C9E9A004F1F97 /* English */ = {isa = 
PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = 
English.lproj/ProgressSheet.nib; sourceTree = "<group>"; };
                CE9A87960C0C9EA3004F1F97 /* Dutch */ = {isa = PBXFileReference; 
lastKnownFileType = wrapper.nib; name = Dutch; path = 
Dutch.lproj/ProgressSheet.nib; sourceTree = "<group>"; };
                CE9A87970C0C9EA7004F1F97 /* Italian */ = {isa = 
PBXFileReference; lastKnownFileType = wrapper.nib; name = Italian; path = 
Italian.lproj/ProgressSheet.nib; sourceTree = "<group>"; };
+               CE9B951B0D04657A00EB1A6C /* SKRemoteStateWindow.h */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = 
SKRemoteStateWindow.h; sourceTree = "<group>"; };
+               CE9B951C0D04657A00EB1A6C /* SKRemoteStateWindow.m */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path 
= SKRemoteStateWindow.m; sourceTree = "<group>"; };
                CE9C42370B8B5633004AD8CF /* English */ = {isa = 
PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = 
English.lproj/PreferenceWindow.nib; sourceTree = "<group>"; };
                CE9DC2E80B9F131800D64F28 /* ToolbarHighlightNote.tiff */ = {isa 
= PBXFileReference; lastKnownFileType = image.tiff; name = 
ToolbarHighlightNote.tiff; path = Images/ToolbarHighlightNote.tiff; sourceTree 
= "<group>"; };
                CEA182250C92E3300061A6D4 /* NSData_SKExtensions.h */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = 
NSData_SKExtensions.h; sourceTree = "<group>"; };
@@ -1165,6 +1170,8 @@
                                CE2DE4C50B85D78200D0DA12 /* 
SKMiniaturizeWindow.m */,
                                CEFDF8BC0B3848C40091C61A /* 
SKNavigationWindow.h */,
                                CEFDF8BD0B3848C40091C61A /* 
SKNavigationWindow.m */,
+                               CE9B951B0D04657A00EB1A6C /* 
SKRemoteStateWindow.h */,
+                               CE9B951C0D04657A00EB1A6C /* 
SKRemoteStateWindow.m */,
                                CE4EBDD80B7BF3B30091F228 /* SKSideWindow.h */,
                                CE4EBDD90B7BF3B30091F228 /* SKSideWindow.m */,
                                CE2DE4FB0B85DBD400D0DA12 /* SKPDFHoverWindow.h 
*/,
@@ -1823,6 +1830,7 @@
                                CEC7B3A00CF5F2D2008CCD63 /* 
KeyspanFrontRowControl.m in Sources */,
                                CEC7B3A20CF5F2D2008CCD63 /* 
MultiClickRemoteBehavior.m in Sources */,
                                CEC7B3A40CF5F2D2008CCD63 /* 
RemoteControlContainer.m in Sources */,
+                               CE9B951E0D04657A00EB1A6C /* 
SKRemoteStateWindow.m in Sources */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };


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

Reply via email to