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

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

Issue 11421204: Use native theme colors for textfields; etc. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add Textfield cursor visibility accessors for better NativeTextfieldViews impl. Created 8 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) 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/string_util.h" 8 #include "base/string_util.h"
9 #include "base/utf_string_conversions.h" 9 #include "base/utf_string_conversions.h"
10 #include "chrome/app/chrome_command_ids.h" 10 #include "chrome/app/chrome_command_ids.h"
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
187 bool result = views::Textfield::OnMouseDragged(event); 187 bool result = views::Textfield::OnMouseDragged(event);
188 omnibox_view_->HandleMouseDragEvent(event); 188 omnibox_view_->HandleMouseDragEvent(event);
189 return result; 189 return result;
190 } 190 }
191 191
192 virtual void OnMouseReleased(const ui::MouseEvent& event) OVERRIDE { 192 virtual void OnMouseReleased(const ui::MouseEvent& event) OVERRIDE {
193 views::Textfield::OnMouseReleased(event); 193 views::Textfield::OnMouseReleased(event);
194 omnibox_view_->HandleMouseReleaseEvent(event); 194 omnibox_view_->HandleMouseReleaseEvent(event);
195 } 195 }
196 196
197 protected:
198 // views::View implementation.
199 virtual void PaintChildren(gfx::Canvas* canvas) {
200 views::Textfield::PaintChildren(canvas);
201 }
202
203 private: 197 private:
204 OmniboxViewViews* omnibox_view_; 198 OmniboxViewViews* omnibox_view_;
205 LocationBarView* location_bar_view_; 199 LocationBarView* location_bar_view_;
206 200
207 DISALLOW_COPY_AND_ASSIGN(AutocompleteTextfield); 201 DISALLOW_COPY_AND_ASSIGN(AutocompleteTextfield);
208 }; 202 };
209 203
210 // static 204 // static
211 const char OmniboxViewViews::kViewClassName[] = "BrowserOmniboxViewViews"; 205 const char OmniboxViewViews::kViewClassName[] = "BrowserOmniboxViewViews";
212 206
(...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after
583 // because if we already have invisible focus, the RequestFocus() call below 577 // because if we already have invisible focus, the RequestFocus() call below
584 // will short-circuit, preventing us from reaching 578 // will short-circuit, preventing us from reaching
585 // OmniboxEditModel::OnSetFocus(), which handles restoring visibility when we 579 // OmniboxEditModel::OnSetFocus(), which handles restoring visibility when we
586 // didn't previously have focus. 580 // didn't previously have focus.
587 model()->SetCaretVisibility(true); 581 model()->SetCaretVisibility(true);
588 // In views-implementation, the focus is on textfield rather than OmniboxView. 582 // In views-implementation, the focus is on textfield rather than OmniboxView.
589 textfield_->RequestFocus(); 583 textfield_->RequestFocus();
590 } 584 }
591 585
592 void OmniboxViewViews::ApplyCaretVisibility() { 586 void OmniboxViewViews::ApplyCaretVisibility() {
593 if (textfield_->cursor_color() != textfield_->background_color()) 587 textfield_->SetCursorVisible(model()->is_caret_visible());
594 visible_caret_color_ = textfield_->cursor_color();
595 // Setting the color of the text cursor (caret) to the background color
596 // effectively hides it.
597 textfield_->SetCursorColor(model()->is_caret_visible() ?
598 visible_caret_color_ : textfield_->background_color());
samarth 2012/12/05 23:38:21 You can kill visible_caret_color_.
msw 2012/12/06 00:03:52 Done.
599 } 588 }
600 589
601 void OmniboxViewViews::OnTemporaryTextMaybeChanged( 590 void OmniboxViewViews::OnTemporaryTextMaybeChanged(
602 const string16& display_text, 591 const string16& display_text,
603 bool save_original_selection) { 592 bool save_original_selection) {
604 if (save_original_selection) 593 if (save_original_selection)
605 textfield_->GetSelectedRange(&saved_temporary_selection_); 594 textfield_->GetSelectedRange(&saved_temporary_selection_);
606 595
607 SetWindowTextAndCaretPos(display_text, display_text.length(), false, true); 596 SetWindowTextAndCaretPos(display_text, display_text.length(), false, true);
608 } 597 }
(...skipping 366 matching lines...) Expand 10 before | Expand all | Expand 10 after
975 if (!text.empty()) { 964 if (!text.empty()) {
976 // Record this paste, so we can do different behavior. 965 // Record this paste, so we can do different behavior.
977 model()->on_paste(); 966 model()->on_paste();
978 // Force a Paste operation to trigger the text_changed code in 967 // Force a Paste operation to trigger the text_changed code in
979 // OnAfterPossibleChange(), even if identical contents are pasted into the 968 // OnAfterPossibleChange(), even if identical contents are pasted into the
980 // text box. 969 // text box.
981 text_before_change_.clear(); 970 text_before_change_.clear();
982 textfield_->ReplaceSelection(text); 971 textfield_->ReplaceSelection(text);
983 } 972 }
984 } 973 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/location_bar/location_bar_view.cc ('k') | ui/gfx/sys_color_change_listener.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698