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

Side by Side Diff: chrome/browser/ui/views/location_bar/location_bar_view.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/views/location_bar/location_bar_view.h ('k') | chrome/common/pref_names.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) 2011 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/views/location_bar/location_bar_view.h" 5 #include "chrome/browser/ui/views/location_bar/location_bar_view.h"
6 6
7 #if defined(TOOLKIT_USES_GTK) 7 #if defined(TOOLKIT_USES_GTK)
8 #include <gtk/gtk.h> 8 #include <gtk/gtk.h>
9 #endif 9 #endif
10 10
11 #include <algorithm> 11 #include <algorithm>
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
130 ev_bubble_view_(NULL), 130 ev_bubble_view_(NULL),
131 location_entry_view_(NULL), 131 location_entry_view_(NULL),
132 selected_keyword_view_(NULL), 132 selected_keyword_view_(NULL),
133 #if defined(OS_WIN) || defined(USE_AURA) 133 #if defined(OS_WIN) || defined(USE_AURA)
134 suggested_text_view_(NULL), 134 suggested_text_view_(NULL),
135 #endif 135 #endif
136 keyword_hint_view_(NULL), 136 keyword_hint_view_(NULL),
137 star_view_(NULL), 137 star_view_(NULL),
138 mode_(mode), 138 mode_(mode),
139 show_focus_rect_(false), 139 show_focus_rect_(false),
140 bubble_type_(FirstRun::MINIMAL_BUBBLE),
141 template_url_service_(NULL), 140 template_url_service_(NULL),
142 animation_offset_(0) { 141 animation_offset_(0) {
143 set_id(VIEW_ID_LOCATION_BAR); 142 set_id(VIEW_ID_LOCATION_BAR);
144 143
145 if (mode_ == NORMAL) { 144 if (mode_ == NORMAL) {
146 painter_.reset( 145 painter_.reset(
147 views::Painter::CreateImagePainter( 146 views::Painter::CreateImagePainter(
148 *ResourceBundle::GetSharedInstance().GetImageNamed( 147 *ResourceBundle::GetSharedInstance().GetImageNamed(
149 IDR_LOCATION_BAR_BORDER).ToSkBitmap(), 148 IDR_LOCATION_BAR_BORDER).ToSkBitmap(),
150 gfx::Insets(kBorderRoundCornerHeight, kBorderRoundCornerWidth, 149 gfx::Insets(kBorderRoundCornerHeight, kBorderRoundCornerWidth,
(...skipping 846 matching lines...) Expand 10 before | Expand all | Expand 10 after
997 UINT flags = event.native_event().wParam; 996 UINT flags = event.native_event().wParam;
998 gfx::Point screen_point(event.location()); 997 gfx::Point screen_point(event.location());
999 ConvertPointToScreen(this, &screen_point); 998 ConvertPointToScreen(this, &screen_point);
1000 if (views::Widget::IsPureViews()) 999 if (views::Widget::IsPureViews())
1001 NOTIMPLEMENTED(); 1000 NOTIMPLEMENTED();
1002 else 1001 else
1003 GetOmniboxViewWin()->HandleExternalMsg(msg, flags, screen_point.ToPOINT()); 1002 GetOmniboxViewWin()->HandleExternalMsg(msg, flags, screen_point.ToPOINT());
1004 } 1003 }
1005 #endif 1004 #endif
1006 1005
1007 void LocationBarView::ShowFirstRunBubbleInternal( 1006 void LocationBarView::ShowFirstRunBubbleInternal() {
1008 FirstRun::BubbleType bubble_type) {
1009 #if !defined(OS_CHROMEOS) 1007 #if !defined(OS_CHROMEOS)
1010 // First run bubble doesn't make sense for Chrome OS. 1008 // First run bubble doesn't make sense for Chrome OS.
1011 FirstRunBubble::ShowBubble(browser_->profile(), 1009 FirstRunBubble::ShowBubble(browser_->profile(), location_icon_view_);
1012 location_icon_view_,
1013 views::BubbleBorder::TOP_LEFT,
1014 bubble_type);
1015 #endif 1010 #endif
1016 } 1011 }
1017 1012
1018 std::string LocationBarView::GetClassName() const { 1013 std::string LocationBarView::GetClassName() const {
1019 return kViewClassName; 1014 return kViewClassName;
1020 } 1015 }
1021 1016
1022 bool LocationBarView::SkipDefaultKeyEventProcessing( 1017 bool LocationBarView::SkipDefaultKeyEventProcessing(
1023 const views::KeyEvent& event) { 1018 const views::KeyEvent& event) {
1024 #if defined(OS_WIN) 1019 #if defined(OS_WIN)
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
1098 1093
1099 bool LocationBarView::CanStartDragForView(View* sender, 1094 bool LocationBarView::CanStartDragForView(View* sender,
1100 const gfx::Point& press_pt, 1095 const gfx::Point& press_pt,
1101 const gfx::Point& p) { 1096 const gfx::Point& p) {
1102 return true; 1097 return true;
1103 } 1098 }
1104 1099
1105 //////////////////////////////////////////////////////////////////////////////// 1100 ////////////////////////////////////////////////////////////////////////////////
1106 // LocationBarView, LocationBar implementation: 1101 // LocationBarView, LocationBar implementation:
1107 1102
1108 void LocationBarView::ShowFirstRunBubble(FirstRun::BubbleType bubble_type) { 1103 void LocationBarView::ShowFirstRunBubble() {
1109 // Wait until search engines have loaded to show the first run bubble. 1104 // Wait until search engines have loaded to show the first run bubble.
1110 TemplateURLService* url_service = 1105 TemplateURLService* url_service =
1111 TemplateURLServiceFactory::GetForProfile(browser_->profile()); 1106 TemplateURLServiceFactory::GetForProfile(browser_->profile());
1112 if (!url_service->loaded()) { 1107 if (!url_service->loaded()) {
1113 bubble_type_ = bubble_type;
1114 template_url_service_ = url_service; 1108 template_url_service_ = url_service;
1115 template_url_service_->AddObserver(this); 1109 template_url_service_->AddObserver(this);
1116 template_url_service_->Load(); 1110 template_url_service_->Load();
1117 return; 1111 return;
1118 } 1112 }
1119 ShowFirstRunBubbleInternal(bubble_type); 1113 ShowFirstRunBubbleInternal();
1120 } 1114 }
1121 1115
1122 void LocationBarView::SetSuggestedText(const string16& text, 1116 void LocationBarView::SetSuggestedText(const string16& text,
1123 InstantCompleteBehavior behavior) { 1117 InstantCompleteBehavior behavior) {
1124 location_entry_->model()->SetSuggestedText(text, behavior); 1118 location_entry_->model()->SetSuggestedText(text, behavior);
1125 } 1119 }
1126 1120
1127 string16 LocationBarView::GetInputString() const { 1121 string16 LocationBarView::GetInputString() const {
1128 return location_input_; 1122 return location_input_;
1129 } 1123 }
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
1223 1217
1224 NOTREACHED(); 1218 NOTREACHED();
1225 } 1219 }
1226 1220
1227 void LocationBarView::OnTemplateURLServiceChanged() { 1221 void LocationBarView::OnTemplateURLServiceChanged() {
1228 template_url_service_->RemoveObserver(this); 1222 template_url_service_->RemoveObserver(this);
1229 template_url_service_ = NULL; 1223 template_url_service_ = NULL;
1230 // If the browser is no longer active, let's not show the info bubble, as this 1224 // If the browser is no longer active, let's not show the info bubble, as this
1231 // would make the browser the active window again. 1225 // would make the browser the active window again.
1232 if (location_entry_view_ && location_entry_view_->GetWidget()->IsActive()) 1226 if (location_entry_view_ && location_entry_view_->GetWidget()->IsActive())
1233 ShowFirstRunBubble(bubble_type_); 1227 ShowFirstRunBubble();
1234 } 1228 }
1235 1229
1236 void LocationBarView::Observe(int type, 1230 void LocationBarView::Observe(int type,
1237 const content::NotificationSource& source, 1231 const content::NotificationSource& source,
1238 const content::NotificationDetails& details) { 1232 const content::NotificationDetails& details) {
1239 if (type == chrome::NOTIFICATION_PREF_CHANGED) { 1233 if (type == chrome::NOTIFICATION_PREF_CHANGED) {
1240 std::string* name = content::Details<std::string>(details).ptr(); 1234 std::string* name = content::Details<std::string>(details).ptr();
1241 if (*name == prefs::kEditBookmarksEnabled) 1235 if (*name == prefs::kEditBookmarksEnabled)
1242 Update(NULL); 1236 Update(NULL);
1243 } 1237 }
1244 } 1238 }
1245 1239
1246 #if defined(OS_WIN) || defined(USE_AURA) 1240 #if defined(OS_WIN) || defined(USE_AURA)
1247 bool LocationBarView::HasValidSuggestText() const { 1241 bool LocationBarView::HasValidSuggestText() const {
1248 return suggested_text_view_ && !suggested_text_view_->size().IsEmpty() && 1242 return suggested_text_view_ && !suggested_text_view_->size().IsEmpty() &&
1249 !suggested_text_view_->GetText().empty(); 1243 !suggested_text_view_->GetText().empty();
1250 } 1244 }
1251 1245
1252 #if !defined(USE_AURA) 1246 #if !defined(USE_AURA)
1253 OmniboxViewWin* LocationBarView::GetOmniboxViewWin() { 1247 OmniboxViewWin* LocationBarView::GetOmniboxViewWin() {
1254 CHECK(!views::Widget::IsPureViews()); 1248 CHECK(!views::Widget::IsPureViews());
1255 return static_cast<OmniboxViewWin*>(location_entry_.get()); 1249 return static_cast<OmniboxViewWin*>(location_entry_.get());
1256 } 1250 }
1257 #endif 1251 #endif
1258 #endif 1252 #endif
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/location_bar/location_bar_view.h ('k') | chrome/common/pref_names.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698