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 |