| 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/browser_toolbar_gtk.h" | 5 #include "chrome/browser/ui/gtk/browser_toolbar_gtk.h" |
| 6 | 6 |
| 7 #include <X11/XF86keysym.h> | 7 #include <X11/XF86keysym.h> |
| 8 #include <gdk/gdkkeysyms.h> | 8 #include <gdk/gdkkeysyms.h> |
| 9 #include <gtk/gtk.h> | 9 #include <gtk/gtk.h> |
| 10 | 10 |
| (...skipping 18 matching lines...) Expand all Loading... |
| 29 #include "chrome/browser/ui/gtk/gtk_chrome_button.h" | 29 #include "chrome/browser/ui/gtk/gtk_chrome_button.h" |
| 30 #include "chrome/browser/ui/gtk/gtk_theme_service.h" | 30 #include "chrome/browser/ui/gtk/gtk_theme_service.h" |
| 31 #include "chrome/browser/ui/gtk/gtk_util.h" | 31 #include "chrome/browser/ui/gtk/gtk_util.h" |
| 32 #include "chrome/browser/ui/gtk/location_bar_view_gtk.h" | 32 #include "chrome/browser/ui/gtk/location_bar_view_gtk.h" |
| 33 #include "chrome/browser/ui/gtk/reload_button_gtk.h" | 33 #include "chrome/browser/ui/gtk/reload_button_gtk.h" |
| 34 #include "chrome/browser/ui/gtk/rounded_window.h" | 34 #include "chrome/browser/ui/gtk/rounded_window.h" |
| 35 #include "chrome/browser/ui/gtk/tabs/tab_strip_gtk.h" | 35 #include "chrome/browser/ui/gtk/tabs/tab_strip_gtk.h" |
| 36 #include "chrome/browser/ui/gtk/view_id_util.h" | 36 #include "chrome/browser/ui/gtk/view_id_util.h" |
| 37 #include "chrome/browser/ui/toolbar/encoding_menu_controller.h" | 37 #include "chrome/browser/ui/toolbar/encoding_menu_controller.h" |
| 38 #include "chrome/browser/upgrade_detector.h" | 38 #include "chrome/browser/upgrade_detector.h" |
| 39 #include "chrome/common/chrome_notification_types.h" |
| 39 #include "chrome/common/pref_names.h" | 40 #include "chrome/common/pref_names.h" |
| 40 #include "chrome/common/url_constants.h" | 41 #include "chrome/common/url_constants.h" |
| 41 #include "content/browser/tab_contents/tab_contents.h" | 42 #include "content/browser/tab_contents/tab_contents.h" |
| 42 #include "content/browser/user_metrics.h" | 43 #include "content/browser/user_metrics.h" |
| 43 #include "content/common/notification_details.h" | 44 #include "content/common/notification_details.h" |
| 44 #include "content/common/notification_service.h" | 45 #include "content/common/notification_service.h" |
| 45 #include "content/common/notification_type.h" | |
| 46 #include "grit/chromium_strings.h" | 46 #include "grit/chromium_strings.h" |
| 47 #include "grit/generated_resources.h" | 47 #include "grit/generated_resources.h" |
| 48 #include "grit/theme_resources.h" | 48 #include "grit/theme_resources.h" |
| 49 #include "grit/theme_resources_standard.h" | 49 #include "grit/theme_resources_standard.h" |
| 50 #include "ui/base/dragdrop/gtk_dnd_util.h" | 50 #include "ui/base/dragdrop/gtk_dnd_util.h" |
| 51 #include "ui/base/l10n/l10n_util.h" | 51 #include "ui/base/l10n/l10n_util.h" |
| 52 #include "ui/base/models/accelerator_gtk.h" | 52 #include "ui/base/models/accelerator_gtk.h" |
| 53 #include "ui/gfx/canvas_skia_paint.h" | 53 #include "ui/gfx/canvas_skia_paint.h" |
| 54 #include "ui/gfx/gtk_util.h" | 54 #include "ui/gfx/gtk_util.h" |
| 55 #include "ui/gfx/skbitmap_operations.h" | 55 #include "ui/gfx/skbitmap_operations.h" |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 90 wrench_menu_model_(this, browser), | 90 wrench_menu_model_(this, browser), |
| 91 browser_(browser), | 91 browser_(browser), |
| 92 window_(window), | 92 window_(window), |
| 93 profile_(NULL) { | 93 profile_(NULL) { |
| 94 browser_->command_updater()->AddCommandObserver(IDC_BACK, this); | 94 browser_->command_updater()->AddCommandObserver(IDC_BACK, this); |
| 95 browser_->command_updater()->AddCommandObserver(IDC_FORWARD, this); | 95 browser_->command_updater()->AddCommandObserver(IDC_FORWARD, this); |
| 96 browser_->command_updater()->AddCommandObserver(IDC_HOME, this); | 96 browser_->command_updater()->AddCommandObserver(IDC_HOME, this); |
| 97 browser_->command_updater()->AddCommandObserver(IDC_BOOKMARK_PAGE, this); | 97 browser_->command_updater()->AddCommandObserver(IDC_BOOKMARK_PAGE, this); |
| 98 | 98 |
| 99 registrar_.Add(this, | 99 registrar_.Add(this, |
| 100 NotificationType::BROWSER_THEME_CHANGED, | 100 chrome::NOTIFICATION_BROWSER_THEME_CHANGED, |
| 101 NotificationService::AllSources()); | 101 NotificationService::AllSources()); |
| 102 registrar_.Add(this, | 102 registrar_.Add(this, |
| 103 NotificationType::UPGRADE_RECOMMENDED, | 103 chrome::NOTIFICATION_UPGRADE_RECOMMENDED, |
| 104 NotificationService::AllSources()); | 104 NotificationService::AllSources()); |
| 105 } | 105 } |
| 106 | 106 |
| 107 BrowserToolbarGtk::~BrowserToolbarGtk() { | 107 BrowserToolbarGtk::~BrowserToolbarGtk() { |
| 108 browser_->command_updater()->RemoveCommandObserver(IDC_BACK, this); | 108 browser_->command_updater()->RemoveCommandObserver(IDC_BACK, this); |
| 109 browser_->command_updater()->RemoveCommandObserver(IDC_FORWARD, this); | 109 browser_->command_updater()->RemoveCommandObserver(IDC_FORWARD, this); |
| 110 browser_->command_updater()->RemoveCommandObserver(IDC_HOME, this); | 110 browser_->command_updater()->RemoveCommandObserver(IDC_HOME, this); |
| 111 browser_->command_updater()->RemoveCommandObserver(IDC_BOOKMARK_PAGE, this); | 111 browser_->command_updater()->RemoveCommandObserver(IDC_BOOKMARK_PAGE, this); |
| 112 | 112 |
| 113 offscreen_entry_.Destroy(); | 113 offscreen_entry_.Destroy(); |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 215 | 215 |
| 216 // Put the wrench button in a box so that we can paint the update notification | 216 // Put the wrench button in a box so that we can paint the update notification |
| 217 // over it. | 217 // over it. |
| 218 GtkWidget* wrench_box = gtk_alignment_new(0, 0, 1, 1); | 218 GtkWidget* wrench_box = gtk_alignment_new(0, 0, 1, 1); |
| 219 g_signal_connect_after(wrench_box, "expose-event", | 219 g_signal_connect_after(wrench_box, "expose-event", |
| 220 G_CALLBACK(OnWrenchMenuButtonExposeThunk), this); | 220 G_CALLBACK(OnWrenchMenuButtonExposeThunk), this); |
| 221 gtk_container_add(GTK_CONTAINER(wrench_box), wrench_button); | 221 gtk_container_add(GTK_CONTAINER(wrench_box), wrench_button); |
| 222 gtk_box_pack_start(GTK_BOX(toolbar_), wrench_box, FALSE, FALSE, 4); | 222 gtk_box_pack_start(GTK_BOX(toolbar_), wrench_box, FALSE, FALSE, 4); |
| 223 | 223 |
| 224 wrench_menu_.reset(new MenuGtk(this, &wrench_menu_model_)); | 224 wrench_menu_.reset(new MenuGtk(this, &wrench_menu_model_)); |
| 225 registrar_.Add(this, NotificationType::ZOOM_LEVEL_CHANGED, | 225 registrar_.Add(this, content::NOTIFICATION_ZOOM_LEVEL_CHANGED, |
| 226 Source<HostZoomMap>(browser_->profile()->GetHostZoomMap())); | 226 Source<HostZoomMap>(browser_->profile()->GetHostZoomMap())); |
| 227 | 227 |
| 228 if (ShouldOnlyShowLocation()) { | 228 if (ShouldOnlyShowLocation()) { |
| 229 gtk_widget_show(event_box_); | 229 gtk_widget_show(event_box_); |
| 230 gtk_widget_show(alignment_); | 230 gtk_widget_show(alignment_); |
| 231 gtk_widget_show(toolbar_); | 231 gtk_widget_show(toolbar_); |
| 232 gtk_widget_show_all(location_hbox_); | 232 gtk_widget_show_all(location_hbox_); |
| 233 gtk_widget_hide(reload_->widget()); | 233 gtk_widget_hide(reload_->widget()); |
| 234 } else { | 234 } else { |
| 235 gtk_widget_show_all(event_box_); | 235 gtk_widget_show_all(event_box_); |
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 339 ui::Accelerator* accelerator) { | 339 ui::Accelerator* accelerator) { |
| 340 const ui::AcceleratorGtk* accelerator_gtk = | 340 const ui::AcceleratorGtk* accelerator_gtk = |
| 341 AcceleratorsGtk::GetInstance()->GetPrimaryAcceleratorForCommand(id); | 341 AcceleratorsGtk::GetInstance()->GetPrimaryAcceleratorForCommand(id); |
| 342 if (accelerator_gtk) | 342 if (accelerator_gtk) |
| 343 *accelerator = *accelerator_gtk; | 343 *accelerator = *accelerator_gtk; |
| 344 return !!accelerator_gtk; | 344 return !!accelerator_gtk; |
| 345 } | 345 } |
| 346 | 346 |
| 347 // NotificationObserver -------------------------------------------------------- | 347 // NotificationObserver -------------------------------------------------------- |
| 348 | 348 |
| 349 void BrowserToolbarGtk::Observe(NotificationType type, | 349 void BrowserToolbarGtk::Observe(int type, |
| 350 const NotificationSource& source, | 350 const NotificationSource& source, |
| 351 const NotificationDetails& details) { | 351 const NotificationDetails& details) { |
| 352 if (type == NotificationType::PREF_CHANGED) { | 352 if (type == chrome::NOTIFICATION_PREF_CHANGED) { |
| 353 NotifyPrefChanged(Details<std::string>(details).ptr()); | 353 NotifyPrefChanged(Details<std::string>(details).ptr()); |
| 354 } else if (type == NotificationType::BROWSER_THEME_CHANGED) { | 354 } else if (type == chrome::NOTIFICATION_BROWSER_THEME_CHANGED) { |
| 355 // Update the spacing around the menu buttons | 355 // Update the spacing around the menu buttons |
| 356 bool use_gtk = theme_service_->UsingNativeTheme(); | 356 bool use_gtk = theme_service_->UsingNativeTheme(); |
| 357 int border = use_gtk ? 0 : 2; | 357 int border = use_gtk ? 0 : 2; |
| 358 gtk_container_set_border_width( | 358 gtk_container_set_border_width( |
| 359 GTK_CONTAINER(wrench_menu_button_->widget()), border); | 359 GTK_CONTAINER(wrench_menu_button_->widget()), border); |
| 360 | 360 |
| 361 // Force the height of the toolbar so we get the right amount of padding | 361 // Force the height of the toolbar so we get the right amount of padding |
| 362 // above and below the location bar. We always force the size of the widgets | 362 // above and below the location bar. We always force the size of the widgets |
| 363 // to either side of the location box, but we only force the location box | 363 // to either side of the location box, but we only force the location box |
| 364 // size in chrome-theme mode because that's the only time we try to control | 364 // size in chrome-theme mode because that's the only time we try to control |
| (...skipping 12 matching lines...) Expand all Loading... |
| 377 | 377 |
| 378 if (use_gtk) { | 378 if (use_gtk) { |
| 379 // We need to manually update the icon if we are in GTK mode. (Note that | 379 // We need to manually update the icon if we are in GTK mode. (Note that |
| 380 // we set the initial value in Init()). | 380 // we set the initial value in Init()). |
| 381 gtk_image_set_from_pixbuf( | 381 gtk_image_set_from_pixbuf( |
| 382 GTK_IMAGE(wrench_menu_image_), | 382 GTK_IMAGE(wrench_menu_image_), |
| 383 theme_service_->GetRTLEnabledPixbufNamed(IDR_TOOLS)); | 383 theme_service_->GetRTLEnabledPixbufNamed(IDR_TOOLS)); |
| 384 } | 384 } |
| 385 | 385 |
| 386 UpdateRoundedness(); | 386 UpdateRoundedness(); |
| 387 } else if (type == NotificationType::UPGRADE_RECOMMENDED) { | 387 } else if (type == chrome::NOTIFICATION_UPGRADE_RECOMMENDED) { |
| 388 // Redraw the wrench menu to update the badge. | 388 // Redraw the wrench menu to update the badge. |
| 389 gtk_widget_queue_draw(wrench_menu_button_->widget()); | 389 gtk_widget_queue_draw(wrench_menu_button_->widget()); |
| 390 } else if (type == NotificationType::ZOOM_LEVEL_CHANGED) { | 390 } else if (type == content::NOTIFICATION_ZOOM_LEVEL_CHANGED) { |
| 391 // If our zoom level changed, we need to tell the menu to update its state, | 391 // If our zoom level changed, we need to tell the menu to update its state, |
| 392 // since the menu could still be open. | 392 // since the menu could still be open. |
| 393 wrench_menu_->UpdateMenu(); | 393 wrench_menu_->UpdateMenu(); |
| 394 } else { | 394 } else { |
| 395 NOTREACHED(); | 395 NOTREACHED(); |
| 396 } | 396 } |
| 397 } | 397 } |
| 398 | 398 |
| 399 // BrowserToolbarGtk, public --------------------------------------------------- | 399 // BrowserToolbarGtk, public --------------------------------------------------- |
| 400 | 400 |
| (...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 647 int x_offset = base::i18n::IsRTL() ? 0 : | 647 int x_offset = base::i18n::IsRTL() ? 0 : |
| 648 sender->allocation.width - badge->width(); | 648 sender->allocation.width - badge->width(); |
| 649 int y_offset = 0; | 649 int y_offset = 0; |
| 650 canvas.DrawBitmapInt( | 650 canvas.DrawBitmapInt( |
| 651 *badge, | 651 *badge, |
| 652 sender->allocation.x + x_offset, | 652 sender->allocation.x + x_offset, |
| 653 sender->allocation.y + y_offset); | 653 sender->allocation.y + y_offset); |
| 654 | 654 |
| 655 return FALSE; | 655 return FALSE; |
| 656 } | 656 } |
| OLD | NEW |