OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "ui/views/window/dialog_delegate.h" | 5 #include "ui/views/window/dialog_delegate.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "grit/ui_strings.h" | 8 #include "grit/ui_strings.h" |
9 #include "ui/base/l10n/l10n_util.h" | 9 #include "ui/base/l10n/l10n_util.h" |
10 #include "ui/views/bubble/bubble_border.h" | 10 #include "ui/views/bubble/bubble_border.h" |
11 #include "ui/views/bubble/bubble_frame_view.h" | 11 #include "ui/views/bubble/bubble_frame_view.h" |
12 #include "ui/views/controls/button/label_button.h" | 12 #include "ui/views/controls/button/label_button.h" |
13 #include "ui/views/widget/widget.h" | 13 #include "ui/views/widget/widget.h" |
14 #include "ui/views/widget/widget_observer.h" | 14 #include "ui/views/widget/widget_observer.h" |
15 #include "ui/views/window/dialog_client_view.h" | 15 #include "ui/views/window/dialog_client_view.h" |
16 | 16 |
17 #if defined(USE_AURA) | 17 #if defined(USE_AURA) |
18 #include "ui/views/corewm/shadow_types.h" | 18 #include "ui/views/corewm/shadow_types.h" |
19 #endif | 19 #endif |
20 | 20 |
21 namespace views { | 21 namespace views { |
22 | 22 |
23 //////////////////////////////////////////////////////////////////////////////// | 23 //////////////////////////////////////////////////////////////////////////////// |
24 // DialogDelegate: | 24 // DialogDelegate: |
25 | 25 |
26 DialogDelegate::~DialogDelegate() { | 26 DialogDelegate::~DialogDelegate() { |
27 } | 27 } |
28 | 28 |
29 // static | 29 // static |
30 bool DialogDelegate::UseNewStyle() { | |
31 return true; | |
32 } | |
33 | |
34 // static | |
35 Widget* DialogDelegate::CreateDialogWidget(DialogDelegate* dialog, | 30 Widget* DialogDelegate::CreateDialogWidget(DialogDelegate* dialog, |
36 gfx::NativeWindow context, | 31 gfx::NativeWindow context, |
37 gfx::NativeWindow parent) { | 32 gfx::NativeWindow parent) { |
38 views::Widget* widget = new views::Widget; | 33 views::Widget* widget = new views::Widget; |
39 views::Widget::InitParams params; | 34 views::Widget::InitParams params; |
40 params.delegate = dialog; | 35 params.delegate = dialog; |
41 if (!dialog || dialog->UseNewStyleForThisDialog()) { | 36 if (!dialog || dialog->UseNewStyleForThisDialog()) { |
42 params.opacity = Widget::InitParams::TRANSLUCENT_WINDOW; | 37 params.opacity = Widget::InitParams::TRANSLUCENT_WINDOW; |
43 params.remove_standard_frame = true; | 38 params.remove_standard_frame = true; |
44 } | 39 } |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
146 DialogDelegate* DialogDelegate::AsDialogDelegate() { | 141 DialogDelegate* DialogDelegate::AsDialogDelegate() { |
147 return this; | 142 return this; |
148 } | 143 } |
149 | 144 |
150 ClientView* DialogDelegate::CreateClientView(Widget* widget) { | 145 ClientView* DialogDelegate::CreateClientView(Widget* widget) { |
151 return new DialogClientView(widget, GetContentsView()); | 146 return new DialogClientView(widget, GetContentsView()); |
152 } | 147 } |
153 | 148 |
154 NonClientFrameView* DialogDelegate::CreateNonClientFrameView(Widget* widget) { | 149 NonClientFrameView* DialogDelegate::CreateNonClientFrameView(Widget* widget) { |
155 if (UseNewStyleForThisDialog()) | 150 if (UseNewStyleForThisDialog()) |
156 return CreateNewStyleFrameView(widget); | 151 return CreateDialogFrameView(widget); |
157 return WidgetDelegate::CreateNonClientFrameView(widget); | 152 return WidgetDelegate::CreateNonClientFrameView(widget); |
158 } | 153 } |
159 | 154 |
160 // static | 155 // static |
161 NonClientFrameView* DialogDelegate::CreateNewStyleFrameView(Widget* widget) { | 156 NonClientFrameView* DialogDelegate::CreateDialogFrameView(Widget* widget) { |
162 return CreateNewStyleFrameView(widget, false); | 157 return CreateDialogFrameView(widget, false); |
163 } | 158 } |
164 | 159 |
165 // static | 160 // static |
166 NonClientFrameView* DialogDelegate::CreateNewStyleFrameView( | 161 NonClientFrameView* DialogDelegate::CreateDialogFrameView( |
167 Widget* widget, | 162 Widget* widget, |
168 bool force_opaque_border) { | 163 bool force_opaque_border) { |
169 BubbleFrameView* frame = new BubbleFrameView(gfx::Insets()); | 164 BubbleFrameView* frame = new BubbleFrameView(gfx::Insets()); |
170 const SkColor color = widget->GetNativeTheme()->GetSystemColor( | 165 const SkColor color = widget->GetNativeTheme()->GetSystemColor( |
171 ui::NativeTheme::kColorId_DialogBackground); | 166 ui::NativeTheme::kColorId_DialogBackground); |
172 if (force_opaque_border) { | 167 if (force_opaque_border) { |
173 frame->SetBubbleBorder(new BubbleBorder( | 168 frame->SetBubbleBorder(new BubbleBorder( |
174 BubbleBorder::NONE, | 169 BubbleBorder::NONE, |
175 BubbleBorder::NO_SHADOW_OPAQUE_BORDER, | 170 BubbleBorder::NO_SHADOW_OPAQUE_BORDER, |
176 color)); | 171 color)); |
(...skipping 11 matching lines...) Expand all Loading... |
188 if (force_opaque_border) | 183 if (force_opaque_border) |
189 widget->set_frame_type(views::Widget::FRAME_TYPE_FORCE_CUSTOM); | 184 widget->set_frame_type(views::Widget::FRAME_TYPE_FORCE_CUSTOM); |
190 #if defined(USE_AURA) | 185 #if defined(USE_AURA) |
191 // TODO(msw): Add a matching shadow type and remove the bubble frame border? | 186 // TODO(msw): Add a matching shadow type and remove the bubble frame border? |
192 corewm::SetShadowType(widget->GetNativeWindow(), corewm::SHADOW_TYPE_NONE); | 187 corewm::SetShadowType(widget->GetNativeWindow(), corewm::SHADOW_TYPE_NONE); |
193 #endif | 188 #endif |
194 return frame; | 189 return frame; |
195 } | 190 } |
196 | 191 |
197 bool DialogDelegate::UseNewStyleForThisDialog() const { | 192 bool DialogDelegate::UseNewStyleForThisDialog() const { |
198 return UseNewStyle(); | 193 return true; |
199 } | 194 } |
200 | 195 |
201 const DialogClientView* DialogDelegate::GetDialogClientView() const { | 196 const DialogClientView* DialogDelegate::GetDialogClientView() const { |
202 return GetWidget()->client_view()->AsDialogClientView(); | 197 return GetWidget()->client_view()->AsDialogClientView(); |
203 } | 198 } |
204 | 199 |
205 DialogClientView* DialogDelegate::GetDialogClientView() { | 200 DialogClientView* DialogDelegate::GetDialogClientView() { |
206 return GetWidget()->client_view()->AsDialogClientView(); | 201 return GetWidget()->client_view()->AsDialogClientView(); |
207 } | 202 } |
208 | 203 |
(...skipping 21 matching lines...) Expand all Loading... |
230 | 225 |
231 const Widget* DialogDelegateView::GetWidget() const { | 226 const Widget* DialogDelegateView::GetWidget() const { |
232 return View::GetWidget(); | 227 return View::GetWidget(); |
233 } | 228 } |
234 | 229 |
235 View* DialogDelegateView::GetContentsView() { | 230 View* DialogDelegateView::GetContentsView() { |
236 return this; | 231 return this; |
237 } | 232 } |
238 | 233 |
239 } // namespace views | 234 } // namespace views |
OLD | NEW |