Index: chrome/browser/ui/cocoa/hyperlink_text_view.mm |
diff --git a/chrome/browser/ui/cocoa/hyperlink_text_view.mm b/chrome/browser/ui/cocoa/hyperlink_text_view.mm |
deleted file mode 100644 |
index a58eb1d131f6068f929e90ff6d87b9f0c8413e20..0000000000000000000000000000000000000000 |
--- a/chrome/browser/ui/cocoa/hyperlink_text_view.mm |
+++ /dev/null |
@@ -1,158 +0,0 @@ |
-// Copyright (c) 2011 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_text_view.h" |
- |
-#include "base/mac/scoped_nsobject.h" |
-#include "chrome/browser/ui/cocoa/nsview_additions.h" |
- |
-// The baseline shift for text in the NSTextView. |
-const float kTextBaselineShift = -1.0; |
- |
-@interface HyperlinkTextView(Private) |
-// Initialize the NSTextView properties for this subclass. |
-- (void)configureTextView; |
- |
-// Change the current IBeamCursor to an arrowCursor. |
-- (void)fixupCursor; |
-@end |
- |
-@implementation HyperlinkTextView |
- |
-@synthesize drawsBackgroundUsingSuperview = drawsBackgroundUsingSuperview_; |
- |
-- (id)initWithCoder:(NSCoder*)decoder { |
- if ((self = [super initWithCoder:decoder])) |
- [self configureTextView]; |
- return self; |
-} |
- |
-- (id)initWithFrame:(NSRect)frameRect { |
- if ((self = [super initWithFrame:frameRect])) |
- [self configureTextView]; |
- return self; |
-} |
- |
-- (BOOL)acceptsFirstResponder { |
- return !refusesFirstResponder_; |
-} |
- |
-- (void)drawViewBackgroundInRect:(NSRect)rect { |
- if (drawsBackgroundUsingSuperview_) |
- [self cr_drawUsingAncestor:[self superview] inRect:rect]; |
- else |
- [super drawViewBackgroundInRect:rect]; |
-} |
- |
-// Never draw the insertion point (otherwise, it shows up without any user |
-// action if full keyboard accessibility is enabled). |
-- (BOOL)shouldDrawInsertionPoint { |
- return NO; |
-} |
- |
-- (NSRange)selectionRangeForProposedRange:(NSRange)proposedSelRange |
- granularity:(NSSelectionGranularity)granularity { |
- // Do not allow selections. |
- return NSMakeRange(0, 0); |
-} |
- |
-// Convince NSTextView to not show an I-Beam cursor when the cursor is over the |
-// text view but not over actual text. |
-// |
-// http://www.mail-archive.com/cocoa-dev@lists.apple.com/msg10791.html |
-// "NSTextView sets the cursor over itself dynamically, based on considerations |
-// including the text under the cursor. It does so in -mouseEntered:, |
-// -mouseMoved:, and -cursorUpdate:, so those would be points to consider |
-// overriding." |
-- (void)mouseMoved:(NSEvent*)e { |
- [super mouseMoved:e]; |
- [self fixupCursor]; |
-} |
- |
-- (void)mouseEntered:(NSEvent*)e { |
- [super mouseEntered:e]; |
- [self fixupCursor]; |
-} |
- |
-- (void)cursorUpdate:(NSEvent*)e { |
- [super cursorUpdate:e]; |
- [self fixupCursor]; |
-} |
- |
-- (void)configureTextView { |
- [self setEditable:NO]; |
- [self setDrawsBackground:NO]; |
- [self setHorizontallyResizable:NO]; |
- [self setVerticallyResizable:NO]; |
- |
- // When text is rendered, linkTextAttributes override anything set via |
- // addAttributes for text that has NSLinkAttributeName. Set to nil to allow |
- // custom attributes to take precedence. |
- [self setLinkTextAttributes:nil]; |
- [self setDisplaysLinkToolTips:NO]; |
- |
- refusesFirstResponder_ = NO; |
- drawsBackgroundUsingSuperview_ = NO; |
-} |
- |
-- (void)fixupCursor { |
- if ([[NSCursor currentCursor] isEqual:[NSCursor IBeamCursor]]) |
- [[NSCursor arrowCursor] set]; |
-} |
- |
-- (void)setMessageAndLink:(NSString*)message |
- withLink:(NSString*)link |
- atOffset:(NSUInteger)linkOffset |
- font:(NSFont*)font |
- messageColor:(NSColor*)messageColor |
- linkColor:(NSColor*)linkColor { |
- NSMutableString* finalMessage = [NSMutableString stringWithString:message]; |
- [finalMessage insertString:link atIndex:linkOffset]; |
- [self setMessage:finalMessage withFont:font messageColor:messageColor]; |
- if ([link length] != 0) { |
- [self addLinkRange:NSMakeRange(linkOffset, [link length]) |
- withName:@"" |
- linkColor:linkColor]; |
- } |
-} |
- |
-- (void)setMessage:(NSString*)message |
- withFont:(NSFont*)font |
- messageColor:(NSColor*)messageColor { |
- // Create an attributes dictionary for the message and link. |
- NSDictionary* attributes = @{ |
- NSForegroundColorAttributeName : messageColor, |
- NSCursorAttributeName : [NSCursor arrowCursor], |
- NSFontAttributeName : font, |
- NSBaselineOffsetAttributeName : @(kTextBaselineShift) |
- }; |
- |
- // Create the attributed string for the message. |
- base::scoped_nsobject<NSAttributedString> attributedMessage( |
- [[NSMutableAttributedString alloc] initWithString:message |
- attributes:attributes]); |
- |
- // Update the text view with the new text. |
- [[self textStorage] setAttributedString:attributedMessage]; |
-} |
- |
-- (void)addLinkRange:(NSRange)range |
- withName:(id)name |
- linkColor:(NSColor*)linkColor { |
- NSDictionary* attributes = @{ |
- NSForegroundColorAttributeName : linkColor, |
- NSUnderlineStyleAttributeName : @(YES), |
- NSCursorAttributeName : [NSCursor pointingHandCursor], |
- NSLinkAttributeName : name, |
- NSUnderlineStyleAttributeName : @(NSSingleUnderlineStyle) |
- }; |
- |
- [[self textStorage] addAttributes:attributes range:range]; |
-} |
- |
-- (void)setRefusesFirstResponder:(BOOL)refusesFirstResponder { |
- refusesFirstResponder_ = refusesFirstResponder; |
-} |
- |
-@end |