Home | History | Annotate | Download | only in login
      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 
     22 TextfieldWithMargin::TextfieldWithMargin() {
     23   CorrectTextfieldFontSize(this);
     24 }
     25 
     26 TextfieldWithMargin::TextfieldWithMargin(views::Textfield::StyleFlags style)
     27     : Textfield(style) {
     28   CorrectTextfieldFontSize(this);
     29 }
     30 
     31 void TextfieldWithMargin::Layout() {
     32   int margin = GetPreferredSize().height() * kTextMarginRate;
     33   SetHorizontalMargins(margin, margin);
     34   SetVerticalMargins(kVerticalMargin, kVerticalMargin);
     35   views::Textfield::Layout();
     36 }
     37 
     38 bool 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