diff options
author | ben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-05-08 00:34:05 +0000 |
---|---|---|
committer | ben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-05-08 00:34:05 +0000 |
commit | 2362e4fe2905ab75d3230ebc3e307ae53e2b8362 (patch) | |
tree | e6d88357a2021811e0e354f618247217be8bb3da /views/window/dialog_delegate.cc | |
parent | db23ac3e713dc17509b2b15d3ee634968da45715 (diff) | |
download | chromium_src-2362e4fe2905ab75d3230ebc3e307ae53e2b8362.zip chromium_src-2362e4fe2905ab75d3230ebc3e307ae53e2b8362.tar.gz chromium_src-2362e4fe2905ab75d3230ebc3e307ae53e2b8362.tar.bz2 |
Move src/chrome/views to src/views. RS=darin http://crbug.com/11387
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15604 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'views/window/dialog_delegate.cc')
-rw-r--r-- | views/window/dialog_delegate.cc | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/views/window/dialog_delegate.cc b/views/window/dialog_delegate.cc new file mode 100644 index 0000000..4ae9a91 --- /dev/null +++ b/views/window/dialog_delegate.cc @@ -0,0 +1,54 @@ +// Copyright (c) 2006-2008 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 "views/window/dialog_delegate.h" + +#include "base/logging.h" +#include "views/controls/button/native_button.h" +#include "views/window/window.h" + +namespace views { + +// Overridden from WindowDelegate: + +int DialogDelegate::GetDefaultDialogButton() const { + if (GetDialogButtons() & MessageBoxFlags::DIALOGBUTTON_OK) + return MessageBoxFlags::DIALOGBUTTON_OK; + if (GetDialogButtons() & MessageBoxFlags::DIALOGBUTTON_CANCEL) + return MessageBoxFlags::DIALOGBUTTON_CANCEL; + return MessageBoxFlags::DIALOGBUTTON_NONE; +} + +View* DialogDelegate::GetInitiallyFocusedView() { + // Focus the default button if any. + DialogClientView* dcv = GetDialogClientView(); + int default_button = GetDefaultDialogButton(); + if (default_button == MessageBoxFlags::DIALOGBUTTON_NONE) + return NULL; + + if ((default_button & GetDialogButtons()) == 0) { + // The default button is a button we don't have. + NOTREACHED(); + return NULL; + } + + if (default_button & MessageBoxFlags::DIALOGBUTTON_OK) + return dcv->ok_button(); + if (default_button & MessageBoxFlags::DIALOGBUTTON_CANCEL) + return dcv->cancel_button(); + return NULL; +} + +ClientView* DialogDelegate::CreateClientView(Window* window) { + return new DialogClientView(window, GetContentsView()); +} + +DialogClientView* DialogDelegate::GetDialogClientView() const { + ClientView* client_view = window()->GetClientView(); + DialogClientView* dialog_client_view = client_view->AsDialogClientView(); + DCHECK(dialog_client_view); + return dialog_client_view; +} + +} // namespace views |