X-Git-Url: http://www.entropy.ch/git/LeanCalc.git/blobdiff_plain/a40810ee12af338eb59a3e9d3a180013c951e1fb..c63394a796dd31e2e7ccdc85e2630629e90080c6:/Sources/MyDocument.m diff --git a/Sources/MyDocument.m b/Sources/MyDocument.m index 519ffe0..514b3ed 100644 --- a/Sources/MyDocument.m +++ b/Sources/MyDocument.m @@ -34,13 +34,10 @@ - (void)awakeFromNib { - if (![self fileName]) { [arrayController add:self]; } - [arrayController setSelectionIndex:[calculations count] - 1]; - } @@ -59,27 +56,22 @@ - (BOOL)lastItemIsSelected { - id lastObject = [calculations lastObject]; id selectedObject = [[arrayController selectedObjects] objectAtIndex:0]; - return selectedObject == lastObject; } - (void)addItem { - Calculation *newcalc = [[[Calculation alloc] init] autorelease]; [arrayController addObject:newcalc]; int count = [calculations count]; id secondtolast = [calculations objectAtIndex:count - 2]; [secondtolast setValue:newcalc forKey:@"next"]; - } - (void)insertPrevious:(NSNumber *)sender { - int index = [sender intValue]; if ([calculations count] <= index) return; @@ -97,6 +89,28 @@ } +// enable copy: menu command only when a previous result is selected +- (BOOL)validateMenuItem:(NSMenuItem *)item { + if ([item action] != @selector(copy:)) return YES; + id selectedObject = [[arrayController selectedObjects] objectAtIndex:0]; + return selectedObject && ![self lastItemIsSelected] && ![selectedObject expressionIsEmpty]; +} + +/* +- (BOOL)textView:(NSTextView *)aTextView doCommandBySelector:(SEL)aSelector { + NSLog(@"text view by selector %d", aSelector); + return NO; +} +*/ + + +- (IBAction)copy:(id)sender { + NSPasteboard *pboard = [NSPasteboard generalPasteboard]; + [pboard declareTypes:[NSArray arrayWithObject:NSStringPboardType] owner:nil]; + id selectedObject = [[arrayController selectedObjects] objectAtIndex:0]; + [pboard setString:[selectedObject result] forType:NSStringPboardType]; +} + - (NSString *)windowNibName { return @"MyDocument";