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

Side by Side Diff: chrome/browser/ui/views/location_bar/location_bar_view.cc

Issue 8832002: Aura: Set focusable on textfield but not on location bar (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: sync Created 9 years 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
OLDNEW
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/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
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 #include "ui/base/accessibility/accessible_view_state.h" 50 #include "ui/base/accessibility/accessible_view_state.h"
51 #include "ui/base/dragdrop/drag_drop_types.h" 51 #include "ui/base/dragdrop/drag_drop_types.h"
52 #include "ui/base/l10n/l10n_util.h" 52 #include "ui/base/l10n/l10n_util.h"
53 #include "ui/base/resource/resource_bundle.h" 53 #include "ui/base/resource/resource_bundle.h"
54 #include "ui/base/theme_provider.h" 54 #include "ui/base/theme_provider.h"
55 #include "ui/gfx/canvas_skia.h" 55 #include "ui/gfx/canvas_skia.h"
56 #include "ui/gfx/color_utils.h" 56 #include "ui/gfx/color_utils.h"
57 #include "ui/gfx/image/image.h" 57 #include "ui/gfx/image/image.h"
58 #include "ui/gfx/skia_util.h" 58 #include "ui/gfx/skia_util.h"
59 #include "ui/views/controls/label.h" 59 #include "ui/views/controls/label.h"
60 #include "ui/views/controls/textfield/native_textfield_views.h"
61 #include "ui/views/drag_utils.h" 60 #include "ui/views/drag_utils.h"
62 61
63 #if !defined(OS_CHROMEOS) 62 #if !defined(OS_CHROMEOS)
64 #include "chrome/browser/ui/views/first_run_bubble.h" 63 #include "chrome/browser/ui/views/first_run_bubble.h"
65 #endif 64 #endif
66 65
67 #if defined(OS_WIN) || defined(USE_AURA) 66 #if defined(OS_WIN) || defined(USE_AURA)
68 #include "chrome/browser/ui/views/location_bar/suggested_text_view.h" 67 #include "chrome/browser/ui/views/location_bar/suggested_text_view.h"
69 #endif 68 #endif
70 69
71 using views::View; 70 using views::View;
72 71
73 namespace { 72 namespace {
74 73
75 TabContents* GetTabContentsFromDelegate(LocationBarView::Delegate* delegate) { 74 TabContents* GetTabContentsFromDelegate(LocationBarView::Delegate* delegate) {
76 const TabContentsWrapper* wrapper = delegate->GetTabContentsWrapper(); 75 const TabContentsWrapper* wrapper = delegate->GetTabContentsWrapper();
77 return wrapper ? wrapper->tab_contents() : NULL; 76 return wrapper ? wrapper->tab_contents() : NULL;
78 } 77 }
79 78
79 // A utility function to cast OmniboxView to OmniboxViewViews.
80 OmniboxViewViews* AsViews(OmniboxView* view) {
81 DCHECK(views::Widget::IsPureViews());
82 return static_cast<OmniboxViewViews*>(view);
83 }
84
80 } // namespace 85 } // namespace
81 86
82 // static 87 // static
83 const int LocationBarView::kNormalHorizontalEdgeThickness = 1; 88 const int LocationBarView::kNormalHorizontalEdgeThickness = 1;
84 const int LocationBarView::kVerticalEdgeThickness = 2; 89 const int LocationBarView::kVerticalEdgeThickness = 2;
85 const int LocationBarView::kItemPadding = 3; 90 const int LocationBarView::kItemPadding = 3;
86 const int LocationBarView::kIconInternalPadding = 2; 91 const int LocationBarView::kIconInternalPadding = 2;
87 const int LocationBarView::kEdgeItemPadding = kItemPadding; 92 const int LocationBarView::kEdgeItemPadding = kItemPadding;
88 const int LocationBarView::kBubbleHorizontalPadding = 1; 93 const int LocationBarView::kBubbleHorizontalPadding = 1;
89 const char LocationBarView::kViewClassName[] = 94 const char LocationBarView::kViewClassName[] =
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 suggested_text_view_(NULL), 132 suggested_text_view_(NULL),
128 #endif 133 #endif
129 keyword_hint_view_(NULL), 134 keyword_hint_view_(NULL),
130 star_view_(NULL), 135 star_view_(NULL),
131 mode_(mode), 136 mode_(mode),
132 show_focus_rect_(false), 137 show_focus_rect_(false),
133 bubble_type_(FirstRun::MINIMAL_BUBBLE), 138 bubble_type_(FirstRun::MINIMAL_BUBBLE),
134 template_url_service_(NULL), 139 template_url_service_(NULL),
135 animation_offset_(0) { 140 animation_offset_(0) {
136 set_id(VIEW_ID_LOCATION_BAR); 141 set_id(VIEW_ID_LOCATION_BAR);
137 set_focusable(true);
138 142
139 if (mode_ == NORMAL) { 143 if (mode_ == NORMAL) {
140 painter_.reset( 144 painter_.reset(
141 views::Painter::CreateImagePainter( 145 views::Painter::CreateImagePainter(
142 *ResourceBundle::GetSharedInstance().GetImageNamed( 146 *ResourceBundle::GetSharedInstance().GetImageNamed(
143 IDR_LOCATION_BAR_BORDER).ToSkBitmap(), 147 IDR_LOCATION_BAR_BORDER).ToSkBitmap(),
144 gfx::Insets(kBorderRoundCornerHeight, kBorderRoundCornerWidth, 148 gfx::Insets(kBorderRoundCornerHeight, kBorderRoundCornerWidth,
145 kBorderRoundCornerHeight, kBorderRoundCornerWidth), 149 kBorderRoundCornerHeight, kBorderRoundCornerWidth),
146 true)); 150 true));
147 } 151 }
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 // URL edit field. 190 // URL edit field.
187 // View container for URL edit field. 191 // View container for URL edit field.
188 Profile* profile = browser_->profile(); 192 Profile* profile = browser_->profile();
189 location_entry_.reset(OmniboxView::CreateOmniboxView( 193 location_entry_.reset(OmniboxView::CreateOmniboxView(
190 this, 194 this,
191 model_, 195 model_,
192 profile, 196 profile,
193 browser_->command_updater(), 197 browser_->command_updater(),
194 mode_ == POPUP, 198 mode_ == POPUP,
195 this)); 199 this));
200 SetLocationEntryFocusable(true);
196 201
197 location_entry_view_ = location_entry_->AddToView(this); 202 location_entry_view_ = location_entry_->AddToView(this);
198 location_entry_view_->set_id(VIEW_ID_AUTOCOMPLETE); 203 location_entry_view_->set_id(VIEW_ID_AUTOCOMPLETE);
199 204
200 selected_keyword_view_ = new SelectedKeywordView( 205 selected_keyword_view_ = new SelectedKeywordView(
201 kSelectedKeywordBackgroundImages, IDR_KEYWORD_SEARCH_MAGNIFIER, 206 kSelectedKeywordBackgroundImages, IDR_KEYWORD_SEARCH_MAGNIFIER,
202 GetColor(ToolbarModel::NONE, TEXT), profile); 207 GetColor(ToolbarModel::NONE, TEXT), profile);
203 AddChildView(selected_keyword_view_); 208 AddChildView(selected_keyword_view_);
204 selected_keyword_view_->SetFont(font_); 209 selected_keyword_view_->SetFont(font_);
205 selected_keyword_view_->SetVisible(false); 210 selected_keyword_view_->SetVisible(false);
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after
437 442
438 Layout(); 443 Layout();
439 SchedulePaint(); 444 SchedulePaint();
440 } 445 }
441 446
442 string16 LocationBarView::GetInstantSuggestion() const { 447 string16 LocationBarView::GetInstantSuggestion() const {
443 return HasValidSuggestText() ? suggested_text_view_->GetText() : string16(); 448 return HasValidSuggestText() ? suggested_text_view_->GetText() : string16();
444 } 449 }
445 #endif 450 #endif
446 451
452 void LocationBarView::SetLocationEntryFocusable(bool focusable) {
453 if (views::Widget::IsPureViews())
454 AsViews(location_entry_.get())->SetLocationEntryFocusable(focusable);
455 else
456 set_focusable(focusable);
457 }
458
459 bool LocationBarView::IsLocationEntryFocusableInRootView() const {
460 return views::Widget::IsPureViews() ?
461 AsViews(location_entry_.get())->IsLocationEntryFocusableInRootView() :
462 views::View::IsFocusableInRootView();
463 }
464
447 gfx::Size LocationBarView::GetPreferredSize() { 465 gfx::Size LocationBarView::GetPreferredSize() {
448 return gfx::Size(0, GetThemeProvider()->GetBitmapNamed(mode_ == POPUP ? 466 return gfx::Size(0, GetThemeProvider()->GetBitmapNamed(mode_ == POPUP ?
449 IDR_LOCATIONBG_POPUPMODE_CENTER : IDR_LOCATIONBG_C)->height()); 467 IDR_LOCATIONBG_POPUPMODE_CENTER : IDR_LOCATIONBG_C)->height());
450 } 468 }
451 469
452 void LocationBarView::Layout() { 470 void LocationBarView::Layout() {
453 if (!location_entry_.get()) 471 if (!location_entry_.get())
454 return; 472 return;
455 473
456 // TODO(jhawkins): Remove once crbug.com/101994 is fixed. 474 // TODO(jhawkins): Remove once crbug.com/101994 is fixed.
(...skipping 773 matching lines...) Expand 10 before | Expand all | Expand 10 after
1230 !suggested_text_view_->GetText().empty(); 1248 !suggested_text_view_->GetText().empty();
1231 } 1249 }
1232 1250
1233 #if !defined(USE_AURA) 1251 #if !defined(USE_AURA)
1234 OmniboxViewWin* LocationBarView::GetOmniboxViewWin() { 1252 OmniboxViewWin* LocationBarView::GetOmniboxViewWin() {
1235 CHECK(!views::Widget::IsPureViews()); 1253 CHECK(!views::Widget::IsPureViews());
1236 return static_cast<OmniboxViewWin*>(location_entry_.get()); 1254 return static_cast<OmniboxViewWin*>(location_entry_.get());
1237 } 1255 }
1238 #endif 1256 #endif
1239 #endif 1257 #endif
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/location_bar/location_bar_view.h ('k') | chrome/browser/ui/views/omnibox/omnibox_view_views.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698