Index: chrome/browser/ui/cocoa/hyperlink_button_cell.mm |
diff --git a/chrome/browser/ui/cocoa/hyperlink_button_cell.mm b/chrome/browser/ui/cocoa/hyperlink_button_cell.mm |
deleted file mode 100644 |
index 49f316c8847c49da8d350e9beea9f6232577e422..0000000000000000000000000000000000000000 |
--- a/chrome/browser/ui/cocoa/hyperlink_button_cell.mm |
+++ /dev/null |
@@ -1,152 +0,0 @@ |
-// Copyright (c) 2012 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/ui/cocoa/hyperlink_button_cell.h" |
- |
-@interface HyperlinkButtonCell () |
-- (void)customizeButtonCell; |
-@end |
- |
-@implementation HyperlinkButtonCell |
- |
-@dynamic textColor; |
-@synthesize underlineOnHover = underlineOnHover_; |
-@synthesize shouldUnderline = shouldUnderline_; |
- |
-+ (NSColor*)defaultTextColor { |
- return [NSColor blueColor]; |
-} |
- |
-+ (NSButton*)buttonWithString:(NSString*)string { |
- NSButton* button = [[[NSButton alloc] initWithFrame:NSZeroRect] autorelease]; |
- base::scoped_nsobject<HyperlinkButtonCell> cell( |
- [[HyperlinkButtonCell alloc] initTextCell:string]); |
- [cell setAlignment:NSLeftTextAlignment]; |
- [button setCell:cell.get()]; |
- [button setBezelStyle:NSRegularSquareBezelStyle]; |
- return button; |
-} |
- |
-// Designated initializer. |
-- (id)init { |
- if ((self = [super init])) { |
- [self customizeButtonCell]; |
- } |
- return self; |
-} |
- |
-// Initializer called when the cell is loaded from the NIB. |
-- (id)initWithCoder:(NSCoder*)aDecoder { |
- if ((self = [super initWithCoder:aDecoder])) { |
- [self customizeButtonCell]; |
- } |
- return self; |
-} |
- |
-// Initializer for code-based creation. |
-- (id)initTextCell:(NSString*)title { |
- if ((self = [super initTextCell:title])) { |
- [self customizeButtonCell]; |
- } |
- return self; |
-} |
- |
-// Because an NSButtonCell has multiple initializers, this method performs the |
-// common cell customization code. |
-- (void)customizeButtonCell { |
- [self setBordered:NO]; |
- [self setTextColor:[HyperlinkButtonCell defaultTextColor]]; |
- [self setShouldUnderline:YES]; |
- |
- CGFloat fontSize = [NSFont systemFontSizeForControlSize:[self controlSize]]; |
- NSFont* font = [NSFont controlContentFontOfSize:fontSize]; |
- [self setFont:font]; |
- |
- // Do not change button appearance when we are pushed. |
- [self setHighlightsBy:NSNoCellMask]; |
- |
- // We need to set this so that we can override |-mouseEntered:| and |
- // |-mouseExited:| to change the cursor style on hover states. |
- [self setShowsBorderOnlyWhileMouseInside:YES]; |
-} |
- |
-- (void)setControlSize:(NSControlSize)size { |
- [super setControlSize:size]; |
- [self customizeButtonCell]; // recompute |font|. |
-} |
- |
-// Creates the NSDictionary of attributes for the attributed string. |
-- (NSDictionary*)linkAttributes { |
- NSUInteger underlineMask = NSNoUnderlineStyle; |
- if (shouldUnderline_ && |
- (!underlineOnHover_ || (mouseIsInside_ && [self isEnabled]))) |
- underlineMask = NSUnderlinePatternSolid | NSUnderlineStyleSingle; |
- |
- base::scoped_nsobject<NSMutableParagraphStyle> paragraphStyle( |
- [[NSParagraphStyle defaultParagraphStyle] mutableCopy]); |
- [paragraphStyle setAlignment:[self alignment]]; |
- [paragraphStyle setLineBreakMode:[self lineBreakMode]]; |
- |
- return [NSDictionary dictionaryWithObjectsAndKeys: |
- [self textColor], NSForegroundColorAttributeName, |
- [NSNumber numberWithInt:underlineMask], NSUnderlineStyleAttributeName, |
- [self font], NSFontAttributeName, |
- [NSCursor pointingHandCursor], NSCursorAttributeName, |
- paragraphStyle.get(), NSParagraphStyleAttributeName, |
- nil |
- ]; |
-} |
- |
-// Override the drawing for the cell so that the custom style attributes |
-// can always be applied and so that ellipses will appear when appropriate. |
-- (NSRect)drawTitle:(NSAttributedString*)title |
- withFrame:(NSRect)frame |
- inView:(NSView*)controlView { |
- NSDictionary* linkAttributes = [self linkAttributes]; |
- NSString* plainTitle = [title string]; |
- [plainTitle drawWithRect:frame |
- options:(NSStringDrawingUsesLineFragmentOrigin | |
- NSStringDrawingTruncatesLastVisibleLine) |
- attributes:linkAttributes]; |
- return frame; |
-} |
- |
-// Override the default behavior to draw the border. Instead, change the cursor. |
-- (void)mouseEntered:(NSEvent*)event { |
- mouseIsInside_ = YES; |
- if ([self isEnabled]) |
- [[NSCursor pointingHandCursor] push]; |
- else |
- [[NSCursor currentCursor] push]; |
- if (underlineOnHover_) |
- [[self controlView] setNeedsDisplay:YES]; |
-} |
- |
-- (void)mouseExited:(NSEvent*)event { |
- mouseIsInside_ = NO; |
- [NSCursor pop]; |
- if (underlineOnHover_) |
- [[self controlView] setNeedsDisplay:YES]; |
-} |
- |
-// Setters and getters. |
-- (NSColor*)textColor { |
- if ([self isEnabled]) |
- return textColor_.get(); |
- else |
- return [NSColor disabledControlTextColor]; |
-} |
- |
-- (void)setTextColor:(NSColor*)color { |
- textColor_.reset([color retain]); |
-} |
- |
-// Override so that |-sizeToFit| works better with this type of cell. |
-- (NSSize)cellSize { |
- NSSize size = [super cellSize]; |
- size.width += 2; |
- return size; |
-} |
- |
-@end |