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 "chrome/browser/ui/gtk/global_error_bubble.h" | 5 #include "chrome/browser/ui/gtk/global_error_bubble.h" |
6 | 6 |
7 #include <gtk/gtk.h> | 7 #include <gtk/gtk.h> |
8 | 8 |
9 #include "base/i18n/rtl.h" | 9 #include "base/i18n/rtl.h" |
10 #include "base/utf_string_conversions.h" | 10 #include "base/utf_string_conversions.h" |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
48 GtkThemeService::GetFrom(browser_->profile()); | 48 GtkThemeService::GetFrom(browser_->profile()); |
49 | 49 |
50 int resource_id = error_->GetBubbleViewIconResourceID(); | 50 int resource_id = error_->GetBubbleViewIconResourceID(); |
51 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); | 51 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); |
52 GdkPixbuf* pixbuf = rb.GetNativeImageNamed(resource_id).ToGdkPixbuf(); | 52 GdkPixbuf* pixbuf = rb.GetNativeImageNamed(resource_id).ToGdkPixbuf(); |
53 GtkWidget* image_view = gtk_image_new_from_pixbuf(pixbuf); | 53 GtkWidget* image_view = gtk_image_new_from_pixbuf(pixbuf); |
54 | 54 |
55 GtkWidget* title_label = theme_service->BuildLabel( | 55 GtkWidget* title_label = theme_service->BuildLabel( |
56 UTF16ToUTF8(error_->GetBubbleViewTitle()), | 56 UTF16ToUTF8(error_->GetBubbleViewTitle()), |
57 ui::kGdkBlack); | 57 ui::kGdkBlack); |
| 58 // TODO(yoz): Support multi-line messages. |
| 59 string16 message; |
| 60 if (!error_->GetBubbleViewMessages().empty()) |
| 61 message = error_->GetBubbleViewMessages()[0]; |
58 message_label_ = theme_service->BuildLabel( | 62 message_label_ = theme_service->BuildLabel( |
59 UTF16ToUTF8(error_->GetBubbleViewMessage()), | 63 UTF16ToUTF8(message), |
60 ui::kGdkBlack); | 64 ui::kGdkBlack); |
61 gtk_util::ForceFontSizePixels(message_label_, kMessageTextSize); | 65 gtk_util::ForceFontSizePixels(message_label_, kMessageTextSize); |
62 // Message label will be sized later in "realize" callback because we need | 66 // Message label will be sized later in "realize" callback because we need |
63 // to now the width of buttons group. | 67 // to now the width of buttons group. |
64 GtkWidget* accept_button = gtk_button_new_with_label( | 68 GtkWidget* accept_button = gtk_button_new_with_label( |
65 UTF16ToUTF8(error_->GetBubbleViewAcceptButtonLabel()).c_str()); | 69 UTF16ToUTF8(error_->GetBubbleViewAcceptButtonLabel()).c_str()); |
66 string16 cancel_string = error_->GetBubbleViewCancelButtonLabel(); | 70 string16 cancel_string = error_->GetBubbleViewCancelButtonLabel(); |
67 GtkWidget* cancel_button = NULL; | 71 GtkWidget* cancel_button = NULL; |
68 if (!cancel_string.empty()) { | 72 if (!cancel_string.empty()) { |
69 cancel_button = | 73 cancel_button = |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
151 Browser* browser, | 155 Browser* browser, |
152 const base::WeakPtr<GlobalError>& error) { | 156 const base::WeakPtr<GlobalError>& error) { |
153 BrowserWindowGtk* browser_window = | 157 BrowserWindowGtk* browser_window = |
154 BrowserWindowGtk::GetBrowserWindowForNativeWindow( | 158 BrowserWindowGtk::GetBrowserWindowForNativeWindow( |
155 browser->window()->GetNativeWindow()); | 159 browser->window()->GetNativeWindow()); |
156 GtkWidget* anchor = browser_window->GetToolbar()->GetAppMenuButton(); | 160 GtkWidget* anchor = browser_window->GetToolbar()->GetAppMenuButton(); |
157 | 161 |
158 // The bubble will be automatically deleted when it's closed. | 162 // The bubble will be automatically deleted when it's closed. |
159 return new GlobalErrorBubble(browser, error, anchor); | 163 return new GlobalErrorBubble(browser, error, anchor); |
160 } | 164 } |
OLD | NEW |