File: KeyRecorderWindow.m

package info (click to toggle)
psychtoolbox-3 3.0.14.20170103%2Bgit6-g605ff5c.dfsg1-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 103,044 kB
  • ctags: 69,483
  • sloc: ansic: 167,371; cpp: 11,232; objc: 4,708; sh: 1,875; python: 383; php: 344; makefile: 207; java: 113
file content (89 lines) | stat: -rw-r--r-- 1,757 bytes parent folder | download | duplicates (4)
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
81
82
83
84
85
86
87
88
89
//  Created by Allen Ingling on Fri Jun 18 2004.
//  Copyright (c) 2004 New York University. All rights reserved.

	
#import			"KeyRecorderWindow.h"

@implementation KeyRecorderWindow


- (void)enableGather
{
	enableFlag=TRUE;
}

- (void)disableGather
{
	enableFlag=FALSE;
}


- (id)init
{
    if (self = [super init]) {
		enableFlag=FALSE;
		characterList=[[NSMutableArray alloc] initWithCapacity:1];
	}
    return(self);
}


- (id)initWithContentRect:(NSRect)contentRect styleMask:(unsigned int)styleMask backing:(NSBackingStoreType)backingType defer:(BOOL)flag
{
    if (self = [super initWithContentRect:contentRect styleMask:styleMask backing:backingType defer:flag]) {
		enableFlag=FALSE;
		characterList=[[NSMutableArray alloc] initWithCapacity:1];
	}
    return(self);

}



- (void)dealloc
{
	if(characterList != NULL)
		[characterList release];
	[super dealloc];
}

- (void)keyDown:(NSEvent *)theEvent
{
	NSString			*keyCharacter;
	NSNumber			*timestamp;
	NSDictionary		*tempEntry;

	if(enableFlag){
		keyCharacter=[theEvent characters];
		timestamp=[NSNumber numberWithDouble:[theEvent timestamp]];
		tempEntry=[NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects: keyCharacter, timestamp, nil] 
								forKeys:[NSArray arrayWithObjects:@"character", @"time", nil]];
		[characterList addObject:tempEntry];	
	}
	
}



- (NSDictionary*)getNextChar;
{
	NSDictionary	*charDictionary;

	//return autoreleased and remove from the queue the first character.
	if([characterList count] == 0)
		return(NULL);
	else{
		charDictionary=[NSDictionary dictionaryWithDictionary:[characterList objectAtIndex:0]];
		[characterList removeObjectAtIndex:0];
		return(charDictionary);
	}
}


- (void)clearQueue;
{
	[characterList removeAllObjects];
}


@end