Index: chrome/browser/ui/cocoa/tab_contents/sad_tab_view.mm |
diff --git a/chrome/browser/ui/cocoa/tab_contents/sad_tab_view.mm b/chrome/browser/ui/cocoa/tab_contents/sad_tab_view.mm |
deleted file mode 100644 |
index c33f1c13ec2c7c7355bf61d1460018c217e4696d..0000000000000000000000000000000000000000 |
--- a/chrome/browser/ui/cocoa/tab_contents/sad_tab_view.mm |
+++ /dev/null |
@@ -1,201 +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. |
- |
-#include "chrome/browser/ui/cocoa/tab_contents/sad_tab_view.h" |
- |
-#include "base/logging.h" |
-#include "base/strings/sys_string_conversions.h" |
-#include "chrome/browser/ui/cocoa/tab_contents/sad_tab_controller.h" |
-#include "chrome/common/url_constants.h" |
-#include "chrome/grit/generated_resources.h" |
-#include "grit/theme_resources.h" |
-#import "third_party/google_toolbox_for_mac/src/AppKit/GTMUILocalizerAndLayoutTweaker.h" |
-#import "ui/base/cocoa/controls/hyperlink_text_view.h" |
-#include "ui/base/l10n/l10n_util.h" |
-#include "ui/base/l10n/l10n_util_mac.h" |
-#include "ui/base/resource/resource_bundle.h" |
-#include "ui/gfx/image/image.h" |
- |
-// Offset above vertical middle of page where contents of page start. |
-static const CGFloat kSadTabOffset = -64; |
-// Padding between icon and title. |
-static const CGFloat kIconTitleSpacing = 20; |
-// Padding between title and message. |
-static const CGFloat kTitleMessageSpacing = 15; |
-// Padding between message and link. |
-static const CGFloat kMessageLinkSpacing = 15; |
-// Paddings on left and right of page. |
-static const CGFloat kTabHorzMargin = 13; |
- |
-@interface SadTabTextView : NSTextField |
- |
-- (id)initWithView:(SadTabView*)view withText:(int)textIds; |
- |
-@end |
- |
-@implementation SadTabTextView |
- |
-- (id)initWithView:(SadTabView*)view withText:(int)textIds { |
- if (self = [super init]) { |
- [self setTextColor:[NSColor whiteColor]]; |
- [self setAlignment:NSCenterTextAlignment]; |
- [self setStringValue:l10n_util::GetNSString(textIds)]; |
- [self setEditable:NO]; |
- [self setBezeled:NO]; |
- [self setAutoresizingMask: |
- NSViewMinXMargin|NSViewWidthSizable|NSViewMaxXMargin|NSViewMinYMargin]; |
- [view addSubview:self]; |
- } |
- return self; |
-} |
- |
-- (BOOL)isOpaque { |
- return YES; |
-} |
- |
-@end |
- |
-@implementation SadTabView |
- |
-- (void)awakeFromNib { |
- // Load resource for image and set it. |
- ResourceBundle& rb = ResourceBundle::GetSharedInstance(); |
- NSImage* image = rb.GetNativeImageNamed(IDR_SAD_TAB).ToNSImage(); |
- [image_ setImage:image]; |
- |
- |
- // Initialize background color. |
- NSColor* backgroundColor = [[NSColor colorWithCalibratedRed:(35.0f/255.0f) |
- green:(48.0f/255.0f) |
- blue:(64.0f/255.0f) |
- alpha:1.0] retain]; |
- backgroundColor_.reset(backgroundColor); |
- |
- // Set up the title. |
- title_.reset([[SadTabTextView alloc] |
- initWithView:self withText:IDS_SAD_TAB_TITLE]); |
- [title_ setFont:[NSFont boldSystemFontOfSize:[NSFont systemFontSize]]]; |
- [title_ setBackgroundColor:backgroundColor]; |
- |
- // Set up the message. |
- message_.reset([[SadTabTextView alloc] |
- initWithView:self withText:IDS_SAD_TAB_MESSAGE]); |
- [message_ setFont:[NSFont systemFontOfSize:[NSFont smallSystemFontSize]]]; |
- [message_ setBackgroundColor:backgroundColor]; |
- |
- DCHECK(controller_); |
- [self initializeHelpText]; |
-} |
- |
-- (void)drawRect:(NSRect)dirtyRect { |
- // Paint background. |
- [backgroundColor_ set]; |
- NSRectFill(dirtyRect); |
-} |
- |
-- (void)resizeSubviewsWithOldSize:(NSSize)oldSize { |
- NSRect newBounds = [self bounds]; |
- CGFloat maxWidth = NSWidth(newBounds) - (kTabHorzMargin * 2); |
- BOOL callSizeToFit = (messageSize_.width == 0); |
- |
- // Set new frame origin for image. |
- NSRect iconFrame = [image_ frame]; |
- CGFloat iconX = floorf((maxWidth - NSWidth(iconFrame)) / 2); |
- CGFloat iconY = |
- MIN(floorf((NSHeight(newBounds) - NSHeight(iconFrame)) / 2) - |
- kSadTabOffset, |
- NSHeight(newBounds) - NSHeight(iconFrame)); |
- iconX = floorf(iconX); |
- iconY = floorf(iconY); |
- [image_ setFrameOrigin:NSMakePoint(iconX, iconY)]; |
- |
- // Set new frame origin for title. |
- if (callSizeToFit) |
- [title_ sizeToFit]; |
- NSRect titleFrame = [title_ frame]; |
- CGFloat titleX = floorf((maxWidth - NSWidth(titleFrame)) / 2); |
- CGFloat titleY = iconY - kIconTitleSpacing - NSHeight(titleFrame); |
- [title_ setFrameOrigin:NSMakePoint(titleX, titleY)]; |
- |
- // Set new frame for message, wrapping or unwrapping the text if necessary. |
- if (callSizeToFit) { |
- [message_ sizeToFit]; |
- messageSize_ = [message_ frame].size; |
- } |
- NSRect messageFrame = [message_ frame]; |
- if (messageSize_.width > maxWidth) { // Need to wrap message. |
- [message_ setFrameSize:NSMakeSize(maxWidth, messageSize_.height)]; |
- CGFloat heightChange = |
- [GTMUILocalizerAndLayoutTweaker sizeToFitFixedWidthTextField:message_]; |
- messageFrame.size.width = maxWidth; |
- messageFrame.size.height = messageSize_.height + heightChange; |
- messageFrame.origin.x = kTabHorzMargin; |
- } else { |
- if (!callSizeToFit) { |
- [message_ sizeToFit]; |
- messageFrame = [message_ frame]; |
- } |
- messageFrame.origin.x = floorf((maxWidth - NSWidth(messageFrame)) / 2); |
- } |
- messageFrame.origin.y = |
- titleY - kTitleMessageSpacing - NSHeight(messageFrame); |
- [message_ setFrame:messageFrame]; |
- |
- // Set new frame for help text and link. |
- if (help_) { |
- if (callSizeToFit) |
- [help_ sizeToFit]; |
- CGFloat helpHeight = [help_ frame].size.height; |
- [help_ setFrameSize:NSMakeSize(maxWidth, helpHeight)]; |
- // Set new frame origin for link. |
- NSRect helpFrame = [help_ frame]; |
- CGFloat helpX = floorf((maxWidth - NSWidth(helpFrame)) / 2); |
- CGFloat helpY = |
- NSMinY(messageFrame) - kMessageLinkSpacing - NSHeight(helpFrame); |
- [help_ setFrameOrigin:NSMakePoint(helpX, helpY)]; |
- } |
-} |
- |
-- (void)removeHelpText { |
- if (help_) { |
- [help_ removeFromSuperview]; |
- help_.reset(nil); |
- } |
-} |
- |
-- (void)initializeHelpText { |
- // Programmatically create the help link. Note that the frame's initial |
- // height must be set for the programmatic resizing to work. |
- help_.reset( |
- [[HyperlinkTextView alloc] initWithFrame:NSMakeRect(0, 0, 1, 17)]); |
- [help_ setAutoresizingMask: |
- NSViewMinXMargin|NSViewWidthSizable|NSViewMaxXMargin|NSViewMinYMargin]; |
- [self addSubview:help_]; |
- [help_ setDelegate:self]; |
- |
- // Get the help text and link. |
- size_t linkOffset = 0; |
- NSString* helpMessage(base::SysUTF16ToNSString(l10n_util::GetStringFUTF16( |
- IDS_SAD_TAB_HELP_MESSAGE, base::string16(), &linkOffset))); |
- NSString* helpLink = l10n_util::GetNSString(IDS_SAD_TAB_HELP_LINK); |
- NSFont* font = [NSFont systemFontOfSize:[NSFont smallSystemFontSize]]; |
- [help_ setMessageAndLink:helpMessage |
- withLink:helpLink |
- atOffset:linkOffset |
- font:font |
- messageColor:[NSColor whiteColor] |
- linkColor:[NSColor whiteColor]]; |
- [help_ setAlignment:NSCenterTextAlignment]; |
-} |
- |
-// Called when someone clicks on the embedded link. |
-- (BOOL)textView:(NSTextView*)textView |
- clickedOnLink:(id)link |
- atIndex:(NSUInteger)charIndex { |
- if (controller_) |
- [controller_ openLearnMoreAboutCrashLink:nil]; |
- return YES; |
-} |
- |
-@end |