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