| 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/gtk/browser_actions_toolbar_gtk.h" | 5 #include "chrome/browser/gtk/browser_actions_toolbar_gtk.h" |
| 6 | 6 |
| 7 #include <algorithm> |
| 7 #include <vector> | 8 #include <vector> |
| 8 | 9 |
| 9 #include "base/i18n/rtl.h" | 10 #include "base/i18n/rtl.h" |
| 10 #include "base/utf_string_conversions.h" | 11 #include "base/utf_string_conversions.h" |
| 11 #include "chrome/browser/extensions/extension_browser_event_router.h" | 12 #include "chrome/browser/extensions/extension_browser_event_router.h" |
| 12 #include "chrome/browser/extensions/extension_context_menu_model.h" | 13 #include "chrome/browser/extensions/extension_context_menu_model.h" |
| 13 #include "chrome/browser/extensions/extension_service.h" | 14 #include "chrome/browser/extensions/extension_service.h" |
| 14 #include "chrome/browser/extensions/image_loading_tracker.h" | 15 #include "chrome/browser/extensions/image_loading_tracker.h" |
| 15 #include "chrome/browser/gtk/cairo_cached_surface.h" | 16 #include "chrome/browser/gtk/cairo_cached_surface.h" |
| 16 #include "chrome/browser/gtk/extension_popup_gtk.h" | 17 #include "chrome/browser/gtk/extension_popup_gtk.h" |
| (...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 270 action->button_->SetPaintOverride(GTK_STATE_ACTIVE); | 271 action->button_->SetPaintOverride(GTK_STATE_ACTIVE); |
| 271 action->GetContextMenu()->Popup(widget, event); | 272 action->GetContextMenu()->Popup(widget, event); |
| 272 | 273 |
| 273 return TRUE; | 274 return TRUE; |
| 274 } | 275 } |
| 275 | 276 |
| 276 static void OnClicked(GtkWidget* widget, BrowserActionButton* action) { | 277 static void OnClicked(GtkWidget* widget, BrowserActionButton* action) { |
| 277 if (action->ShowPopup(false)) | 278 if (action->ShowPopup(false)) |
| 278 return; | 279 return; |
| 279 | 280 |
| 280 ExtensionBrowserEventRouter::GetInstance()->BrowserActionExecuted( | 281 ExtensionService* service = |
| 282 action->toolbar_->browser()->profile()->GetExtensionService(); |
| 283 service->browser_event_router()->BrowserActionExecuted( |
| 281 action->toolbar_->browser()->profile(), action->extension_->id(), | 284 action->toolbar_->browser()->profile(), action->extension_->id(), |
| 282 action->toolbar_->browser()); | 285 action->toolbar_->browser()); |
| 283 } | 286 } |
| 284 | 287 |
| 285 static gboolean OnExposeEvent(GtkWidget* widget, | 288 static gboolean OnExposeEvent(GtkWidget* widget, |
| 286 GdkEventExpose* event, | 289 GdkEventExpose* event, |
| 287 BrowserActionButton* button) { | 290 BrowserActionButton* button) { |
| 288 int tab_id = button->toolbar_->GetCurrentTabId(); | 291 int tab_id = button->toolbar_->GetCurrentTabId(); |
| 289 if (tab_id < 0) | 292 if (tab_id < 0) |
| 290 return FALSE; | 293 return FALSE; |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 361 drop_index_(-1), | 364 drop_index_(-1), |
| 362 resize_animation_(this), | 365 resize_animation_(this), |
| 363 desired_width_(0), | 366 desired_width_(0), |
| 364 start_width_(0), | 367 start_width_(0), |
| 365 method_factory_(this) { | 368 method_factory_(this) { |
| 366 ExtensionService* extension_service = profile_->GetExtensionService(); | 369 ExtensionService* extension_service = profile_->GetExtensionService(); |
| 367 // The |extension_service| can be NULL in Incognito. | 370 // The |extension_service| can be NULL in Incognito. |
| 368 if (!extension_service) | 371 if (!extension_service) |
| 369 return; | 372 return; |
| 370 | 373 |
| 371 overflow_button_.reset(new CustomDrawButton( | 374 overflow_button_.reset(new CustomDrawButton( |
| 372 theme_provider_, | 375 theme_provider_, |
| 373 IDR_BROWSER_ACTIONS_OVERFLOW, | 376 IDR_BROWSER_ACTIONS_OVERFLOW, |
| 374 IDR_BROWSER_ACTIONS_OVERFLOW_P, | 377 IDR_BROWSER_ACTIONS_OVERFLOW_P, |
| 375 IDR_BROWSER_ACTIONS_OVERFLOW_H, | 378 IDR_BROWSER_ACTIONS_OVERFLOW_H, |
| 376 0, | 379 0, |
| 377 gtk_arrow_new(GTK_ARROW_DOWN, GTK_SHADOW_NONE))); | 380 gtk_arrow_new(GTK_ARROW_DOWN, GTK_SHADOW_NONE))); |
| 378 | 381 |
| 379 GtkWidget* gripper = gtk_button_new(); | 382 GtkWidget* gripper = gtk_button_new(); |
| 380 gtk_widget_set_size_request(gripper, kResizeGripperWidth, -1); | 383 gtk_widget_set_size_request(gripper, kResizeGripperWidth, -1); |
| 381 GTK_WIDGET_UNSET_FLAGS(gripper, GTK_CAN_FOCUS); | 384 GTK_WIDGET_UNSET_FLAGS(gripper, GTK_CAN_FOCUS); |
| (...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 673 NOTREACHED() << "No current tab."; | 676 NOTREACHED() << "No current tab."; |
| 674 return; | 677 return; |
| 675 } | 678 } |
| 676 | 679 |
| 677 if (browser_action->HasPopup(tab_id)) { | 680 if (browser_action->HasPopup(tab_id)) { |
| 678 ExtensionPopupGtk::Show( | 681 ExtensionPopupGtk::Show( |
| 679 browser_action->GetPopupUrl(tab_id), browser(), | 682 browser_action->GetPopupUrl(tab_id), browser(), |
| 680 chevron(), | 683 chevron(), |
| 681 false); | 684 false); |
| 682 } else { | 685 } else { |
| 683 ExtensionBrowserEventRouter::GetInstance()->BrowserActionExecuted( | 686 ExtensionService* service = browser()->profile()->GetExtensionService(); |
| 687 service->browser_event_router()->BrowserActionExecuted( |
| 684 browser()->profile(), extension->id(), browser()); | 688 browser()->profile(), extension->id(), browser()); |
| 685 } | 689 } |
| 686 } | 690 } |
| 687 | 691 |
| 688 void BrowserActionsToolbarGtk::StoppedShowing() { | 692 void BrowserActionsToolbarGtk::StoppedShowing() { |
| 689 overflow_button_->UnsetPaintOverride(); | 693 overflow_button_->UnsetPaintOverride(); |
| 690 } | 694 } |
| 691 | 695 |
| 692 bool BrowserActionsToolbarGtk::AlwaysShowIconForCmd(int command_id) const { | 696 bool BrowserActionsToolbarGtk::AlwaysShowIconForCmd(int command_id) const { |
| 693 return true; | 697 return true; |
| (...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 936 } | 940 } |
| 937 | 941 |
| 938 it->second.get()->GetContextMenu()->PopupAsContext(event->time); | 942 it->second.get()->GetContextMenu()->PopupAsContext(event->time); |
| 939 return TRUE; | 943 return TRUE; |
| 940 } | 944 } |
| 941 | 945 |
| 942 void BrowserActionsToolbarGtk::OnButtonShowOrHide(GtkWidget* sender) { | 946 void BrowserActionsToolbarGtk::OnButtonShowOrHide(GtkWidget* sender) { |
| 943 if (!resize_animation_.is_animating()) | 947 if (!resize_animation_.is_animating()) |
| 944 UpdateChevronVisibility(); | 948 UpdateChevronVisibility(); |
| 945 } | 949 } |
| OLD | NEW |