OLD | NEW |
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 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 <gtk/gtk.h> | 7 #include <gtk/gtk.h> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "app/gfx/canvas_paint.h" | 10 #include "app/gfx/canvas_paint.h" |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
108 UpdateState(); | 108 UpdateState(); |
109 } | 109 } |
110 | 110 |
111 // Updates the button based on the latest state from the associated | 111 // Updates the button based on the latest state from the associated |
112 // browser action. | 112 // browser action. |
113 void UpdateState() { | 113 void UpdateState() { |
114 int tab_id = toolbar_->GetCurrentTabId(); | 114 int tab_id = toolbar_->GetCurrentTabId(); |
115 if (tab_id < 0) | 115 if (tab_id < 0) |
116 return; | 116 return; |
117 | 117 |
118 gtk_widget_set_tooltip_text(button_.get(), | 118 std::string tooltip = extension_->browser_action()->GetTitle(tab_id); |
119 extension_->browser_action()->GetTitle(tab_id).c_str()); | 119 if (tooltip.empty()) |
| 120 gtk_widget_set_has_tooltip(button_.get(), FALSE); |
| 121 else |
| 122 gtk_widget_set_tooltip_text(button_.get(), tooltip.c_str()); |
120 | 123 |
121 SkBitmap image = extension_->browser_action()->GetIcon(tab_id); | 124 SkBitmap image = extension_->browser_action()->GetIcon(tab_id); |
122 if (!image.isNull()) { | 125 if (!image.isNull()) { |
123 GdkPixbuf* previous_gdk_icon = tab_specific_icon_; | 126 GdkPixbuf* previous_gdk_icon = tab_specific_icon_; |
124 tab_specific_icon_ = gfx::GdkPixbufFromSkBitmap(&image); | 127 tab_specific_icon_ = gfx::GdkPixbufFromSkBitmap(&image); |
125 SetImage(tab_specific_icon_); | 128 SetImage(tab_specific_icon_); |
126 if (previous_gdk_icon) | 129 if (previous_gdk_icon) |
127 g_object_unref(previous_gdk_icon); | 130 g_object_unref(previous_gdk_icon); |
128 } else if (default_icon_) { | 131 } else if (default_icon_) { |
129 SetImage(default_icon_); | 132 SetImage(default_icon_); |
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
273 if (extension_button_map_.erase(extension->id())) | 276 if (extension_button_map_.erase(extension->id())) |
274 UpdateVisibility(); | 277 UpdateVisibility(); |
275 } | 278 } |
276 | 279 |
277 void BrowserActionsToolbarGtk::UpdateVisibility() { | 280 void BrowserActionsToolbarGtk::UpdateVisibility() { |
278 if (button_count() == 0) | 281 if (button_count() == 0) |
279 gtk_widget_hide(widget()); | 282 gtk_widget_hide(widget()); |
280 else | 283 else |
281 gtk_widget_show(widget()); | 284 gtk_widget_show(widget()); |
282 } | 285 } |
OLD | NEW |