-
Notifications
You must be signed in to change notification settings - Fork 1
/
Ticky_DoneTableView.m
65 lines (53 loc) · 1.54 KB
/
Ticky_DoneTableView.m
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
//
// Ticky_DoneTableView.m
// Ticky
//
// Created by Thomas PELLETIER on 26/05/10.
// Copyright 2010 Thomas PELLETIER. All rights reserved.
//
#import "Ticky_DoneTableView.h"
@implementation Ticky_DoneTableView
- (BOOL)becomeFirstResponder {
[[[NSApp delegate] tableView] deselectAll:self];
return YES;
}
- (void) keyDown:(NSEvent *) event
{
int row = [self selectedRow];
switch ([event keyCode])
{
case 49: // Space bar
[[NSApp delegate] markSelectedAsDone:self];
break;
case 126: // Up
if (row == 0){
[self deselectAll:nil];
NSIndexSet * selSet = [NSIndexSet indexSetWithIndex:[[[NSApp delegate] tableView] numberOfRows]-1];
[[[NSApp delegate] tableView] selectRowIndexes:selSet byExtendingSelection:NO];
[[[NSApp delegate] window] makeFirstResponder:[[NSApp delegate] tableView]];
}
else {
row -= 1;
NSIndexSet *selSet = [NSIndexSet indexSetWithIndex:row];
[self selectRowIndexes:selSet byExtendingSelection:NO];
}
break;
case 125: // Down
if (row == [self numberOfRows]-1) {
[self deselectAll:nil];
NSIndexSet * selSet = [NSIndexSet indexSetWithIndex:0];
[[[NSApp delegate] tableView] selectRowIndexes:selSet byExtendingSelection:NO];
[[[NSApp delegate] window] makeFirstResponder:[[NSApp delegate] tableView]];
}
else {
row += 1;
NSIndexSet *selSet = [NSIndexSet indexSetWithIndex:row];
[self selectRowIndexes:selSet byExtendingSelection:NO];
}
break;
default:
[super keyDown:event];
return;
}
}
@end