dialog_delegate.cc revision ca12bfac764ba476d6cd062bf1dde12cc64c3f40
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/views/window/dialog_delegate.h" 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/logging.h" 82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "grit/ui_strings.h" 92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "ui/base/l10n/l10n_util.h" 10b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)#include "ui/base/ui_base_switches_util.h" 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "ui/views/bubble/bubble_border.h" 122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "ui/views/bubble/bubble_frame_view.h" 132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "ui/views/controls/button/label_button.h" 147dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "ui/views/controls/textfield/textfield.h" 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/views/widget/widget.h" 162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "ui/views/widget/widget_observer.h" 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/views/window/dialog_client_view.h" 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if defined(USE_AURA) 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "ui/views/corewm/shadow_types.h" 212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace views { 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 25b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)//////////////////////////////////////////////////////////////////////////////// 26b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)// DialogDelegate: 27b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) 28b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)DialogDelegate::~DialogDelegate() { 29b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)} 30b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) 31b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)// static 32b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)bool DialogDelegate::UseNewStyle() { 337dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch return switches::IsNewDialogStyleEnabled() && 347dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch Textfield::IsViewsTextfieldEnabled(); 35b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)} 362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 37b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)// static 38b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)Widget* DialogDelegate::CreateDialogWidget(DialogDelegate* dialog, 39b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) gfx::NativeWindow context, 40b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) gfx::NativeWindow parent) { 412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) views::Widget* widget = new views::Widget; 422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) views::Widget::InitParams params; 43b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) params.delegate = dialog; 44868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) const bool use_new_style = dialog ? 45868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) dialog->UseNewStyleForThisDialog() : DialogDelegate::UseNewStyle(); 46868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) if (use_new_style) { 47c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Note: Transparent widgets cannot host native Windows textfield controls. 48eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch params.opacity = Widget::InitParams::TRANSLUCENT_WINDOW; 492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params.remove_standard_frame = true; 502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params.context = context; 522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params.parent = parent; 532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params.top_level = true; 542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) widget->Init(params); 55868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) if (use_new_style) { 562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if defined(USE_AURA) 572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // TODO(msw): Add a matching shadow type and remove the bubble frame border? 582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) corewm::SetShadowType(widget->GetNativeWindow(), corewm::SHADOW_TYPE_NONE); 592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return widget; 622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 64a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)View* DialogDelegate::CreateExtraView() { 65a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) return NULL; 66a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)} 67a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) 68a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)View* DialogDelegate::CreateTitlebarExtraView() { 69a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) return NULL; 70a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)} 71a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) 72a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)View* DialogDelegate::CreateFootnoteView() { 73a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) return NULL; 74a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)} 75a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) 76a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)bool DialogDelegate::Cancel() { 77a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) return true; 78a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)} 79a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) 80a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)bool DialogDelegate::Accept(bool window_closing) { 81a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) return Accept(); 82a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)} 83a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) 84a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)bool DialogDelegate::Accept() { 85a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) return true; 86a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)} 87a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) 88a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)base::string16 DialogDelegate::GetDialogLabel() const { 89a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) return base::string16(); 90a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)} 91a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) 92a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)base::string16 DialogDelegate::GetDialogTitle() const { 93a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) return base::string16(); 94a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)} 95a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int DialogDelegate::GetDialogButtons() const { 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return ui::DIALOG_BUTTON_OK | ui::DIALOG_BUTTON_CANCEL; 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int DialogDelegate::GetDefaultDialogButton() const { 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (GetDialogButtons() & ui::DIALOG_BUTTON_OK) 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return ui::DIALOG_BUTTON_OK; 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (GetDialogButtons() & ui::DIALOG_BUTTON_CANCEL) 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return ui::DIALOG_BUTTON_CANCEL; 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return ui::DIALOG_BUTTON_NONE; 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 108ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdochbool DialogDelegate::ShouldDefaultButtonBeBlue() const { 109ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch return false; 110ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch} 111ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch 112a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)base::string16 DialogDelegate::GetDialogButtonLabel( 113a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) ui::DialogButton button) const { 1142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (button == ui::DIALOG_BUTTON_OK) 1152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return l10n_util::GetStringUTF16(IDS_APP_OK); 1162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (button == ui::DIALOG_BUTTON_CANCEL) { 1172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (GetDialogButtons() & ui::DIALOG_BUTTON_OK) 1182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return l10n_util::GetStringUTF16(IDS_APP_CANCEL); 1192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return l10n_util::GetStringUTF16(IDS_APP_CLOSE); 1202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 1212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) NOTREACHED(); 122a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) return base::string16(); 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool DialogDelegate::IsDialogButtonEnabled(ui::DialogButton button) const { 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return true; 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)View* DialogDelegate::GetInitiallyFocusedView() { 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Focus the default button if any. 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const DialogClientView* dcv = GetDialogClientView(); 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int default_button = GetDefaultDialogButton(); 1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (default_button == ui::DIALOG_BUTTON_NONE) 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return NULL; 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if ((default_button & GetDialogButtons()) == 0) { 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The default button is a button we don't have. 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NOTREACHED(); 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return NULL; 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (default_button & ui::DIALOG_BUTTON_OK) 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return dcv->ok_button(); 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (default_button & ui::DIALOG_BUTTON_CANCEL) 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return dcv->cancel_button(); 1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return NULL; 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)DialogDelegate* DialogDelegate::AsDialogDelegate() { 1502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return this; 1512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)ClientView* DialogDelegate::CreateClientView(Widget* widget) { 1542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return new DialogClientView(widget, GetContentsView()); 1552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 1562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)NonClientFrameView* DialogDelegate::CreateNonClientFrameView(Widget* widget) { 158868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) if (UseNewStyleForThisDialog()) 159868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) return CreateNewStyleFrameView(widget); 160868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) return WidgetDelegate::CreateNonClientFrameView(widget); 1612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 1622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// static 1642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)NonClientFrameView* DialogDelegate::CreateNewStyleFrameView(Widget* widget) { 165b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) return CreateNewStyleFrameView(widget, false); 166b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)} 167b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) 168b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)NonClientFrameView* DialogDelegate::CreateNewStyleFrameView( 169b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) Widget* widget, 170b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) bool force_opaque_border) { 171c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) BubbleFrameView* frame = new BubbleFrameView(gfx::Insets()); 1722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const SkColor color = widget->GetNativeTheme()->GetSystemColor( 1732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ui::NativeTheme::kColorId_DialogBackground); 174b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) if (force_opaque_border) { 175b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) frame->SetBubbleBorder(new BubbleBorder( 176b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) BubbleBorder::NONE, 177b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) BubbleBorder::NO_SHADOW_OPAQUE_BORDER, 178b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) color)); 179b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) } else { 180b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) frame->SetBubbleBorder(new BubbleBorder(BubbleBorder::FLOAT, 181b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) BubbleBorder::SMALL_SHADOW, 182b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) color)); 183b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) } 1842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) frame->SetTitle(widget->widget_delegate()->GetWindowTitle()); 1852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) DialogDelegate* delegate = widget->widget_delegate()->AsDialogDelegate(); 1862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (delegate) { 1872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) View* titlebar_view = delegate->CreateTitlebarExtraView(); 1882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (titlebar_view) 1892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) frame->SetTitlebarExtraView(titlebar_view); 1902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 19190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) frame->SetShowCloseButton(widget->widget_delegate()->ShouldShowCloseButton()); 192b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) if (force_opaque_border) 193b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) widget->set_frame_type(views::Widget::FRAME_TYPE_FORCE_CUSTOM); 1942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return frame; 1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 197868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)bool DialogDelegate::UseNewStyleForThisDialog() const { 198868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) return UseNewStyle(); 199868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)} 200868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const DialogClientView* DialogDelegate::GetDialogClientView() const { 2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return GetWidget()->client_view()->AsDialogClientView(); 2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)DialogClientView* DialogDelegate::GetDialogClientView() { 2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return GetWidget()->client_view()->AsDialogClientView(); 2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ui::AccessibilityTypes::Role DialogDelegate::GetAccessibleWindowRole() const { 2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return ui::AccessibilityTypes::ROLE_DIALOG; 2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//////////////////////////////////////////////////////////////////////////////// 2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// DialogDelegateView: 2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)DialogDelegateView::DialogDelegateView() { 2172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // A WidgetDelegate should be deleted on DeleteDelegate. 2182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) set_owned_by_client(); 2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)DialogDelegateView::~DialogDelegateView() {} 2222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void DialogDelegateView::DeleteDelegate() { 2242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) delete this; 2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)Widget* DialogDelegateView::GetWidget() { 2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return View::GetWidget(); 2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const Widget* DialogDelegateView::GetWidget() const { 2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return View::GetWidget(); 2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)View* DialogDelegateView::GetContentsView() { 2362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return this; 2372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 2382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace views 240