Index: chrome/browser/cocoa/autocomplete_text_field_cell.mm |
diff --git a/chrome/browser/cocoa/autocomplete_text_field_cell.mm b/chrome/browser/cocoa/autocomplete_text_field_cell.mm |
new file mode 100644 |
index 0000000000000000000000000000000000000000..23396af059a9ec5558cd0eb618043cd88b253ea4 |
--- /dev/null |
+++ b/chrome/browser/cocoa/autocomplete_text_field_cell.mm |
@@ -0,0 +1,80 @@ |
+// Copyright (c) 2009 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#import "chrome/browser/cocoa/autocomplete_text_field_cell.h" |
+#import "third_party/GTM/AppKit/GTMTheme.h" |
+ |
+const NSInteger kBaselineOffset = 2; |
+ |
+@implementation AutocompleteTextFieldCell |
+ |
+- (void)drawWithFrame:(NSRect)cellFrame inView:(NSView*)controlView { |
+ [[NSColor colorWithCalibratedWhite:1.0 alpha:0.25] set]; |
+ NSFrameRectWithWidthUsingOperation(cellFrame, 1, NSCompositeSourceOver); |
+ |
+ NSRect frame = NSInsetRect(cellFrame, 0, 1); |
+ [[NSColor whiteColor] setFill]; |
+ NSRect innerFrame = NSInsetRect(frame, 1, 1); |
+ NSRectFill(innerFrame); |
+ |
+ NSRect shadowFrame, restFrame; |
+ NSDivideRect(innerFrame, &shadowFrame, &restFrame, 1, NSMinYEdge); |
+ |
+ BOOL isMainWindow = [[controlView window] isMainWindow]; |
+ GTMTheme *theme = [controlView gtm_theme]; |
+ NSColor* stroke = [theme strokeColorForStyle:GTMThemeStyleToolBarButton |
+ state:isMainWindow]; |
+ [stroke set]; |
+ NSFrameRectWithWidthUsingOperation(frame, 1.0, NSCompositeSourceOver); |
+ |
+ // Draw the shadow. |
+ [[NSColor colorWithCalibratedWhite:0.0 alpha:0.05] setFill]; |
+ NSRectFillUsingOperation(shadowFrame, NSCompositeSourceOver); |
+ |
+ if ([self showsFirstResponder]) { |
+ [[[NSColor keyboardFocusIndicatorColor] colorWithAlphaComponent:0.5] set]; |
+ NSFrameRectWithWidthUsingOperation(NSInsetRect(frame, 0, 0), 2, |
+ NSCompositeSourceOver); |
+ } |
+ |
+ [self drawInteriorWithFrame:cellFrame |
+ inView:controlView]; |
+ |
+} |
+ |
+- (void)drawInteriorWithFrame:(NSRect)cellFrame |
+ inView:(NSView*)controlView { |
+ [super drawInteriorWithFrame:NSInsetRect(cellFrame, 0, kBaselineOffset) |
+ inView:controlView]; |
+} |
+ |
+// Override these methods so that the field editor shows up in the right place |
+- (void)editWithFrame:(NSRect)cellFrame |
+ inView:(NSView*)controlView |
+ editor:(NSText*)textObj |
+ delegate:(id)anObject |
+ event:(NSEvent*)theEvent { |
+ [super editWithFrame:NSInsetRect(cellFrame, 0, kBaselineOffset) |
+ inView:controlView |
+ editor:textObj |
+ delegate:anObject |
+ event:theEvent]; |
+} |
+ |
+ |
+// Override these methods so that the field editor shows up in the right place |
+- (void)selectWithFrame:(NSRect)cellFrame |
+ inView:(NSView*)controlView |
+ editor:(NSText*)textObj |
+ delegate:(id)anObject |
+ start:(NSInteger)selStart |
+ length:(NSInteger)selLength { |
+ [super selectWithFrame:NSInsetRect(cellFrame, 0, kBaselineOffset) |
+ inView:controlView editor:textObj |
+ delegate:anObject |
+ start:selStart |
+ length:selLength]; |
+} |
+ |
+@end |