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

Side by Side Diff: chrome/browser/ui/views/omnibox/omnibox_view_views.cc

Issue 10580039: Adds ability to render omnibox as a view above the page. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix windows Created 8 years, 6 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
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/views/omnibox/omnibox_view_views.h" 5 #include "chrome/browser/ui/views/omnibox/omnibox_view_views.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/property_bag.h" 8 #include "base/property_bag.h"
9 #include "base/string_util.h" 9 #include "base/string_util.h"
10 #include "base/utf_string_conversions.h" 10 #include "base/utf_string_conversions.h"
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
204 204
205 // Explicitly teardown members which have a reference to us. Just to be safe 205 // Explicitly teardown members which have a reference to us. Just to be safe
206 // we want them to be destroyed before destroying any other internal state. 206 // we want them to be destroyed before destroying any other internal state.
207 popup_view_.reset(); 207 popup_view_.reset();
208 model_.reset(); 208 model_.reset();
209 } 209 }
210 210
211 //////////////////////////////////////////////////////////////////////////////// 211 ////////////////////////////////////////////////////////////////////////////////
212 // OmniboxViewViews public: 212 // OmniboxViewViews public:
213 213
214 void OmniboxViewViews::Init() { 214 void OmniboxViewViews::Init(views::View* popup_parent_view) {
215 // The height of the text view is going to change based on the font used. We 215 // The height of the text view is going to change based on the font used. We
216 // don't want to stretch the height, and we want it vertically centered. 216 // don't want to stretch the height, and we want it vertically centered.
217 // TODO(oshima): make sure the above happens with views. 217 // TODO(oshima): make sure the above happens with views.
218 textfield_ = new AutocompleteTextfield(this); 218 textfield_ = new AutocompleteTextfield(this);
219 textfield_->SetController(this); 219 textfield_->SetController(this);
220 textfield_->SetTextInputType(ui::TEXT_INPUT_TYPE_URL); 220 textfield_->SetTextInputType(ui::TEXT_INPUT_TYPE_URL);
221 221
222 if (popup_window_mode_) 222 if (popup_window_mode_)
223 textfield_->SetReadOnly(true); 223 textfield_->SetReadOnly(true);
224 224
225 const int font_size = GetEditFontPixelSize(popup_window_mode_); 225 const int font_size = GetEditFontPixelSize(popup_window_mode_);
226 const int old_size = textfield_->font().GetFontSize(); 226 const int old_size = textfield_->font().GetFontSize();
227 if (font_size != old_size) 227 if (font_size != old_size)
228 textfield_->SetFont(textfield_->font().DeriveFont(font_size - old_size)); 228 textfield_->SetFont(textfield_->font().DeriveFont(font_size - old_size));
229 229
230 // Create popup view using the same font as |textfield_|'s. 230 // Create popup view using the same font as |textfield_|'s.
231 popup_view_.reset( 231 popup_view_.reset(
232 OmniboxPopupContentsView::CreateForEnvironment( 232 OmniboxPopupContentsView::Create(
233 textfield_->font(), this, model_.get(), location_bar_view_)); 233 textfield_->font(), this, model_.get(), location_bar_view_,
234 popup_parent_view));
234 235
235 const int vertical_margin = !popup_window_mode_ ? 236 const int vertical_margin = !popup_window_mode_ ?
236 kAutocompleteVerticalMargin : kAutocompleteVerticalMarginInPopup; 237 kAutocompleteVerticalMargin : kAutocompleteVerticalMarginInPopup;
237 set_border(views::Border::CreateEmptyBorder(vertical_margin, 0, 238 set_border(views::Border::CreateEmptyBorder(vertical_margin, 0,
238 vertical_margin, 0)); 239 vertical_margin, 0));
239 #if defined(OS_CHROMEOS) 240 #if defined(OS_CHROMEOS)
240 chromeos::input_method::InputMethodManager::GetInstance()-> 241 chromeos::input_method::InputMethodManager::GetInstance()->
241 AddCandidateWindowObserver(this); 242 AddCandidateWindowObserver(this);
242 #endif 243 #endif
243 } 244 }
(...skipping 641 matching lines...) Expand 10 before | Expand all | Expand 10 after
885 const ui::Range& range) { 886 const ui::Range& range) {
886 if (text != GetText()) 887 if (text != GetText())
887 textfield_->SetText(text); 888 textfield_->SetText(text);
888 textfield_->SelectRange(range); 889 textfield_->SelectRange(range);
889 } 890 }
890 891
891 string16 OmniboxViewViews::GetSelectedText() const { 892 string16 OmniboxViewViews::GetSelectedText() const {
892 // TODO(oshima): Support instant, IME. 893 // TODO(oshima): Support instant, IME.
893 return textfield_->GetSelectedText(); 894 return textfield_->GetSelectedText();
894 } 895 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698