1513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch// Copyright (c) 2010 The Chromium Authors. All rights reserved. 2513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch// Use of this source code is governed by a BSD-style license that can be 3513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch// found in the LICENSE file. 4513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch 5513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch#include "chrome/browser/chromeos/login/textfield_with_margin.h" 6513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch 721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#include "chrome/browser/chromeos/login/helper.h" 872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include "ui/base/keycodes/keyboard_codes.h" 921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 10513209b27ff55e2841eac0e4120199c23acce758Ben Murdochnamespace { 11513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch 12513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch// Holds ratio of the margin to the preferred text height. 13513209b27ff55e2841eac0e4120199c23acce758Ben Murdochconst double kTextMarginRate = 0.33; 14513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch 15201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch// Size of each vertical margin (top, bottom). 16201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdochconst int kVerticalMargin = 3; 17201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 18513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch} // namespace 19513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch 20513209b27ff55e2841eac0e4120199c23acce758Ben Murdochnamespace chromeos { 21513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch 22201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben MurdochTextfieldWithMargin::TextfieldWithMargin() { 2321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen CorrectTextfieldFontSize(this); 2421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen} 2521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 2621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian MonsenTextfieldWithMargin::TextfieldWithMargin(views::Textfield::StyleFlags style) 2721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen : Textfield(style) { 2821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen CorrectTextfieldFontSize(this); 29201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch} 30201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 31513209b27ff55e2841eac0e4120199c23acce758Ben Murdochvoid TextfieldWithMargin::Layout() { 32513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch int margin = GetPreferredSize().height() * kTextMarginRate; 33513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch SetHorizontalMargins(margin, margin); 34201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch SetVerticalMargins(kVerticalMargin, kVerticalMargin); 35513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch views::Textfield::Layout(); 36513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch} 37513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch 3872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsenbool TextfieldWithMargin::OnKeyPressed(const views::KeyEvent& e) { 3972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen if (e.key_code() == ui::VKEY_ESCAPE && !text().empty()) { 4072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen SetText(string16()); 4172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen return true; 4272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen } 4372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen return false; 4472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen} 4572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen 46513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch} // namespace chromeos 47