Revision: 4000
          http://skim-app.svn.sourceforge.net/skim-app/?rev=4000&view=rev
Author:   hofman
Date:     2008-06-11 02:10:22 -0700 (Wed, 11 Jun 2008)

Log Message:
-----------
Add NSEvent category for some convenience methods.

Modified Paths:
--------------
    trunk/SKApplication.m
    trunk/SKFullScreenWindow.m
    trunk/SKNoteOutlineView.m
    trunk/SKOutlineView.m
    trunk/SKPDFView.m
    trunk/SKSideWindow.m
    trunk/SKTableView.m
    trunk/Skim.xcodeproj/project.pbxproj

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

Added: trunk/NSEvent_SKExtensions.h
===================================================================
--- trunk/NSEvent_SKExtensions.h                                (rev 0)
+++ trunk/NSEvent_SKExtensions.h        2008-06-11 09:10:22 UTC (rev 4000)
@@ -0,0 +1,46 @@
+//
+//  NSEvent_SKExtensions.h
+//  Skim
+//
+//  Created by Christiaan Hofman on 6/11/08.
+/*
+ This software is Copyright (c) 2008
+ 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>
+
+
[EMAIL PROTECTED] NSEvent (SKExtensions)
+- (NSUInteger)deviceIndependentModifierFlags;
+- (NSUInteger)standardModifierFlags;
+- (unichar)firstCharacter;
[EMAIL PROTECTED]

Added: trunk/NSEvent_SKExtensions.m
===================================================================
--- trunk/NSEvent_SKExtensions.m                                (rev 0)
+++ trunk/NSEvent_SKExtensions.m        2008-06-11 09:10:22 UTC (rev 4000)
@@ -0,0 +1,57 @@
+//
+//  NSEvent_SKExtensions.m
+//  Skim
+//
+//  Created by Christiaan Hofman on 6/11/08.
+/*
+ This software is Copyright (c) 2008
+ 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 "NSEvent_SKExtensions.h"
+
+
[EMAIL PROTECTED] NSEvent (SKExtensions)
+
+- (NSUInteger)deviceIndependentModifierFlags {
+    return [self modifierFlags] & NSDeviceIndependentModifierFlagsMask;
+}
+
+- (NSUInteger)standardModifierFlags {
+    return [self modifierFlags] & (NSCommandKeyMask | NSAlternateKeyMask | 
NSShiftKeyMask | NSControlKeyMask);
+}
+
+- (unichar)firstCharacter {
+    NSString *characters = [self charactersIgnoringModifiers];
+    return [characters length] > 0 ? [characters characterAtIndex:0] : 0;
+}
+
[EMAIL PROTECTED]

Modified: trunk/SKApplication.m
===================================================================
--- trunk/SKApplication.m       2008-06-11 00:48:07 UTC (rev 3999)
+++ trunk/SKApplication.m       2008-06-11 09:10:22 UTC (rev 4000)
@@ -64,7 +64,7 @@
 }
 
 - (void)sendEvent:(NSEvent *)anEvent {
-    if ([anEvent type] == NSScrollWheel && [anEvent modifierFlags] & 
NSAlternateKeyMask) {
+    if ([anEvent type] == NSScrollWheel && ([anEvent modifierFlags] & 
NSAlternateKeyMask)) {
         id target = [self targetForAction:@selector(magnifyWheel:)];
         if (target) {
             [target performSelector:@selector(magnifyWheel:) 
withObject:anEvent];

Modified: trunk/SKFullScreenWindow.m
===================================================================
--- trunk/SKFullScreenWindow.m  2008-06-11 00:48:07 UTC (rev 3999)
+++ trunk/SKFullScreenWindow.m  2008-06-11 09:10:22 UTC (rev 4000)
@@ -38,6 +38,7 @@
 
 #import "SKFullScreenWindow.h"
 #import "SKMainWindowController.h"
+#import "NSEvent_SKExtensions.h"
 
 
 @implementation SKFullScreenWindow
@@ -70,9 +71,8 @@
 - (BOOL)canBecomeMainWindow { return YES; }
 
 - (void)keyDown:(NSEvent *)theEvent {
-    NSString *characters = [theEvent charactersIgnoringModifiers];
-    unichar ch = [characters length] > 0 ? [characters characterAtIndex:0] : 0;
-       unsigned modifierFlags = [theEvent modifierFlags] & 
NSDeviceIndependentModifierFlagsMask;
+    unichar ch = [theEvent firstCharacter];
+       unsigned modifierFlags = [theEvent deviceIndependentModifierFlags];
     
     if (modifierFlags == 0) {
         SKMainWindowController *wc = (SKMainWindowController *)[self 
windowController];

Modified: trunk/SKNoteOutlineView.m
===================================================================
--- trunk/SKNoteOutlineView.m   2008-06-11 00:48:07 UTC (rev 3999)
+++ trunk/SKNoteOutlineView.m   2008-06-11 09:10:22 UTC (rev 4000)
@@ -41,6 +41,7 @@
 #import "SKTypeSelectHelper.h"
 #import "PDFAnnotation_SKExtensions.h"
 #import "SKStringConstants.h"
+#import "NSEvent_SKExtensions.h"
 
 
 @implementation SKNoteOutlineView
@@ -111,9 +112,8 @@
 }
 
 - (void)keyDown:(NSEvent *)theEvent {
-    NSString *characters = [theEvent charactersIgnoringModifiers];
-    unichar eventChar = [characters length] > 0 ? [characters 
characterAtIndex:0] : 0;
-       unsigned int modifiers = [theEvent modifierFlags] & (NSCommandKeyMask | 
NSAlternateKeyMask | NSShiftKeyMask | NSControlKeyMask);
+    unichar eventChar = [theEvent firstCharacter];
+       unsigned modifiers = [theEvent standardModifierFlags];
     
     if ((eventChar == NSNewlineCharacter || eventChar == NSEnterCharacter || 
eventChar == NSCarriageReturnCharacter) && modifiers == 0) {
         if ([[self delegate] 
respondsToSelector:@selector(outlineViewInsertNewline:)])

Modified: trunk/SKOutlineView.m
===================================================================
--- trunk/SKOutlineView.m       2008-06-11 00:48:07 UTC (rev 3999)
+++ trunk/SKOutlineView.m       2008-06-11 09:10:22 UTC (rev 4000)
@@ -38,6 +38,7 @@
 
 #import "SKOutlineView.h"
 #import "SKTypeSelectHelper.h"
+#import "NSEvent_SKExtensions.h"
 
 
 @implementation SKOutlineView
@@ -87,9 +88,8 @@
 }
 
 - (void)keyDown:(NSEvent *)theEvent {
-    NSString *characters = [theEvent charactersIgnoringModifiers];
-    unichar eventChar = [characters length] > 0 ? [characters 
characterAtIndex:0] : 0;
-       unsigned modifierFlags = [theEvent modifierFlags] & 
NSDeviceIndependentModifierFlagsMask;
+    unichar eventChar = [theEvent firstCharacter];
+       unsigned modifierFlags = [theEvent deviceIndependentModifierFlags];
     
     if (eventChar == NSHomeFunctionKey && (modifierFlags & ~NSFunctionKeyMask) 
== 0) {
         [self scrollToBeginningOfDocument:nil];

Modified: trunk/SKPDFView.m
===================================================================
--- trunk/SKPDFView.m   2008-06-11 00:48:07 UTC (rev 3999)
+++ trunk/SKPDFView.m   2008-06-11 09:10:22 UTC (rev 4000)
@@ -70,6 +70,7 @@
 #import "PDFDocument_SKExtensions.h"
 #import "PDFDisplayView_SKExtensions.h"
 #import "SKAccessibilityProxyElement.h"
+#import "NSEvent_SKExtensions.h"
 
 #define ANNOTATION_MODE_COUNT 8
 #define TOOL_MODE_COUNT 5
@@ -988,9 +989,8 @@
 
 - (void)keyDown:(NSEvent *)theEvent
 {
-    NSString *characters = [theEvent charactersIgnoringModifiers];
-    unichar eventChar = [characters length] > 0 ? [characters 
characterAtIndex:0] : 0;
-       unsigned int modifiers = [theEvent modifierFlags] & (NSCommandKeyMask | 
NSAlternateKeyMask | NSShiftKeyMask | NSControlKeyMask);
+    unichar eventChar = [theEvent firstCharacter];
+       unsigned int modifiers = [theEvent standardModifierFlags];
     
     if (interactionMode == SKPresentationMode) {
         // Presentation mode

Modified: trunk/SKSideWindow.m
===================================================================
--- trunk/SKSideWindow.m        2008-06-11 00:48:07 UTC (rev 3999)
+++ trunk/SKSideWindow.m        2008-06-11 09:10:22 UTC (rev 4000)
@@ -39,6 +39,7 @@
 #import "SKSideWindow.h"
 #import "SKMainWindowController.h"
 #import "NSBezierPath_BDSKExtensions.h"
+#import "NSEvent_SKExtensions.h"
 
 #define DEFAULT_WINDOW_WIDTH    300.0
 #define WINDOW_INSET            1.0
@@ -171,9 +172,8 @@
 }
 
 - (void)keyDown:(NSEvent *)theEvent {
-    NSString *characters = [theEvent charactersIgnoringModifiers];
-    unichar ch = [characters length] > 0 ? [characters characterAtIndex:0] : 0;
-       unsigned modifierFlags = [theEvent modifierFlags] & 
NSDeviceIndependentModifierFlagsMask;
+    unichar ch = [theEvent firstCharacter];
+       unsigned modifierFlags = [theEvent deviceIndependentModifierFlags];
     
     if (ch == 0x1B && modifierFlags == 0) {
         if (state == NSDrawerOpenState || state == NSDrawerOpeningState)

Modified: trunk/SKTableView.m
===================================================================
--- trunk/SKTableView.m 2008-06-11 00:48:07 UTC (rev 3999)
+++ trunk/SKTableView.m 2008-06-11 09:10:22 UTC (rev 4000)
@@ -38,6 +38,7 @@
 
 #import "SKTableView.h"
 #import "SKTypeSelectHelper.h"
+#import "NSEvent_SKExtensions.h"
 
 
 @implementation SKTableView
@@ -65,9 +66,8 @@
 }
 
 - (void)keyDown:(NSEvent *)theEvent {
-    NSString *characters = [theEvent charactersIgnoringModifiers];
-    unichar eventChar = [characters length] > 0 ? [characters 
characterAtIndex:0] : 0;
-       unsigned modifierFlags = [theEvent modifierFlags] & 
NSDeviceIndependentModifierFlagsMask;
+    unichar eventChar = [theEvent firstCharacter];
+       unsigned modifierFlags = [theEvent deviceIndependentModifierFlags];
     
        if ((eventChar == NSDeleteCharacter || eventChar == 
NSDeleteFunctionKey) && modifierFlags == 0 && [self canDelete]) {
         [self delete:self];

Modified: trunk/Skim.xcodeproj/project.pbxproj
===================================================================
--- trunk/Skim.xcodeproj/project.pbxproj        2008-06-11 00:48:07 UTC (rev 
3999)
+++ trunk/Skim.xcodeproj/project.pbxproj        2008-06-11 09:10:22 UTC (rev 
4000)
@@ -79,6 +79,7 @@
                CE2DED6C0B86334900D0DA12 /* BDSKFindFieldEditor.m in Sources */ 
= {isa = PBXBuildFile; fileRef = CE2DED6B0B86334900D0DA12 /* 
BDSKFindFieldEditor.m */; };
                CE31A6180C01FC45003612A9 /* SKDocumentController.m in Sources 
*/ = {isa = PBXBuildFile; fileRef = CE31A6160C01FC45003612A9 /* 
SKDocumentController.m */; };
                CE327A460C11BF6700DB4BEB /* NoteTypeSheet.nib in Resources */ = 
{isa = PBXBuildFile; fileRef = CE327A440C11BF6700DB4BEB /* NoteTypeSheet.nib 
*/; };
+               CE34FFA80DFF58FB00A7FFE6 /* NSEvent_SKExtensions.m in Sources 
*/ = {isa = PBXBuildFile; fileRef = CE34FFA70DFF58FB00A7FFE6 /* 
NSEvent_SKExtensions.m */; };
                CE380A7B0B834E6200A1B779 /* CameraCursor.tiff in Resources */ = 
{isa = PBXBuildFile; fileRef = CE380A7A0B834E6100A1B779 /* CameraCursor.tiff 
*/; };
                CE38ECD30B8093B200A1B779 /* NSString_SKExtensions.m in Sources 
*/ = {isa = PBXBuildFile; fileRef = CE38ECD20B8093B200A1B779 /* 
NSString_SKExtensions.m */; };
                CE3A3D2C0B78C0A0006B64D3 /* SKPDFAnnotationNote.m in Sources */ 
= {isa = PBXBuildFile; fileRef = CE3A3D2B0B78C0A0006B64D3 /* 
SKPDFAnnotationNote.m */; };
@@ -480,6 +481,8 @@
                CE327A450C11BF6700DB4BEB /* English */ = {isa = 
PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = 
English.lproj/NoteTypeSheet.nib; sourceTree = "<group>"; };
                CE327A490C11BF8B00DB4BEB /* Dutch */ = {isa = PBXFileReference; 
lastKnownFileType = wrapper.nib; name = Dutch; path = 
Dutch.lproj/NoteTypeSheet.nib; sourceTree = "<group>"; };
                CE327A4A0C11BF9000DB4BEB /* Italian */ = {isa = 
PBXFileReference; lastKnownFileType = wrapper.nib; name = Italian; path = 
Italian.lproj/NoteTypeSheet.nib; sourceTree = "<group>"; };
+               CE34FFA60DFF58FB00A7FFE6 /* NSEvent_SKExtensions.h */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = 
NSEvent_SKExtensions.h; sourceTree = "<group>"; };
+               CE34FFA70DFF58FB00A7FFE6 /* NSEvent_SKExtensions.m */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path 
= NSEvent_SKExtensions.m; sourceTree = "<group>"; };
                CE380A7A0B834E6100A1B779 /* CameraCursor.tiff */ = {isa = 
PBXFileReference; lastKnownFileType = image.tiff; name = CameraCursor.tiff; 
path = Images/CameraCursor.tiff; sourceTree = "<group>"; };
                CE38ECD10B8093B200A1B779 /* NSString_SKExtensions.h */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = 
NSString_SKExtensions.h; sourceTree = "<group>"; };
                CE38ECD20B8093B200A1B779 /* NSString_SKExtensions.m */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path 
= NSString_SKExtensions.m; sourceTree = "<group>"; };
@@ -1505,6 +1508,8 @@
                                CE2DE4ED0B85DB6300D0DA12 /* 
NSCursor_SKExtensions.m */,
                                CE0ECD1A0DE73604006EEDDB /* 
NSDocument_SKExtensions.h */,
                                CE0ECD1B0DE73604006EEDDB /* 
NSDocument_SKExtensions.m */,
+                               CE34FFA60DFF58FB00A7FFE6 /* 
NSEvent_SKExtensions.h */,
+                               CE34FFA70DFF58FB00A7FFE6 /* 
NSEvent_SKExtensions.m */,
                                CECDC4FC0C5966A80026AAEC /* 
NSImage_SKExtensions.h */,
                                CECDC4FD0C5966A80026AAEC /* 
NSImage_SKExtensions.m */,
                                CE070EA00B89039700733CC8 /* 
NSScrollView_SKExtensions.h */,
@@ -2061,6 +2066,7 @@
                                CE4643DB0DF6B66000CFD8D2 /* SKIndexCommand.m in 
Sources */,
                                CE4643DE0DF6B77800CFD8D2 /* SKBoundsCommand.m 
in Sources */,
                                CE4645910DF8140200CFD8D2 /* 
SKNumberArrayFormatter.m in Sources */,
+                               CE34FFA80DFF58FB00A7FFE6 /* 
NSEvent_SKExtensions.m in Sources */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to