| Index: chrome/browser/ui/gtk/back_forward_button_gtk.cc
|
| diff --git a/chrome/browser/ui/gtk/back_forward_button_gtk.cc b/chrome/browser/ui/gtk/back_forward_button_gtk.cc
|
| deleted file mode 100644
|
| index 278e0482ecc5fe38cd2db6e9a38ca936fe06097f..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/ui/gtk/back_forward_button_gtk.cc
|
| +++ /dev/null
|
| @@ -1,135 +0,0 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "chrome/browser/ui/gtk/back_forward_button_gtk.h"
|
| -
|
| -#include <gtk/gtk.h>
|
| -
|
| -#include "base/bind.h"
|
| -#include "base/message_loop/message_loop.h"
|
| -#include "chrome/app/chrome_command_ids.h"
|
| -#include "chrome/browser/profiles/profile.h"
|
| -#include "chrome/browser/ui/browser.h"
|
| -#include "chrome/browser/ui/browser_commands.h"
|
| -#include "chrome/browser/ui/gtk/event_utils.h"
|
| -#include "chrome/browser/ui/gtk/gtk_theme_service.h"
|
| -#include "chrome/browser/ui/gtk/gtk_util.h"
|
| -#include "chrome/browser/ui/gtk/menu_gtk.h"
|
| -#include "chrome/browser/ui/toolbar/back_forward_menu_model.h"
|
| -#include "grit/generated_resources.h"
|
| -#include "grit/theme_resources.h"
|
| -#include "ui/base/l10n/l10n_util.h"
|
| -
|
| -// The time in milliseconds between when the user clicks and the menu appears.
|
| -static const int kMenuTimerDelay = 500;
|
| -
|
| -BackForwardButtonGtk::BackForwardButtonGtk(Browser* browser, bool is_forward)
|
| - : browser_(browser),
|
| - is_forward_(is_forward),
|
| - weak_factory_(this) {
|
| - int normal, pushed, hover, disabled, tooltip;
|
| - const char* stock;
|
| - if (is_forward) {
|
| - normal = IDR_FORWARD;
|
| - pushed = IDR_FORWARD_P;
|
| - hover = IDR_FORWARD_H;
|
| - disabled = IDR_FORWARD_D;
|
| - tooltip = IDS_TOOLTIP_FORWARD;
|
| - stock = GTK_STOCK_GO_FORWARD;
|
| - } else {
|
| - normal = IDR_BACK;
|
| - pushed = IDR_BACK_P;
|
| - hover = IDR_BACK_H;
|
| - disabled = IDR_BACK_D;
|
| - tooltip = IDS_TOOLTIP_BACK;
|
| - stock = GTK_STOCK_GO_BACK;
|
| - }
|
| - button_.reset(new CustomDrawButton(
|
| - GtkThemeService::GetFrom(browser_->profile()),
|
| - normal, pushed, hover, disabled, stock, GTK_ICON_SIZE_SMALL_TOOLBAR));
|
| - gtk_widget_set_tooltip_text(widget(),
|
| - l10n_util::GetStringUTF8(tooltip).c_str());
|
| - menu_model_.reset(new BackForwardMenuModel(browser, is_forward ?
|
| - BackForwardMenuModel::FORWARD_MENU :
|
| - BackForwardMenuModel::BACKWARD_MENU));
|
| -
|
| - g_signal_connect(widget(), "clicked",
|
| - G_CALLBACK(OnClickThunk), this);
|
| - g_signal_connect(widget(), "button-press-event",
|
| - G_CALLBACK(OnButtonPressThunk), this);
|
| - gtk_widget_add_events(widget(), GDK_POINTER_MOTION_MASK);
|
| - g_signal_connect(widget(), "motion-notify-event",
|
| - G_CALLBACK(OnMouseMoveThunk), this);
|
| -
|
| - // Popup the menu as left-aligned relative to this widget rather than the
|
| - // default of right aligned.
|
| - g_object_set_data(G_OBJECT(widget()), "left-align-popup",
|
| - reinterpret_cast<void*>(true));
|
| -
|
| - gtk_util::SetButtonTriggersNavigation(widget());
|
| -}
|
| -
|
| -BackForwardButtonGtk::~BackForwardButtonGtk() {
|
| -}
|
| -
|
| -void BackForwardButtonGtk::StoppedShowing() {
|
| - button_->UnsetPaintOverride();
|
| -}
|
| -
|
| -bool BackForwardButtonGtk::AlwaysShowIconForCmd(int command_id) const {
|
| - return true;
|
| -}
|
| -
|
| -void BackForwardButtonGtk::ShowBackForwardMenu(int button, guint32 event_time) {
|
| - menu_.reset(new MenuGtk(this, menu_model_.get()));
|
| - button_->SetPaintOverride(GTK_STATE_ACTIVE);
|
| - menu_->PopupForWidget(widget(), button, event_time);
|
| -}
|
| -
|
| -void BackForwardButtonGtk::OnClick(GtkWidget* widget) {
|
| - weak_factory_.InvalidateWeakPtrs();
|
| -
|
| - chrome::ExecuteCommandWithDisposition(
|
| - browser_,
|
| - is_forward_ ? IDC_FORWARD : IDC_BACK,
|
| - event_utils::DispositionForCurrentButtonPressEvent());
|
| -}
|
| -
|
| -gboolean BackForwardButtonGtk::OnButtonPress(GtkWidget* widget,
|
| - GdkEventButton* event) {
|
| - if (event->button == 3)
|
| - ShowBackForwardMenu(event->button, event->time);
|
| -
|
| - if (event->button != 1)
|
| - return FALSE;
|
| -
|
| - y_position_of_last_press_ = static_cast<int>(event->y);
|
| - base::MessageLoop::current()->PostDelayedTask(
|
| - FROM_HERE,
|
| - base::Bind(&BackForwardButtonGtk::ShowBackForwardMenu,
|
| - weak_factory_.GetWeakPtr(),
|
| - event->button,
|
| - event->time),
|
| - base::TimeDelta::FromMilliseconds(kMenuTimerDelay));
|
| - return FALSE;
|
| -}
|
| -
|
| -gboolean BackForwardButtonGtk::OnMouseMove(GtkWidget* widget,
|
| - GdkEventMotion* event) {
|
| - // If we aren't waiting to show the back forward menu, do nothing.
|
| - if (!weak_factory_.HasWeakPtrs())
|
| - return FALSE;
|
| -
|
| - // We only count moves about a certain threshold.
|
| - GtkSettings* settings = gtk_widget_get_settings(widget);
|
| - int drag_min_distance;
|
| - g_object_get(settings, "gtk-dnd-drag-threshold", &drag_min_distance, NULL);
|
| - if (event->y - y_position_of_last_press_ < drag_min_distance)
|
| - return FALSE;
|
| -
|
| - // We will show the menu now. Cancel the delayed event.
|
| - weak_factory_.InvalidateWeakPtrs();
|
| - ShowBackForwardMenu(/* button */ 1, event->time);
|
| - return FALSE;
|
| -}
|
|
|