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 "chrome/browser/ui/gtk/download/download_shelf_gtk.h" | 5 #include "chrome/browser/ui/gtk/download/download_shelf_gtk.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "chrome/browser/download/download_item.h" | 9 #include "chrome/browser/download/download_item.h" |
10 #include "chrome/browser/download/download_item_model.h" | 10 #include "chrome/browser/download/download_item_model.h" |
11 #include "chrome/browser/download/download_util.h" | 11 #include "chrome/browser/download/download_util.h" |
12 #include "chrome/browser/ui/browser.h" | 12 #include "chrome/browser/ui/browser.h" |
13 #include "chrome/browser/ui/gtk/browser_window_gtk.h" | 13 #include "chrome/browser/ui/gtk/browser_window_gtk.h" |
14 #include "chrome/browser/ui/gtk/custom_button.h" | 14 #include "chrome/browser/ui/gtk/custom_button.h" |
15 #include "chrome/browser/ui/gtk/download/download_item_gtk.h" | 15 #include "chrome/browser/ui/gtk/download/download_item_gtk.h" |
16 #include "chrome/browser/ui/gtk/gtk_chrome_link_button.h" | 16 #include "chrome/browser/ui/gtk/gtk_chrome_link_button.h" |
17 #include "chrome/browser/ui/gtk/gtk_chrome_shrinkable_hbox.h" | 17 #include "chrome/browser/ui/gtk/gtk_chrome_shrinkable_hbox.h" |
18 #include "chrome/browser/ui/gtk/gtk_theme_service.h" | 18 #include "chrome/browser/ui/gtk/gtk_theme_service.h" |
19 #include "chrome/browser/ui/gtk/gtk_util.h" | 19 #include "chrome/browser/ui/gtk/gtk_util.h" |
| 20 #include "chrome/common/chrome_notification_types.h" |
20 #include "content/common/notification_service.h" | 21 #include "content/common/notification_service.h" |
21 #include "grit/generated_resources.h" | 22 #include "grit/generated_resources.h" |
22 #include "grit/theme_resources.h" | 23 #include "grit/theme_resources.h" |
23 #include "grit/theme_resources_standard.h" | 24 #include "grit/theme_resources_standard.h" |
24 #include "ui/base/l10n/l10n_util.h" | 25 #include "ui/base/l10n/l10n_util.h" |
25 #include "ui/base/resource/resource_bundle.h" | 26 #include "ui/base/resource/resource_bundle.h" |
26 #include "ui/gfx/gtk_util.h" | 27 #include "ui/gfx/gtk_util.h" |
27 #include "ui/gfx/image/image.h" | 28 #include "ui/gfx/image/image.h" |
28 #include "ui/gfx/insets.h" | 29 #include "ui/gfx/insets.h" |
29 #include "ui/gfx/point.h" | 30 #include "ui/gfx/point.h" |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
135 // Pack the link and the icon in outer hbox. | 136 // Pack the link and the icon in outer hbox. |
136 gtk_util::CenterWidgetInHBox(outer_hbox, link_button_, true, 0); | 137 gtk_util::CenterWidgetInHBox(outer_hbox, link_button_, true, 0); |
137 gtk_util::CenterWidgetInHBox(outer_hbox, download_image, true, 0); | 138 gtk_util::CenterWidgetInHBox(outer_hbox, download_image, true, 0); |
138 | 139 |
139 slide_widget_.reset(new SlideAnimatorGtk(shelf_.get(), | 140 slide_widget_.reset(new SlideAnimatorGtk(shelf_.get(), |
140 SlideAnimatorGtk::UP, | 141 SlideAnimatorGtk::UP, |
141 kShelfAnimationDurationMs, | 142 kShelfAnimationDurationMs, |
142 false, true, this)); | 143 false, true, this)); |
143 | 144 |
144 theme_service_->InitThemesFor(this); | 145 theme_service_->InitThemesFor(this); |
145 registrar_.Add(this, NotificationType::BROWSER_THEME_CHANGED, | 146 registrar_.Add(this, chrome::NOTIFICATION_BROWSER_THEME_CHANGED, |
146 Source<ThemeService>(theme_service_)); | 147 Source<ThemeService>(theme_service_)); |
147 | 148 |
148 gtk_widget_show_all(shelf_.get()); | 149 gtk_widget_show_all(shelf_.get()); |
149 | 150 |
150 // Stick ourselves at the bottom of the parent browser. | 151 // Stick ourselves at the bottom of the parent browser. |
151 gtk_box_pack_end(GTK_BOX(parent), slide_widget_->widget(), | 152 gtk_box_pack_end(GTK_BOX(parent), slide_widget_->widget(), |
152 FALSE, FALSE, 0); | 153 FALSE, FALSE, 0); |
153 // Make sure we are at the very end. | 154 // Make sure we are at the very end. |
154 gtk_box_reorder_child(GTK_BOX(parent), slide_widget_->widget(), 0); | 155 gtk_box_reorder_child(GTK_BOX(parent), slide_widget_->widget(), 0); |
155 Show(); | 156 Show(); |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
213 RemoveDownloadItem(download_items_[i]); | 214 RemoveDownloadItem(download_items_[i]); |
214 } else { | 215 } else { |
215 // We set all remaining items as "opened", so that the shelf will auto- | 216 // We set all remaining items as "opened", so that the shelf will auto- |
216 // close in the future without the user clicking on them. | 217 // close in the future without the user clicking on them. |
217 download->set_opened(true); | 218 download->set_opened(true); |
218 ++i; | 219 ++i; |
219 } | 220 } |
220 } | 221 } |
221 } | 222 } |
222 | 223 |
223 void DownloadShelfGtk::Observe(NotificationType type, | 224 void DownloadShelfGtk::Observe(int type, |
224 const NotificationSource& source, | 225 const NotificationSource& source, |
225 const NotificationDetails& details) { | 226 const NotificationDetails& details) { |
226 if (type == NotificationType::BROWSER_THEME_CHANGED) { | 227 if (type == chrome::NOTIFICATION_BROWSER_THEME_CHANGED) { |
227 GdkColor color = theme_service_->GetGdkColor( | 228 GdkColor color = theme_service_->GetGdkColor( |
228 ThemeService::COLOR_TOOLBAR); | 229 ThemeService::COLOR_TOOLBAR); |
229 gtk_widget_modify_bg(padding_bg_, GTK_STATE_NORMAL, &color); | 230 gtk_widget_modify_bg(padding_bg_, GTK_STATE_NORMAL, &color); |
230 | 231 |
231 color = theme_service_->GetBorderColor(); | 232 color = theme_service_->GetBorderColor(); |
232 gtk_widget_modify_bg(top_border_, GTK_STATE_NORMAL, &color); | 233 gtk_widget_modify_bg(top_border_, GTK_STATE_NORMAL, &color); |
233 | 234 |
234 // When using a non-standard, non-gtk theme, we make the link color match | 235 // When using a non-standard, non-gtk theme, we make the link color match |
235 // the bookmark text color. Otherwise, standard link blue can look very | 236 // the bookmark text color. Otherwise, standard link blue can look very |
236 // bad for some dark themes. | 237 // bad for some dark themes. |
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
368 | 369 |
369 MessageLoop::current()->PostDelayedTask( | 370 MessageLoop::current()->PostDelayedTask( |
370 FROM_HERE, | 371 FROM_HERE, |
371 auto_close_factory_.NewRunnableMethod(&DownloadShelfGtk::Close), | 372 auto_close_factory_.NewRunnableMethod(&DownloadShelfGtk::Close), |
372 kAutoCloseDelayMs); | 373 kAutoCloseDelayMs); |
373 } | 374 } |
374 | 375 |
375 void DownloadShelfGtk::MouseEnteredShelf() { | 376 void DownloadShelfGtk::MouseEnteredShelf() { |
376 auto_close_factory_.RevokeAll(); | 377 auto_close_factory_.RevokeAll(); |
377 } | 378 } |
OLD | NEW |