-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTextSliceScrollView.m
More file actions
80 lines (58 loc) · 2.93 KB
/
Copy pathTextSliceScrollView.m
File metadata and controls
80 lines (58 loc) · 2.93 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
//
// TextSliceCollectionView.m
// Textify
//
// Created by Andrew on 9/7/13.
// Copyright (c) 2013 Vox Fera. All rights reserved.
//
#import "TextSliceScrollView.h"
#import "TextSlice.h"
#import "AppDelegate.h"
@implementation TextSliceScrollView
-(void)awakeFromNib{
[self registerForDraggedTypes:[NSArray arrayWithObject:NSFilenamesPboardType]];
[super awakeFromNib];
}
// Keyboard handling
// FIXME:
// This si correct to stop the beeping, however NSScrollView can never become
// first responder, therfore it never will call keyDown (and never intercept the message)
// This shouldn't be here...
-(BOOL)acceptsFirstResponder{return YES;}
-(void)keyDown:(NSEvent *)theEvent{};
-(void)keyUp:(NSEvent *)event{
unichar key = [[event charactersIgnoringModifiers] characterAtIndex:0];
switch(key) {
case ' ':
[[NSUserDefaults standardUserDefaults] setBool:![[NSUserDefaults standardUserDefaults] boolForKey:@"f_typingEffectPause"] forKey:@"f_typingEffectPause"];
break;
}
}
-(NSDragOperation)draggingEntered:(id<NSDraggingInfo>)sender {return NSDragOperationCopy;}
-(BOOL)prepareForDragOperation:(id<NSDraggingInfo>)sender {return YES;}
-(BOOL)performDragOperation:(id<NSDraggingInfo>)sender {
// Check extension...
NSPasteboard* pbrd = [sender draggingPasteboard];
NSArray *draggedFilePaths = [pbrd propertyListForType:NSFilenamesPboardType];
NSString *path=draggedFilePaths[0];
NSArray *parsedPath = [path componentsSeparatedByString:@"/"];
NSArray *parsedFilename = [parsedPath[[parsedPath count]-1] componentsSeparatedByString:@"."];
NSString* extension = parsedFilename[[parsedFilename count]-1];
[[NSUserDefaults standardUserDefaults] setValue:@"" forKey:@"textSliceFilename"];
[[NSUserDefaults standardUserDefaults] setValue:@"" forKey:@"textSliceFilenameWithoutPath"];
// Is this a txt file?
if ([extension isEqualToString:@"txt"]){
[[NSUserDefaults standardUserDefaults] setValue:path forKey:@"textSliceFilename"];
[[NSUserDefaults standardUserDefaults] setValue:[[[NSUserDefaults standardUserDefaults] valueForKey:@"textSliceFilename"] lastPathComponent] forKey:@"textSliceFilenameWithoutPath"];
[(AppDelegate *)[[NSApplication sharedApplication] delegate] setIsLoading:TRUE];
// Clear the array
NSRange range = NSMakeRange(0, [[[(AppDelegate *)[[NSApplication sharedApplication] delegate] slicedText] arrangedObjects] count]);
[[(AppDelegate *)[[NSApplication sharedApplication] delegate] slicedText] removeObjectsAtArrangedObjectIndexes:[NSIndexSet indexSetWithIndexesInRange:range]];
[(AppDelegate *)[[NSApplication sharedApplication] delegate] loadSliceFileFromPath:path];
// Select textSlice mode
[[NSUserDefaults standardUserDefaults] setInteger:1 forKey:@"inputSource"];
return TRUE;
}
return FALSE;
}
@end