| OLD | NEW | 
|---|
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #import "chrome/browser/cocoa/autocomplete_text_field_editor.h" | 5 #import "chrome/browser/cocoa/autocomplete_text_field_editor.h" | 
| 6 | 6 | 
|  | 7 #include "app/l10n_util_mac.h" | 
| 7 #include "base/string_util.h" | 8 #include "base/string_util.h" | 
| 8 #include "base/sys_string_conversions.h" | 9 #include "grit/generated_resources.h" | 
| 9 | 10 | 
| 10 @implementation AutocompleteTextFieldEditor | 11 @implementation AutocompleteTextFieldEditor | 
| 11 | 12 | 
| 12 - (void)copy:(id)sender { | 13 - (void)copy:(id)sender { | 
| 13   NSPasteboard* pb = [NSPasteboard generalPasteboard]; | 14   NSPasteboard* pb = [NSPasteboard generalPasteboard]; | 
| 14   [self performCopy:pb]; | 15   [self performCopy:pb]; | 
| 15 } | 16 } | 
| 16 | 17 | 
| 17 - (void)cut:(id)sender { | 18 - (void)cut:(id)sender { | 
| 18   NSPasteboard* pb = [NSPasteboard generalPasteboard]; | 19   NSPasteboard* pb = [NSPasteboard generalPasteboard]; | 
| (...skipping 19 matching lines...) Expand all  Loading... | 
| 38   } | 39   } | 
| 39   return NO; | 40   return NO; | 
| 40 } | 41 } | 
| 41 | 42 | 
| 42 - (void)paste:(id)sender { | 43 - (void)paste:(id)sender { | 
| 43   if ([self shouldPaste]) { | 44   if ([self shouldPaste]) { | 
| 44     [super paste:sender]; | 45     [super paste:sender]; | 
| 45   } | 46   } | 
| 46 } | 47 } | 
| 47 | 48 | 
|  | 49 - (void)pasteAndGo:sender { | 
|  | 50   id delegate = [self delegate]; | 
|  | 51   if ([delegate respondsToSelector:@selector(textDidPasteAndGo:)]) | 
|  | 52     [delegate textDidPasteAndGo:self]; | 
|  | 53 } | 
|  | 54 | 
| 48 // We have rich text, but it shouldn't be modified by the user, so | 55 // We have rich text, but it shouldn't be modified by the user, so | 
| 49 // don't update the font panel.  In theory, -setUsesFontPanel: should | 56 // don't update the font panel.  In theory, -setUsesFontPanel: should | 
| 50 // accomplish this, but that gets called frequently with YES when | 57 // accomplish this, but that gets called frequently with YES when | 
| 51 // NSTextField and NSTextView synchronize their contents.  That is | 58 // NSTextField and NSTextView synchronize their contents.  That is | 
| 52 // probably unavoidable because in most cases having rich text in the | 59 // probably unavoidable because in most cases having rich text in the | 
| 53 // field you probably would expect it to update the font panel. | 60 // field you probably would expect it to update the font panel. | 
| 54 - (void)updateFontPanel { | 61 - (void)updateFontPanel { | 
| 55 } | 62 } | 
| 56 | 63 | 
| 57 // No ruler bar, so don't update any of that state, either. | 64 // No ruler bar, so don't update any of that state, either. | 
| 58 - (void)updateRuler { | 65 - (void)updateRuler { | 
| 59 } | 66 } | 
| 60 | 67 | 
|  | 68 - (NSMenu*)menuForEvent:(NSEvent*)event { | 
|  | 69   NSMenu* menu = [[[NSMenu alloc] initWithTitle:@"TITLE"] autorelease]; | 
|  | 70   [menu insertItemWithTitle:l10n_util::GetNSStringWithFixup(IDS_CUT) | 
|  | 71         action:@selector(cut:) | 
|  | 72         keyEquivalent:@"" atIndex:0]; | 
|  | 73   [menu insertItemWithTitle:l10n_util::GetNSStringWithFixup(IDS_COPY) | 
|  | 74         action:@selector(copy:) | 
|  | 75         keyEquivalent:@"" atIndex:1]; | 
|  | 76   [menu insertItemWithTitle:l10n_util::GetNSStringWithFixup(IDS_PASTE) | 
|  | 77         action:@selector(paste:) | 
|  | 78         keyEquivalent:@"" atIndex:2]; | 
|  | 79 | 
|  | 80   // Paste and go/search. | 
|  | 81   id delegate = [self delegate]; | 
|  | 82 | 
|  | 83   if ([delegate respondsToSelector:@selector(textPasteActionString:)]) { | 
|  | 84     NSString* label = [delegate textPasteActionString:self]; | 
|  | 85     // TODO(rohitrao): If the clipboard is empty, should we show a greyed-out | 
|  | 86     // "Paste and Go" or nothing at all? | 
|  | 87     if (label) { | 
|  | 88       [menu insertItemWithTitle:label action:@selector(pasteAndGo:) | 
|  | 89             keyEquivalent:@"" atIndex:3]; | 
|  | 90     } | 
|  | 91   } | 
|  | 92 | 
|  | 93   return menu; | 
|  | 94 } | 
|  | 95 | 
| 61 @end | 96 @end | 
| OLD | NEW | 
|---|