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

Side by Side Diff: chrome/browser/ui/gtk/location_bar_view_gtk.cc

Issue 9016036: Implement the new first run bubble, clean up old bubbles. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Sync and merge. Created 8 years, 11 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/ui/gtk/location_bar_view_gtk.h ('k') | chrome/browser/ui/omnibox/location_bar.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/location_bar_view_gtk.h" 5 #include "chrome/browser/ui/gtk/location_bar_view_gtk.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
77 namespace { 77 namespace {
78 78
79 // We are positioned with a little bit of extra space that we don't use now. 79 // We are positioned with a little bit of extra space that we don't use now.
80 const int kTopMargin = 1; 80 const int kTopMargin = 1;
81 const int kBottomMargin = 1; 81 const int kBottomMargin = 1;
82 const int kLeftMargin = 1; 82 const int kLeftMargin = 1;
83 const int kRightMargin = 1; 83 const int kRightMargin = 1;
84 // We draw a border on the top and bottom (but not on left or right). 84 // We draw a border on the top and bottom (but not on left or right).
85 const int kBorderThickness = 1; 85 const int kBorderThickness = 1;
86 86
87 // Left margin of first run bubble.
88 const int kFirstRunBubbleLeftMargin = 8;
89 // Extra vertical spacing for first run bubble.
90 const int kFirstRunBubbleTopMargin = 5;
91 // Spacing needed to align the bubble with the left side of the omnibox. 87 // Spacing needed to align the bubble with the left side of the omnibox.
92 const int kFirstRunBubbleLeftSpacing = 4; 88 const int kFirstRunBubbleLeftSpacing = 4;
93 89
94 // The padding around the top, bottom, and sides of the location bar hbox. 90 // The padding around the top, bottom, and sides of the location bar hbox.
95 // We don't want to edit control's text to be right against the edge, 91 // We don't want to edit control's text to be right against the edge,
96 // as well the tab to search box and other widgets need to have the padding on 92 // as well the tab to search box and other widgets need to have the padding on
97 // top and bottom to avoid drawing larger than the location bar space. 93 // top and bottom to avoid drawing larger than the location bar space.
98 const int kHboxBorder = 2; 94 const int kHboxBorder = 2;
99 95
100 // Padding between the elements in the bar. 96 // Padding between the elements in the bar.
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
167 tab_to_search_hint_leading_label_(NULL), 163 tab_to_search_hint_leading_label_(NULL),
168 tab_to_search_hint_icon_(NULL), 164 tab_to_search_hint_icon_(NULL),
169 tab_to_search_hint_trailing_label_(NULL), 165 tab_to_search_hint_trailing_label_(NULL),
170 command_updater_(browser->command_updater()), 166 command_updater_(browser->command_updater()),
171 toolbar_model_(browser->toolbar_model()), 167 toolbar_model_(browser->toolbar_model()),
172 browser_(browser), 168 browser_(browser),
173 disposition_(CURRENT_TAB), 169 disposition_(CURRENT_TAB),
174 transition_(content::PageTransitionFromInt( 170 transition_(content::PageTransitionFromInt(
175 content::PAGE_TRANSITION_TYPED | 171 content::PAGE_TRANSITION_TYPED |
176 content::PAGE_TRANSITION_FROM_ADDRESS_BAR)), 172 content::PAGE_TRANSITION_FROM_ADDRESS_BAR)),
177 first_run_bubble_(this), 173 weak_ptr_factory_(this),
178 popup_window_mode_(false), 174 popup_window_mode_(false),
179 theme_service_(NULL), 175 theme_service_(NULL),
180 hbox_width_(0), 176 hbox_width_(0),
181 entry_box_width_(0), 177 entry_box_width_(0),
182 show_selected_keyword_(false), 178 show_selected_keyword_(false),
183 show_keyword_hint_(false) { 179 show_keyword_hint_(false) {
184 } 180 }
185 181
186 LocationBarViewGtk::~LocationBarViewGtk() { 182 LocationBarViewGtk::~LocationBarViewGtk() {
187 // All of our widgets should have be children of / owned by the alignment. 183 // All of our widgets should have be children of / owned by the alignment.
(...skipping 391 matching lines...) Expand 10 before | Expand all | Expand 10 after
579 } 575 }
580 576
581 InstantController* LocationBarViewGtk::GetInstant() { 577 InstantController* LocationBarViewGtk::GetInstant() {
582 return browser_->instant(); 578 return browser_->instant();
583 } 579 }
584 580
585 TabContentsWrapper* LocationBarViewGtk::GetTabContentsWrapper() const { 581 TabContentsWrapper* LocationBarViewGtk::GetTabContentsWrapper() const {
586 return browser_->GetSelectedTabContentsWrapper(); 582 return browser_->GetSelectedTabContentsWrapper();
587 } 583 }
588 584
589 void LocationBarViewGtk::ShowFirstRunBubble(FirstRun::BubbleType bubble_type) { 585 void LocationBarViewGtk::ShowFirstRunBubble() {
590 // We need the browser window to be shown before we can show the bubble, but 586 // We need the browser window to be shown before we can show the bubble, but
591 // we get called before that's happened. 587 // we get called before that's happened.
592 MessageLoop::current()->PostTask( 588 MessageLoop::current()->PostTask(
593 FROM_HERE, 589 FROM_HERE,
594 base::Bind(&LocationBarViewGtk::ShowFirstRunBubbleInternal, 590 base::Bind(&LocationBarViewGtk::ShowFirstRunBubbleInternal,
595 first_run_bubble_.GetWeakPtr(), 591 weak_ptr_factory_.GetWeakPtr()));
596 bubble_type));
597 } 592 }
598 593
599 void LocationBarViewGtk::SetSuggestedText(const string16& text, 594 void LocationBarViewGtk::SetSuggestedText(const string16& text,
600 InstantCompleteBehavior behavior) { 595 InstantCompleteBehavior behavior) {
601 location_entry_->model()->SetSuggestedText(text, behavior); 596 location_entry_->model()->SetSuggestedText(text, behavior);
602 } 597 }
603 598
604 string16 LocationBarViewGtk::GetInputString() const { 599 string16 LocationBarViewGtk::GetInputString() const {
605 return location_input_; 600 return location_input_;
606 } 601 }
(...skipping 408 matching lines...) Expand 10 before | Expand all | Expand 10 after
1015 std::string leading(UTF16ToUTF8( 1010 std::string leading(UTF16ToUTF8(
1016 keyword_hint.substr(0, content_param_offsets.front()))); 1011 keyword_hint.substr(0, content_param_offsets.front())));
1017 std::string trailing(UTF16ToUTF8( 1012 std::string trailing(UTF16ToUTF8(
1018 keyword_hint.substr(content_param_offsets.front()))); 1013 keyword_hint.substr(content_param_offsets.front())));
1019 gtk_label_set_text(GTK_LABEL(tab_to_search_hint_leading_label_), 1014 gtk_label_set_text(GTK_LABEL(tab_to_search_hint_leading_label_),
1020 leading.c_str()); 1015 leading.c_str());
1021 gtk_label_set_text(GTK_LABEL(tab_to_search_hint_trailing_label_), 1016 gtk_label_set_text(GTK_LABEL(tab_to_search_hint_trailing_label_),
1022 trailing.c_str()); 1017 trailing.c_str());
1023 } 1018 }
1024 1019
1025 void LocationBarViewGtk::ShowFirstRunBubbleInternal( 1020 void LocationBarViewGtk::ShowFirstRunBubbleInternal() {
1026 FirstRun::BubbleType bubble_type) {
1027 if (!location_entry_.get() || !widget()->window) 1021 if (!location_entry_.get() || !widget()->window)
1028 return; 1022 return;
1029 1023
1030 gfx::Rect bounds = gtk_util::WidgetBounds(location_icon_image_); 1024 gfx::Rect bounds = gtk_util::WidgetBounds(location_icon_image_);
1031 bounds.set_x(bounds.x() + kFirstRunBubbleLeftSpacing); 1025 bounds.set_x(bounds.x() + kFirstRunBubbleLeftSpacing);
1032 1026 FirstRunBubble::Show(browser_->profile(), location_icon_image_, bounds);
1033 FirstRunBubble::Show(browser_->profile(), location_icon_image_, bounds,
1034 bubble_type);
1035 } 1027 }
1036 1028
1037 gboolean LocationBarViewGtk::OnIconReleased(GtkWidget* sender, 1029 gboolean LocationBarViewGtk::OnIconReleased(GtkWidget* sender,
1038 GdkEventButton* event) { 1030 GdkEventButton* event) {
1039 WebContents* tab = GetWebContents(); 1031 WebContents* tab = GetWebContents();
1040 1032
1041 if (event->button == 1) { 1033 if (event->button == 1) {
1042 // Do not show page info if the user has been editing the location 1034 // Do not show page info if the user has been editing the location
1043 // bar, or the location bar is at the NTP. 1035 // bar, or the location bar is at the NTP.
1044 if (location_entry()->IsEditingOrEmpty()) 1036 if (location_entry()->IsEditingOrEmpty())
(...skipping 609 matching lines...) Expand 10 before | Expand all | Expand 10 after
1654 std::string badge_text = page_action_->GetBadgeText(tab_id); 1646 std::string badge_text = page_action_->GetBadgeText(tab_id);
1655 if (badge_text.empty()) 1647 if (badge_text.empty())
1656 return FALSE; 1648 return FALSE;
1657 1649
1658 gfx::CanvasSkiaPaint canvas(event, false); 1650 gfx::CanvasSkiaPaint canvas(event, false);
1659 GtkAllocation allocation; 1651 GtkAllocation allocation;
1660 gtk_widget_get_allocation(widget, &allocation); 1652 gtk_widget_get_allocation(widget, &allocation);
1661 page_action_->PaintBadge(&canvas, gfx::Rect(allocation), tab_id); 1653 page_action_->PaintBadge(&canvas, gfx::Rect(allocation), tab_id);
1662 return FALSE; 1654 return FALSE;
1663 } 1655 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/gtk/location_bar_view_gtk.h ('k') | chrome/browser/ui/omnibox/location_bar.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698