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 10namespace { 11 12// Holds ratio of the margin to the preferred text height. 13const double kTextMarginRate = 0.33; 14 15// Size of each vertical margin (top, bottom). 16const int kVerticalMargin = 3; 17 18} // namespace 19 20namespace chromeos { 21 22TextfieldWithMargin::TextfieldWithMargin() { 23 CorrectTextfieldFontSize(this); 24} 25 26TextfieldWithMargin::TextfieldWithMargin(views::Textfield::StyleFlags style) 27 : Textfield(style) { 28 CorrectTextfieldFontSize(this); 29} 30 31void TextfieldWithMargin::Layout() { 32 int margin = GetPreferredSize().height() * kTextMarginRate; 33 SetHorizontalMargins(margin, margin); 34 SetVerticalMargins(kVerticalMargin, kVerticalMargin); 35 views::Textfield::Layout(); 36} 37 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