[zephyrchat-cvs] zchat/zChat AKActionScrollView.m,1.1,1.2 AKStackedView.m,1.5,1.6 ZChatFriendsContro
Status: Alpha
Brought to you by:
akosut
|
From: <ak...@us...> - 2003-04-01 17:41:05
|
Update of /cvsroot/zephyrchat/zchat/zChat
In directory sc8-pr-cvs1:/tmp/cvs-serv3126
Modified Files:
AKActionScrollView.m AKStackedView.m ZChatFriendsController.mm
Log Message:
First crack at making friends view respond to key events.
Index: AKActionScrollView.m
===================================================================
RCS file: /cvsroot/zephyrchat/zchat/zChat/AKActionScrollView.m,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- AKActionScrollView.m 19 Mar 2003 02:46:10 -0000 1.1
+++ AKActionScrollView.m 1 Apr 2003 17:41:00 -0000 1.2
@@ -3,7 +3,12 @@
@implementation AKActionScrollView
- (void)mouseDown:(NSEvent *)event {
+ [[self window] makeFirstResponder:self];
[_delegate scrollView:self mouseDown:event];
+}
+
+- (BOOL)acceptsFirstResponder {
+ return YES;
}
@end
Index: AKStackedView.m
===================================================================
RCS file: /cvsroot/zephyrchat/zchat/zChat/AKStackedView.m,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- AKStackedView.m 29 Mar 2003 19:21:37 -0000 1.5
+++ AKStackedView.m 1 Apr 2003 17:41:00 -0000 1.6
@@ -54,7 +54,13 @@
[[self superview] displayIfNeeded];
}
+- (BOOL)acceptsFirstResponder {
+ return YES;
+}
+
- (void)mouseDown:(NSEvent *)event {
+ [[self window] makeFirstResponder:self];
+
if (_delegate != nil) {
if ([_delegate selectViewIsSelected:self] && [event modifierFlags] & NSCommandKeyMask) {
[_delegate selectView:self setSelected:NO];
Index: ZChatFriendsController.mm
===================================================================
RCS file: /cvsroot/zephyrchat/zchat/zChat/ZChatFriendsController.mm,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -d -r1.18 -r1.19
--- ZChatFriendsController.mm 31 Mar 2003 17:07:22 -0000 1.18
+++ ZChatFriendsController.mm 1 Apr 2003 17:41:00 -0000 1.19
@@ -149,6 +149,76 @@
[_data makeObjectsPerformSelector:@selector(deselect)];
}
+- (void)_moveDownDeselectOthers:(BOOL)deselect {
+ unsigned next = NSNotFound;
+ for (unsigned i = 0; i < [_data count]; ++i) {
+ if ([[_data objectAtIndex:i] selected])
+ next = i + 1;
+ }
+
+ if (next == NSNotFound) next = 0;
+ if (next >= [_data count]) next = [_data count] - 1;
+
+ if (next != NSNotFound) {
+ if (deselect) {
+ [[self selectedFriends] makeObjectsPerformSelector:@selector(deselect)];
+ }
+ [[_data objectAtIndex:next] select];
+ }
+}
+
+- (void)moveDown:(id)sender {
+ [self _moveDownDeselectOthers:YES];
+}
+
+- (void)moveDownAndModifySelection:(id)sender {
+ [self _moveDownDeselectOthers:NO];
+}
+
+- (void)_moveUpDeselectOthers:(BOOL)deselect {
+ unsigned i;
+ for (i = 0; i < [_data count]; ++i) {
+ if ([[_data objectAtIndex:i] selected]) {
+ break;
+ }
+ }
+
+ if (i > 0) --i;
+
+ if ([_data count] > 0) {
+ if (deselect) {
+ [[self selectedFriends] makeObjectsPerformSelector:@selector(deselect)];
+ }
+ [[_data objectAtIndex:i] select];
+ }
+}
+
+- (void)moveUp:(id)sender {
+ [self _moveUpDeselectOthers:YES];
+}
+
+- (void)moveUpAndModifySelection:(id)sender {
+ [self _moveUpDeselectOthers:NO];
+}
+
+- (void)moveToBeginningOfLine:(id)sender {
+ if ([_data count] > 0) {
+ [[self selectedFriends] makeObjectsPerformSelector:@selector(deselect)];
+ [[_data objectAtIndex:0] select];
+ }
+}
+
+- (void)moveToEndOfLine:(id)sender {
+ if ([_data count] > 0) {
+ [[self selectedFriends] makeObjectsPerformSelector:@selector(deselect)];
+ [[_data objectAtIndex:[_data count] - 1] select];
+ }
+}
+
+- (void)deleteBackward:(id)sender {
+ [self delete:sender];
+}
+
- (void)windowDidBecomeKey:(NSNotification *)notification {
[_friendView setNeedsDisplay:YES];
}
|