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

Side by Side Diff: chrome/browser/ui/views/autofill/decorated_textfield.cc

Issue 140653004: Update DecoratedTextfield layout on icon changes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Update Layout on DecoratedTextfield icon changes. Created 6 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 | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/autofill/decorated_textfield.h" 5 #include "chrome/browser/ui/views/autofill/decorated_textfield.h"
6 6
7 #include "chrome/browser/ui/autofill/autofill_dialog_types.h" 7 #include "chrome/browser/ui/autofill/autofill_dialog_types.h"
8 #include "chrome/browser/ui/views/autofill/tooltip_icon.h" 8 #include "chrome/browser/ui/views/autofill/tooltip_icon.h"
9 #include "ui/gfx/canvas.h" 9 #include "ui/gfx/canvas.h"
10 #include "ui/views/background.h" 10 #include "ui/views/background.h"
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
137 set_background( 137 set_background(
138 views::Background::CreateSolidBackground(GetBackgroundColor())); 138 views::Background::CreateSolidBackground(GetBackgroundColor()));
139 } 139 }
140 140
141 void DecoratedTextfield::UpdateBorder() { 141 void DecoratedTextfield::UpdateBorder() {
142 views::FocusableBorder* border = new views::FocusableBorder(); 142 views::FocusableBorder* border = new views::FocusableBorder();
143 if (invalid_) 143 if (invalid_)
144 border->SetColor(kWarningColor); 144 border->SetColor(kWarningColor);
145 else if (!editable_) 145 else if (!editable_)
146 border->SetColor(SK_ColorTRANSPARENT); 146 border->SetColor(SK_ColorTRANSPARENT);
147
148 const gfx::Insets insets = GetInsets();
149 int left = icon_view_ ?
150 icon_view_->GetPreferredSize().width() + 2 * kTextfieldIconPadding : 0;
151 int right = 0;
152 if (base::i18n::IsRTL())
153 std::swap(left, right);
154 border->SetInsets(insets.top(), insets.left() + left, insets.bottom(),
155 insets.right() + right);
156 set_border(border); 147 set_border(border);
157 } 148 }
158 149
159 void DecoratedTextfield::IconChanged() { 150 void DecoratedTextfield::IconChanged() {
160 // Don't show the icon if nothing else is showing. 151 // Don't show the icon if nothing else is showing.
161 const bool visible = editable_ || !text().empty(); 152 icon_view_->SetVisible(editable_ || !text().empty());
162 if (icon_view_->visible() == visible) 153 Layout();
Evan Stade 2014/01/16 20:40:43 why remove this?
msw 2014/01/16 21:10:33 It seems to be necessary. I tried to dig in and un
163 return;
164
165 icon_view_->SetVisible(visible);
166 UpdateBorder();
167 SchedulePaint();
168 } 154 }
169 155
170 } // namespace autofill 156 } // namespace autofill
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698