OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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_client_view.h" | 5 #include "ui/views/window/dialog_client_view.h" |
6 | 6 |
7 #include "build/build_config.h" | 7 #include "build/build_config.h" |
8 | 8 |
9 #if defined(OS_WIN) | 9 #if defined(OS_WIN) |
10 #include <windows.h> | 10 #include <windows.h> |
11 #include <uxtheme.h> | 11 #include <uxtheme.h> |
12 #include <vsstyle.h> | 12 #include <vsstyle.h> |
13 #elif defined(TOOLKIT_USES_GTK) | |
14 #include <gtk/gtk.h> | |
15 #endif | 13 #endif |
16 | 14 |
17 #include <algorithm> | 15 #include <algorithm> |
18 | 16 |
19 #include "base/utf_string_conversions.h" | 17 #include "base/utf_string_conversions.h" |
20 #include "grit/ui_strings.h" | 18 #include "grit/ui_strings.h" |
21 #include "ui/base/hit_test.h" | 19 #include "ui/base/hit_test.h" |
22 #include "ui/base/keycodes/keyboard_codes.h" | 20 #include "ui/base/keycodes/keyboard_codes.h" |
23 #include "ui/base/l10n/l10n_util.h" | 21 #include "ui/base/l10n/l10n_util.h" |
24 #include "ui/base/resource/resource_bundle.h" | 22 #include "ui/base/resource/resource_bundle.h" |
(...skipping 18 matching lines...) Expand all Loading... |
43 void UpdateButtonHelper(NativeTextButton* button_view, | 41 void UpdateButtonHelper(NativeTextButton* button_view, |
44 DialogDelegate* delegate, | 42 DialogDelegate* delegate, |
45 ui::DialogButton button) { | 43 ui::DialogButton button) { |
46 string16 label = delegate->GetDialogButtonLabel(button); | 44 string16 label = delegate->GetDialogButtonLabel(button); |
47 if (!label.empty()) | 45 if (!label.empty()) |
48 button_view->SetText(label); | 46 button_view->SetText(label); |
49 button_view->SetEnabled(delegate->IsDialogButtonEnabled(button)); | 47 button_view->SetEnabled(delegate->IsDialogButtonEnabled(button)); |
50 button_view->SetVisible(delegate->IsDialogButtonVisible(button)); | 48 button_view->SetVisible(delegate->IsDialogButtonVisible(button)); |
51 } | 49 } |
52 | 50 |
53 #if defined(OS_WIN) | |
54 void FillViewWithSysColor(gfx::Canvas* canvas, View* view, COLORREF color) { | |
55 SkColor sk_color = | |
56 SkColorSetRGB(GetRValue(color), GetGValue(color), GetBValue(color)); | |
57 canvas->FillRect(sk_color, view->GetLocalBounds()); | |
58 } | |
59 #endif | |
60 | |
61 // DialogButton ---------------------------------------------------------------- | 51 // DialogButton ---------------------------------------------------------------- |
62 | 52 |
63 // DialogButtons is used for the ok/cancel buttons of the window. DialogButton | 53 // DialogButtons is used for the ok/cancel buttons of the window. DialogButton |
64 // forwards AcceleratorPressed to the delegate. | 54 // forwards AcceleratorPressed to the delegate. |
65 | 55 |
66 class DialogButton : public NativeTextButton { | 56 class DialogButton : public NativeTextButton { |
67 public: | 57 public: |
68 DialogButton(ButtonListener* listener, | 58 DialogButton(ButtonListener* listener, |
69 Widget* owner, | 59 Widget* owner, |
70 ui::DialogButton type, | 60 ui::DialogButton type, |
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
307 } | 297 } |
308 | 298 |
309 const DialogClientView* DialogClientView::AsDialogClientView() const { | 299 const DialogClientView* DialogClientView::AsDialogClientView() const { |
310 return this; | 300 return this; |
311 } | 301 } |
312 | 302 |
313 //////////////////////////////////////////////////////////////////////////////// | 303 //////////////////////////////////////////////////////////////////////////////// |
314 // DialogClientView, View overrides: | 304 // DialogClientView, View overrides: |
315 | 305 |
316 void DialogClientView::OnPaint(gfx::Canvas* canvas) { | 306 void DialogClientView::OnPaint(gfx::Canvas* canvas) { |
317 #if defined(OS_WIN) | 307 SkColor bg_color = gfx::NativeTheme::instance()-> |
318 FillViewWithSysColor(canvas, this, GetSysColor(COLOR_3DFACE)); | 308 GetSystemColor(gfx::NativeTheme::kDialogBackgroundColor); |
319 #elif defined(USE_WAYLAND) || defined(USE_AURA) | 309 canvas->FillRect(bg_color, GetLocalBounds()); |
320 SkColor sk_color = SkColorSetARGB(200, 255, 255, 255); | |
321 canvas->FillRect(sk_color, GetLocalBounds()); | |
322 #else | |
323 GtkWidget* widget = GetWidget()->GetNativeView(); | |
324 if (GTK_IS_WINDOW(widget)) { | |
325 GtkStyle* window_style = gtk_widget_get_style(widget); | |
326 canvas->FillRect(gfx::GdkColorToSkColor(window_style->bg[GTK_STATE_NORMAL]), | |
327 GetLocalBounds()); | |
328 } | |
329 #endif | |
330 } | 310 } |
331 | 311 |
332 void DialogClientView::PaintChildren(gfx::Canvas* canvas) { | 312 void DialogClientView::PaintChildren(gfx::Canvas* canvas) { |
333 View::PaintChildren(canvas); | 313 View::PaintChildren(canvas); |
334 if (!GetWidget()->IsMaximized() && !GetWidget()->IsMinimized()) | 314 if (!GetWidget()->IsMaximized() && !GetWidget()->IsMinimized()) |
335 PaintSizeBox(canvas); | 315 PaintSizeBox(canvas); |
336 } | 316 } |
337 | 317 |
338 void DialogClientView::Layout() { | 318 void DialogClientView::Layout() { |
339 if (has_dialog_buttons()) | 319 if (has_dialog_buttons()) |
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
582 void DialogClientView::InitClass() { | 562 void DialogClientView::InitClass() { |
583 static bool initialized = false; | 563 static bool initialized = false; |
584 if (!initialized) { | 564 if (!initialized) { |
585 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); | 565 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); |
586 dialog_button_font_ = new gfx::Font(rb.GetFont(ResourceBundle::BaseFont)); | 566 dialog_button_font_ = new gfx::Font(rb.GetFont(ResourceBundle::BaseFont)); |
587 initialized = true; | 567 initialized = true; |
588 } | 568 } |
589 } | 569 } |
590 | 570 |
591 } // namespace views | 571 } // namespace views |
OLD | NEW |