added copy command to copy selected line result to the clipboard. bumped version...
[LeanCalc.git] / Sources / MyDocument.m
index 519ffe0..a273168 100644 (file)
 
 
 - (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;
        
 }
 
 
+// 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];
+}
+
+
+- (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";