| 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/reload_button_gtk.h" | 5 #include "chrome/browser/ui/gtk/reload_button_gtk.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "chrome/app/chrome_command_ids.h" | 10 #include "chrome/app/chrome_command_ids.h" |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 42 testing_mouse_hovered_(false), | 42 testing_mouse_hovered_(false), |
| 43 testing_reload_count_(0) { | 43 testing_reload_count_(0) { |
| 44 gtk_widget_set_size_request(widget(), reload_.Width(), reload_.Height()); | 44 gtk_widget_set_size_request(widget(), reload_.Width(), reload_.Height()); |
| 45 | 45 |
| 46 gtk_widget_set_app_paintable(widget(), TRUE); | 46 gtk_widget_set_app_paintable(widget(), TRUE); |
| 47 | 47 |
| 48 g_signal_connect(widget(), "clicked", G_CALLBACK(OnClickedThunk), this); | 48 g_signal_connect(widget(), "clicked", G_CALLBACK(OnClickedThunk), this); |
| 49 g_signal_connect(widget(), "expose-event", G_CALLBACK(OnExposeThunk), this); | 49 g_signal_connect(widget(), "expose-event", G_CALLBACK(OnExposeThunk), this); |
| 50 g_signal_connect(widget(), "leave-notify-event", | 50 g_signal_connect(widget(), "leave-notify-event", |
| 51 G_CALLBACK(OnLeaveNotifyThunk), this); | 51 G_CALLBACK(OnLeaveNotifyThunk), this); |
| 52 GTK_WIDGET_UNSET_FLAGS(widget(), GTK_CAN_FOCUS); | 52 gtk_widget_set_can_focus(widget(), FALSE); |
| 53 | 53 |
| 54 gtk_widget_set_has_tooltip(widget(), TRUE); | 54 gtk_widget_set_has_tooltip(widget(), TRUE); |
| 55 g_signal_connect(widget(), "query-tooltip", G_CALLBACK(OnQueryTooltipThunk), | 55 g_signal_connect(widget(), "query-tooltip", G_CALLBACK(OnQueryTooltipThunk), |
| 56 this); | 56 this); |
| 57 | 57 |
| 58 hover_controller_.Init(widget()); | 58 hover_controller_.Init(widget()); |
| 59 gtk_util::SetButtonTriggersNavigation(widget()); | 59 gtk_util::SetButtonTriggersNavigation(widget()); |
| 60 | 60 |
| 61 if (theme_service_) { | 61 if (theme_service_) { |
| 62 theme_service_->InitThemesFor(this); | 62 theme_service_->InitThemesFor(this); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 76 ReloadButtonGtk::~ReloadButtonGtk() { | 76 ReloadButtonGtk::~ReloadButtonGtk() { |
| 77 widget_.Destroy(); | 77 widget_.Destroy(); |
| 78 } | 78 } |
| 79 | 79 |
| 80 void ReloadButtonGtk::ChangeMode(Mode mode, bool force) { | 80 void ReloadButtonGtk::ChangeMode(Mode mode, bool force) { |
| 81 intended_mode_ = mode; | 81 intended_mode_ = mode; |
| 82 | 82 |
| 83 // If the change is forced, or the user isn't hovering the icon, or it's safe | 83 // If the change is forced, or the user isn't hovering the icon, or it's safe |
| 84 // to change it to the other image type, make the change immediately; | 84 // to change it to the other image type, make the change immediately; |
| 85 // otherwise we'll let it happen later. | 85 // otherwise we'll let it happen later. |
| 86 if (force || ((GTK_WIDGET_STATE(widget()) == GTK_STATE_NORMAL) && | 86 if (force || ((gtk_widget_get_state(widget()) == GTK_STATE_NORMAL) && |
| 87 !testing_mouse_hovered_) || ((mode == MODE_STOP) ? | 87 !testing_mouse_hovered_) || ((mode == MODE_STOP) ? |
| 88 !double_click_timer_.IsRunning() : (visible_mode_ != MODE_STOP))) { | 88 !double_click_timer_.IsRunning() : (visible_mode_ != MODE_STOP))) { |
| 89 double_click_timer_.Stop(); | 89 double_click_timer_.Stop(); |
| 90 stop_to_reload_timer_.Stop(); | 90 stop_to_reload_timer_.Stop(); |
| 91 visible_mode_ = mode; | 91 visible_mode_ = mode; |
| 92 | 92 |
| 93 stop_.set_paint_override(-1); | 93 stop_.set_paint_override(-1); |
| 94 gtk_chrome_button_unset_paint_state(GTK_CHROME_BUTTON(widget_.get())); | 94 gtk_chrome_button_unset_paint_state(GTK_CHROME_BUTTON(widget_.get())); |
| 95 | 95 |
| 96 UpdateThemeButtons(); | 96 UpdateThemeButtons(); |
| (...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 224 | 224 |
| 225 void ReloadButtonGtk::UpdateThemeButtons() { | 225 void ReloadButtonGtk::UpdateThemeButtons() { |
| 226 bool use_gtk = theme_service_ && theme_service_->UsingNativeTheme(); | 226 bool use_gtk = theme_service_ && theme_service_->UsingNativeTheme(); |
| 227 | 227 |
| 228 if (use_gtk) { | 228 if (use_gtk) { |
| 229 gtk_widget_ensure_style(widget()); | 229 gtk_widget_ensure_style(widget()); |
| 230 GtkIconSet* icon_set = gtk_style_lookup_icon_set( | 230 GtkIconSet* icon_set = gtk_style_lookup_icon_set( |
| 231 widget()->style, | 231 widget()->style, |
| 232 (visible_mode_ == MODE_RELOAD) ? GTK_STOCK_REFRESH : GTK_STOCK_STOP); | 232 (visible_mode_ == MODE_RELOAD) ? GTK_STOCK_REFRESH : GTK_STOCK_STOP); |
| 233 if (icon_set) { | 233 if (icon_set) { |
| 234 GtkStateType state = static_cast<GtkStateType>( | 234 GtkStateType state = gtk_widget_get_state(widget()); |
| 235 GTK_WIDGET_STATE(widget())); | |
| 236 if (visible_mode_ == MODE_STOP && stop_.paint_override() != -1) | 235 if (visible_mode_ == MODE_STOP && stop_.paint_override() != -1) |
| 237 state = static_cast<GtkStateType>(stop_.paint_override()); | 236 state = static_cast<GtkStateType>(stop_.paint_override()); |
| 238 | 237 |
| 239 GdkPixbuf* pixbuf = gtk_icon_set_render_icon( | 238 GdkPixbuf* pixbuf = gtk_icon_set_render_icon( |
| 240 icon_set, | 239 icon_set, |
| 241 widget()->style, | 240 widget()->style, |
| 242 gtk_widget_get_direction(widget()), | 241 gtk_widget_get_direction(widget()), |
| 243 state, | 242 state, |
| 244 GTK_ICON_SIZE_SMALL_TOOLBAR, | 243 GTK_ICON_SIZE_SMALL_TOOLBAR, |
| 245 widget(), | 244 widget(), |
| (...skipping 25 matching lines...) Expand all Loading... |
| 271 gtk_chrome_button_set_use_gtk_rendering(GTK_CHROME_BUTTON(widget()), use_gtk); | 270 gtk_chrome_button_set_use_gtk_rendering(GTK_CHROME_BUTTON(widget()), use_gtk); |
| 272 } | 271 } |
| 273 | 272 |
| 274 void ReloadButtonGtk::OnDoubleClickTimer() { | 273 void ReloadButtonGtk::OnDoubleClickTimer() { |
| 275 ChangeMode(intended_mode_, false); | 274 ChangeMode(intended_mode_, false); |
| 276 } | 275 } |
| 277 | 276 |
| 278 void ReloadButtonGtk::OnStopToReloadTimer() { | 277 void ReloadButtonGtk::OnStopToReloadTimer() { |
| 279 ChangeMode(intended_mode_, true); | 278 ChangeMode(intended_mode_, true); |
| 280 } | 279 } |
| OLD | NEW |