• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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()22 TextfieldWithMargin::TextfieldWithMargin() {
23   CorrectTextfieldFontSize(this);
24 }
25 
TextfieldWithMargin(views::Textfield::StyleFlags style)26 TextfieldWithMargin::TextfieldWithMargin(views::Textfield::StyleFlags style)
27     : Textfield(style) {
28   CorrectTextfieldFontSize(this);
29 }
30 
Layout()31 void 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)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