Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(811)

Unified Diff: chrome/browser/gtk/go_button_gtk.cc

Issue 67064: Implement tooltips for the Go/Stop button in Linux. (Closed)
Patch Set: Add a NULL check on location_bar_ for tests. Created 11 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/gtk/go_button_gtk.h ('k') | chrome/browser/gtk/go_button_gtk_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/gtk/go_button_gtk.cc
diff --git a/chrome/browser/gtk/go_button_gtk.cc b/chrome/browser/gtk/go_button_gtk.cc
index 2f32e64d740f7be69815dd0d2e287c4eacb8ecc3..21e3536b0bd8fdc638dbcbfc2f9cd506b5fca3c2 100644
--- a/chrome/browser/gtk/go_button_gtk.cc
+++ b/chrome/browser/gtk/go_button_gtk.cc
@@ -7,10 +7,14 @@
#include "base/message_loop.h"
#include "chrome/app/chrome_dll_resource.h"
#include "chrome/browser/browser.h"
+#include "chrome/browser/gtk/location_bar_view_gtk.h"
+#include "chrome/common/l10n_util.h"
+#include "grit/generated_resources.h"
#include "grit/theme_resources.h"
-GoButtonGtk::GoButtonGtk(Browser* browser)
- : browser_(browser),
+GoButtonGtk::GoButtonGtk(LocationBarViewGtk* location_bar, Browser* browser)
+ : location_bar_(location_bar),
+ browser_(browser),
button_delay_(0),
stop_timer_(this),
intended_mode_(MODE_GO),
@@ -37,8 +41,7 @@ GoButtonGtk::GoButtonGtk(Browser* browser)
G_CALLBACK(OnClicked), this);
GTK_WIDGET_UNSET_FLAGS(widget_.get(), GTK_CAN_FOCUS);
- // TODO(willchan): Implement tooltips.
- gtk_widget_set_tooltip_text(widget_.get(), "Implement toggleable tooltips");
+ SetTooltip();
}
GoButtonGtk::~GoButtonGtk() {
@@ -48,10 +51,11 @@ GoButtonGtk::~GoButtonGtk() {
void GoButtonGtk::ChangeMode(Mode mode) {
if (mode != visible_mode_) {
gtk_widget_queue_draw(widget_.get());
+ visible_mode_ = mode;
+ SetTooltip();
}
stop_timer_.RevokeAll();
intended_mode_ = mode;
- visible_mode_ = mode;
}
void GoButtonGtk::ScheduleChangeMode(Mode mode) {
@@ -154,3 +158,28 @@ gboolean GoButtonGtk::OnClicked(GtkButton* widget, GoButtonGtk* button) {
return TRUE;
}
+
+void GoButtonGtk::SetTooltip() {
+ if (visible_mode_ == MODE_GO) {
+ // |location_bar_| can be NULL in tests.
+ std::wstring current_text(
+ location_bar_ ? location_bar_->location_entry()->GetText() :
+ L"");
+ if (l10n_util::GetTextDirection() == l10n_util::RIGHT_TO_LEFT) {
+ l10n_util::WrapStringWithLTRFormatting(&current_text);
+ }
+
+ // TODO(pkasting): http://b/868940 Use the right strings at the right
+ // times by asking the autocomplete system what to do. Don't hardcode
+ // "Google" as the search provider name.
+ gtk_widget_set_tooltip_text(
+ widget_.get(),
+ true ? l10n_util::GetStringFUTF8(
+ IDS_TOOLTIP_GO_SITE, WideToUTF16(current_text)).c_str() :
+ l10n_util::GetStringFUTF8(IDS_TOOLTIP_GO_SEARCH, UTF8ToUTF16("Google"),
+ WideToUTF16(current_text)).c_str());
+ } else {
+ gtk_widget_set_tooltip_text(
+ widget_.get(), l10n_util::GetStringUTF8(IDS_TOOLTIP_STOP).c_str());
+ }
+}
« no previous file with comments | « chrome/browser/gtk/go_button_gtk.h ('k') | chrome/browser/gtk/go_button_gtk_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698