Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7429)

Unified Diff: chrome/browser/ui/cocoa/tab_modal_confirm_dialog_mac.mm

Issue 10870094: Constrained window sheet controller (test patch) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rename Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/cocoa/tab_modal_confirm_dialog_mac.mm
diff --git a/chrome/browser/ui/cocoa/tab_modal_confirm_dialog_mac.mm b/chrome/browser/ui/cocoa/tab_modal_confirm_dialog_mac.mm
index acdf26c6dac9d6399e6d4c716ac28b90584d5a22..450da08e040bd42fe753b7b237a65cb0053f08ef 100644
--- a/chrome/browser/ui/cocoa/tab_modal_confirm_dialog_mac.mm
+++ b/chrome/browser/ui/cocoa/tab_modal_confirm_dialog_mac.mm
@@ -4,10 +4,15 @@
#include "chrome/browser/ui/cocoa/tab_modal_confirm_dialog_mac.h"
+#include "base/command_line.h"
#include "base/memory/scoped_nsobject.h"
#include "chrome/browser/ui/browser_dialogs.h"
+#include "chrome/browser/ui/cocoa/constrained_window/constrained_window_alert.h"
+#include "chrome/browser/ui/cocoa/constrained_window/constrained_window_mac2.h"
+#include "chrome/browser/ui/cocoa/view_util.h"
#include "chrome/browser/ui/tab_contents/tab_contents.h"
#include "chrome/browser/ui/tab_modal_confirm_dialog_delegate.h"
+#include "chrome/common/chrome_switches.h"
#include "ui/base/l10n/l10n_util_mac.h"
#include "ui/gfx/image/image.h"
@@ -46,8 +51,14 @@ namespace chrome {
// Declared in browser_dialogs.h so others don't have to depend on our header.
void ShowTabModalConfirmDialog(TabModalConfirmDialogDelegate* delegate,
TabContents* tab_contents) {
- // Deletes itself when closed.
- new TabModalConfirmDialogMac(delegate, tab_contents);
+ if (CommandLine::ForCurrentProcess()->HasSwitch(
+ switches::kEnableFramelessConstrainedDialogs)) {
+ // Deletes itself when closed.
+ new TabModalConfirmDialogMac2(delegate, tab_contents);
+ } else {
+ // Deletes itself when closed.
+ new TabModalConfirmDialogMac(delegate, tab_contents);
+ }
}
} // namespace chrome
@@ -91,3 +102,70 @@ TabModalConfirmDialogMac::~TabModalConfirmDialogMac() {
void TabModalConfirmDialogMac::DeleteDelegate() {
delete this;
}
+
+
+
+
+
+
+
+
+
+
+@interface TabModalConfirmDialogMacBridge2 : NSObject {
+ TabModalConfirmDialogDelegate* delegate_; // weak
+}
+@end
+
+@implementation TabModalConfirmDialogMacBridge2
+
+- (id)initWithDelegate:(TabModalConfirmDialogDelegate*)delegate {
+ if ((self = [super init])) {
+ delegate_ = delegate;
+ DCHECK(delegate_);
+ }
+ return self;
+}
+
+- (void)onAcceptButton:(id)sender {
+ delegate_->Accept();
+}
+
+- (void)onCancelButton:(id)sender {
+ delegate_->Cancel();
+}
+
+@end
+
+TabModalConfirmDialogMac2::TabModalConfirmDialogMac2(
+ TabModalConfirmDialogDelegate* delegate,
+ TabContents* tab_contents)
+ : delegate_(delegate) {
+ bridge_.reset([[TabModalConfirmDialogMacBridge2 alloc]
+ initWithDelegate:delegate]);
+
+ alert_.reset([[ConstrainedWindowAlert alloc] init]);
+ [alert_ setMessageText:
+ l10n_util::FixUpWindowsStyleLabel(delegate->GetTitle())];
+ [alert_ setInformativeText:
+ l10n_util::FixUpWindowsStyleLabel(delegate->GetMessage())];
+ [alert_ addButtonWithTitle:
+ l10n_util::FixUpWindowsStyleLabel(delegate->GetAcceptButtonTitle())
+ keyEquivalent:kKeyEquivalentReturn
+ target:bridge_
+ action:@selector(onAcceptButton:)];
+ [alert_ addButtonWithTitle:
+ l10n_util::FixUpWindowsStyleLabel(delegate->GetCancelButtonTitle())
+ keyEquivalent:kKeyEquivalentEscape
+ target:bridge_
+ action:@selector(onCancelButton:)];
+ [[alert_ closeButton] setTarget:bridge_];
+ [[alert_ closeButton] setAction:@selector(onCancelButton:)];
+ [alert_ layout];
+
+ delegate->set_window(
+ new ConstrainedWindowMac2(tab_contents, [alert_ window]));
+}
+
+TabModalConfirmDialogMac2::~TabModalConfirmDialogMac2() {
+}
« no previous file with comments | « chrome/browser/ui/cocoa/tab_modal_confirm_dialog_mac.h ('k') | chrome/browser/ui/cocoa/tabs/tab_strip_controller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698