| Index: chrome/browser/ui/cocoa/exclusive_access_bubble_window_controller.mm
|
| diff --git a/chrome/browser/ui/cocoa/fullscreen_exit_bubble_controller.mm b/chrome/browser/ui/cocoa/exclusive_access_bubble_window_controller.mm
|
| similarity index 73%
|
| rename from chrome/browser/ui/cocoa/fullscreen_exit_bubble_controller.mm
|
| rename to chrome/browser/ui/cocoa/exclusive_access_bubble_window_controller.mm
|
| index a576002dba7f12f1fe01a3398c937f4348ff1021..05e7b0a83250d8ec72590eae269293a876d53c40 100644
|
| --- a/chrome/browser/ui/cocoa/fullscreen_exit_bubble_controller.mm
|
| +++ b/chrome/browser/ui/cocoa/exclusive_access_bubble_window_controller.mm
|
| @@ -14,11 +14,11 @@
|
| #include "chrome/browser/ui/browser.h"
|
| #include "chrome/browser/ui/browser_commands.h"
|
| #import "chrome/browser/ui/cocoa/browser_window_controller.h"
|
| -#import "chrome/browser/ui/cocoa/fullscreen_exit_bubble_controller.h"
|
| +#import "chrome/browser/ui/cocoa/exclusive_access_bubble_window_controller.h"
|
| #import "chrome/browser/ui/cocoa/info_bubble_view.h"
|
| #import "chrome/browser/ui/cocoa/info_bubble_window.h"
|
| +#include "chrome/browser/ui/fullscreen/exclusive_access_bubble_type.h"
|
| #include "chrome/browser/ui/fullscreen/fullscreen_controller.h"
|
| -#include "chrome/browser/ui/fullscreen/fullscreen_exit_bubble_type.h"
|
| #include "chrome/grit/generated_resources.h"
|
| #include "extensions/browser/extension_registry.h"
|
| #import "third_party/google_toolbox_for_mac/src/AppKit/GTMNSAnimation+Duration.h"
|
| @@ -30,11 +30,10 @@
|
| #include "ui/base/l10n/l10n_util_mac.h"
|
| #include "ui/strings/grit/ui_strings.h"
|
|
|
| -
|
| namespace {
|
| const float kInitialDelay = 3.8;
|
| const float kHideDuration = 0.7;
|
| -} // namespace
|
| +} // namespace
|
|
|
| @interface OneClickHyperlinkTextView : HyperlinkTextView
|
| @end
|
| @@ -44,7 +43,7 @@ const float kHideDuration = 0.7;
|
| }
|
| @end
|
|
|
| -@interface FullscreenExitBubbleController (PrivateMethods)
|
| +@interface ExclusiveAccessBubbleWindowController (PrivateMethods)
|
| // Sets |exitLabel_| based on |exitLabelPlaceholder_|,
|
| // sets |exitLabelPlaceholder_| to nil.
|
| - (void)initializeLabel;
|
| @@ -61,17 +60,17 @@ const float kHideDuration = 0.7;
|
| + (NSString*)keyCommandString;
|
|
|
| + (NSString*)keyCombinationForAccelerator:
|
| - (const ui::PlatformAcceleratorCocoa&)item;
|
| + (const ui::PlatformAcceleratorCocoa&)item;
|
| @end
|
|
|
| -@implementation FullscreenExitBubbleController
|
| +@implementation ExclusiveAccessBubbleWindowController
|
|
|
| - (id)initWithOwner:(BrowserWindowController*)owner
|
| browser:(Browser*)browser
|
| url:(const GURL&)url
|
| - bubbleType:(FullscreenExitBubbleType)bubbleType {
|
| + bubbleType:(ExclusiveAccessBubbleType)bubbleType {
|
| NSString* nibPath =
|
| - [base::mac::FrameworkBundle() pathForResource:@"FullscreenExitBubble"
|
| + [base::mac::FrameworkBundle() pathForResource:@"ExclusiveAccessBubble"
|
| ofType:@"nib"];
|
| if ((self = [super initWithWindowNibPath:nibPath owner:self])) {
|
| browser_ = browser;
|
| @@ -80,8 +79,9 @@ const float kHideDuration = 0.7;
|
| bubbleType_ = bubbleType;
|
| // Mouse lock expects mouse events to reach the main window immediately.
|
| // Make the bubble transparent for mouse events if mouse lock is enabled.
|
| - if (bubbleType_ == FEB_TYPE_FULLSCREEN_MOUSELOCK_EXIT_INSTRUCTION ||
|
| - bubbleType_ == FEB_TYPE_MOUSELOCK_EXIT_INSTRUCTION)
|
| + if (bubbleType_ ==
|
| + EXCLUSIVE_ACCESS_BUBBLE_TYPE_FULLSCREEN_MOUSELOCK_EXIT_INSTRUCTION ||
|
| + bubbleType_ == EXCLUSIVE_ACCESS_BUBBLE_TYPE_MOUSELOCK_EXIT_INSTRUCTION)
|
| [[self window] setIgnoresMouseEvents:YES];
|
| }
|
| return self;
|
| @@ -91,16 +91,17 @@ const float kHideDuration = 0.7;
|
| // The mouselock code expects that mouse events reach the main window
|
| // immediately, but the cursor is still over the bubble, which eats the
|
| // mouse events. Make the bubble transparent for mouse events.
|
| - if (bubbleType_ == FEB_TYPE_FULLSCREEN_MOUSELOCK_BUTTONS ||
|
| - bubbleType_ == FEB_TYPE_MOUSELOCK_BUTTONS)
|
| + if (bubbleType_ ==
|
| + EXCLUSIVE_ACCESS_BUBBLE_TYPE_FULLSCREEN_MOUSELOCK_BUTTONS ||
|
| + bubbleType_ == EXCLUSIVE_ACCESS_BUBBLE_TYPE_MOUSELOCK_BUTTONS)
|
| [[self window] setIgnoresMouseEvents:YES];
|
|
|
| - DCHECK(fullscreen_bubble::ShowButtonsForType(bubbleType_));
|
| + DCHECK(exclusive_access_bubble::ShowButtonsForType(bubbleType_));
|
| browser_->fullscreen_controller()->OnAcceptFullscreenPermission();
|
| }
|
|
|
| - (void)deny:(id)sender {
|
| - DCHECK(fullscreen_bubble::ShowButtonsForType(bubbleType_));
|
| + DCHECK(exclusive_access_bubble::ShowButtonsForType(bubbleType_));
|
| browser_->fullscreen_controller()->OnDenyFullscreenPermission();
|
| }
|
|
|
| @@ -120,7 +121,7 @@ const float kHideDuration = 0.7;
|
| // Completes nib load.
|
| InfoBubbleWindow* info_bubble = static_cast<InfoBubbleWindow*>([self window]);
|
| [info_bubble setCanBecomeKeyWindow:NO];
|
| - if (!fullscreen_bubble::ShowButtonsForType(bubbleType_)) {
|
| + if (!exclusive_access_bubble::ShowButtonsForType(bubbleType_)) {
|
| [self showButtons:NO];
|
| [self hideSoon];
|
| }
|
| @@ -142,30 +143,30 @@ const float kHideDuration = 0.7;
|
| NSRect ownerWindowFrame = [owner_ window].frame;
|
| NSPoint origin;
|
| origin.x = ownerWindowFrame.origin.x +
|
| - (int)(NSWidth(ownerWindowFrame)/2 - NSWidth(windowFrame)/2);
|
| + (int)(NSWidth(ownerWindowFrame) / 2 - NSWidth(windowFrame) / 2);
|
| origin.y = ownerWindowFrame.origin.y + maxY - NSHeight(windowFrame);
|
| [[self window] setFrameOrigin:origin];
|
| }
|
|
|
| // Called when someone clicks on the embedded link.
|
| -- (BOOL) textView:(NSTextView*)textView
|
| +- (BOOL)textView:(NSTextView*)textView
|
| clickedOnLink:(id)link
|
| atIndex:(NSUInteger)charIndex {
|
| - browser_->fullscreen_controller()->
|
| - ExitTabOrBrowserFullscreenToPreviousState();
|
| + browser_->fullscreen_controller()
|
| + ->ExitTabOrBrowserFullscreenToPreviousState();
|
| return YES;
|
| }
|
|
|
| - (void)hideTimerFired:(NSTimer*)timer {
|
| // This might fire racily for buttoned bubbles, even though the timer is
|
| // cancelled for them. Explicitly check for this case.
|
| - if (fullscreen_bubble::ShowButtonsForType(bubbleType_))
|
| + if (exclusive_access_bubble::ShowButtonsForType(bubbleType_))
|
| return;
|
|
|
| [NSAnimationContext beginGrouping];
|
| [[NSAnimationContext currentContext]
|
| gtm_setDuration:kHideDuration
|
| - eventMask:NSLeftMouseUpMask|NSLeftMouseDownMask];
|
| + eventMask:NSLeftMouseUpMask | NSLeftMouseDownMask];
|
| [[[self window] animator] setAlphaValue:0.0];
|
| [NSAnimationContext endGrouping];
|
| }
|
| @@ -195,7 +196,7 @@ const float kHideDuration = 0.7;
|
|
|
| @end
|
|
|
| -@implementation FullscreenExitBubbleController (PrivateMethods)
|
| +@implementation ExclusiveAccessBubbleWindowController (PrivateMethods)
|
|
|
| - (void)initializeLabel {
|
| // Replace the label placeholder NSTextField with the real label NSTextView.
|
| @@ -204,38 +205,43 @@ const float kHideDuration = 0.7;
|
| // programmatically.
|
| exitLabel_.reset([[OneClickHyperlinkTextView alloc]
|
| initWithFrame:[exitLabelPlaceholder_ frame]]);
|
| - [exitLabel_.get() setAutoresizingMask:
|
| - [exitLabelPlaceholder_ autoresizingMask]];
|
| + [exitLabel_.get()
|
| + setAutoresizingMask:[exitLabelPlaceholder_ autoresizingMask]];
|
| [exitLabel_.get() setHidden:[exitLabelPlaceholder_ isHidden]];
|
| - [[exitLabelPlaceholder_ superview]
|
| - replaceSubview:exitLabelPlaceholder_ with:exitLabel_.get()];
|
| + [[exitLabelPlaceholder_ superview] replaceSubview:exitLabelPlaceholder_
|
| + with:exitLabel_.get()];
|
| exitLabelPlaceholder_ = nil; // Now released.
|
| [exitLabel_.get() setDelegate:self];
|
|
|
| NSString* exitLinkText;
|
| NSString* exitUnlinkedText;
|
| - if (bubbleType_ == FEB_TYPE_FULLSCREEN_MOUSELOCK_EXIT_INSTRUCTION ||
|
| - bubbleType_ == FEB_TYPE_MOUSELOCK_EXIT_INSTRUCTION) {
|
| + if (bubbleType_ ==
|
| + EXCLUSIVE_ACCESS_BUBBLE_TYPE_FULLSCREEN_MOUSELOCK_EXIT_INSTRUCTION ||
|
| + bubbleType_ == EXCLUSIVE_ACCESS_BUBBLE_TYPE_MOUSELOCK_EXIT_INSTRUCTION) {
|
| exitLinkText = @"";
|
| - exitUnlinkedText = [@" " stringByAppendingString:
|
| - l10n_util::GetNSStringF(IDS_FULLSCREEN_PRESS_ESC_TO_EXIT,
|
| - l10n_util::GetStringUTF16(IDS_APP_ESC_KEY))];
|
| + exitUnlinkedText =
|
| + [@" " stringByAppendingString:l10n_util::GetNSStringF(
|
| + IDS_FULLSCREEN_PRESS_ESC_TO_EXIT,
|
| + l10n_util::GetStringUTF16(
|
| + IDS_APP_ESC_KEY))];
|
| } else {
|
| exitLinkText = l10n_util::GetNSString(IDS_EXIT_FULLSCREEN_MODE);
|
| - exitUnlinkedText = [@" " stringByAppendingString:
|
| - l10n_util::GetNSStringF(IDS_EXIT_FULLSCREEN_MODE_ACCELERATOR,
|
| - l10n_util::GetStringUTF16(IDS_APP_ESC_KEY))];
|
| + exitUnlinkedText =
|
| + [@" " stringByAppendingString:l10n_util::GetNSStringF(
|
| + IDS_EXIT_FULLSCREEN_MODE_ACCELERATOR,
|
| + l10n_util::GetStringUTF16(
|
| + IDS_APP_ESC_KEY))];
|
| }
|
|
|
| - NSFont* font = [NSFont systemFontOfSize:
|
| - [NSFont systemFontSizeForControlSize:NSRegularControlSize]];
|
| - [(HyperlinkTextView*)exitLabel_.get()
|
| - setMessageAndLink:exitUnlinkedText
|
| - withLink:exitLinkText
|
| - atOffset:0
|
| - font:font
|
| - messageColor:[NSColor blackColor]
|
| - linkColor:[NSColor blueColor]];
|
| + NSFont* font = [NSFont
|
| + systemFontOfSize:[NSFont
|
| + systemFontSizeForControlSize:NSRegularControlSize]];
|
| + [(HyperlinkTextView*)exitLabel_.get() setMessageAndLink:exitUnlinkedText
|
| + withLink:exitLinkText
|
| + atOffset:0
|
| + font:font
|
| + messageColor:[NSColor blackColor]
|
| + linkColor:[NSColor blueColor]];
|
| [exitLabel_.get() setAlignment:NSRightTextAlignment];
|
|
|
| NSRect labelFrame = [exitLabel_ frame];
|
| @@ -256,12 +262,12 @@ const float kHideDuration = 0.7;
|
| }
|
|
|
| - (NSString*)getLabelText {
|
| - if (bubbleType_ == FEB_TYPE_NONE)
|
| + if (bubbleType_ == EXCLUSIVE_ACCESS_BUBBLE_TYPE_NONE)
|
| return @"";
|
| extensions::ExtensionRegistry* registry =
|
| extensions::ExtensionRegistry::Get(browser_->profile());
|
| - return SysUTF16ToNSString(
|
| - fullscreen_bubble::GetLabelTextForType(bubbleType_, url_, registry));
|
| + return SysUTF16ToNSString(exclusive_access_bubble::GetLabelTextForType(
|
| + bubbleType_, url_, registry));
|
| }
|
|
|
| // This looks at the Main Menu and determines what the user has set as the
|
| @@ -275,14 +281,15 @@ const float kHideDuration = 0.7;
|
| // Find the toggle presentation mode item.
|
| if ([item tag] == IDC_PRESENTATION_MODE) {
|
| return scoped_ptr<ui::PlatformAcceleratorCocoa>(
|
| - new ui::PlatformAcceleratorCocoa([item keyEquivalent],
|
| - [item keyEquivalentModifierMask]));
|
| + new ui::PlatformAcceleratorCocoa([item keyEquivalent],
|
| + [item keyEquivalentModifierMask]));
|
| }
|
| }
|
| }
|
| // Default to Cmd+Shift+F.
|
| return scoped_ptr<ui::PlatformAcceleratorCocoa>(
|
| - new ui::PlatformAcceleratorCocoa(@"f", NSCommandKeyMask|NSShiftKeyMask));
|
| + new ui::PlatformAcceleratorCocoa(@"f",
|
| + NSCommandKeyMask | NSShiftKeyMask));
|
| }
|
|
|
| // This looks at the Main Menu and determines what the user has set as the
|
| @@ -295,7 +302,7 @@ const float kHideDuration = 0.7;
|
| }
|
|
|
| + (NSString*)keyCombinationForAccelerator:
|
| - (const ui::PlatformAcceleratorCocoa&)item {
|
| + (const ui::PlatformAcceleratorCocoa&)item {
|
| NSMutableString* string = [NSMutableString string];
|
| NSUInteger modifiers = item.modifier_mask();
|
|
|
|
|