1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "chrome/browser/chromeos/login/textfield_with_margin.h" 6 7 #include "chrome/browser/chromeos/login/helper.h" 8 #include "ui/base/keycodes/keyboard_codes.h" 9 10 namespace { 11 12 // Holds ratio of the margin to the preferred text height. 13 const double kTextMarginRate = 0.33; 14 15 // Size of each vertical margin (top, bottom). 16 const int kVerticalMargin = 3; 17 18 } // namespace 19 20 namespace chromeos { 21 TextfieldWithMargin()22TextfieldWithMargin::TextfieldWithMargin() { 23 CorrectTextfieldFontSize(this); 24 } 25 TextfieldWithMargin(views::Textfield::StyleFlags style)26TextfieldWithMargin::TextfieldWithMargin(views::Textfield::StyleFlags style) 27 : Textfield(style) { 28 CorrectTextfieldFontSize(this); 29 } 30 Layout()31void TextfieldWithMargin::Layout() { 32 int margin = GetPreferredSize().height() * kTextMarginRate; 33 SetHorizontalMargins(margin, margin); 34 SetVerticalMargins(kVerticalMargin, kVerticalMargin); 35 views::Textfield::Layout(); 36 } 37 OnKeyPressed(const views::KeyEvent & e)38bool TextfieldWithMargin::OnKeyPressed(const views::KeyEvent& e) { 39 if (e.key_code() == ui::VKEY_ESCAPE && !text().empty()) { 40 SetText(string16()); 41 return true; 42 } 43 return false; 44 } 45 46 } // namespace chromeos 47