Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(246)

Side by Side Diff: ui/views/controls/textfield/textfield.cc

Issue 19666006: Supports FontList in Textfield. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ui/views/controls/textfield/textfield.h" 5 #include "ui/views/controls/textfield/textfield.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/strings/string_util.h" 10 #include "base/strings/string_util.h"
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after
263 263
264 bool Textfield::GetCursorEnabled() const { 264 bool Textfield::GetCursorEnabled() const {
265 return native_wrapper_ && native_wrapper_->GetCursorEnabled(); 265 return native_wrapper_ && native_wrapper_->GetCursorEnabled();
266 } 266 }
267 267
268 void Textfield::SetCursorEnabled(bool enabled) { 268 void Textfield::SetCursorEnabled(bool enabled) {
269 if (native_wrapper_) 269 if (native_wrapper_)
270 native_wrapper_->SetCursorEnabled(enabled); 270 native_wrapper_->SetCursorEnabled(enabled);
271 } 271 }
272 272
273 void Textfield::SetFont(const gfx::Font& font) { 273 void Textfield::SetFontList(const gfx::FontList& font_list) {
274 font_ = font; 274 font_list_ = font_list;
275 if (native_wrapper_) 275 if (native_wrapper_)
276 native_wrapper_->UpdateFont(); 276 native_wrapper_->UpdateFont();
277 PreferredSizeChanged(); 277 PreferredSizeChanged();
278 } 278 }
279 279
280 const gfx::Font& Textfield::GetPrimaryFont() const {
281 return font_list_.GetPrimaryFont();
282 }
283
284 void Textfield::SetFont(const gfx::Font& font) {
285 SetFontList(gfx::FontList(font));
286 }
287
280 void Textfield::SetHorizontalMargins(int left, int right) { 288 void Textfield::SetHorizontalMargins(int left, int right) {
281 margins_.Set(margins_.top(), left, margins_.bottom(), right); 289 margins_.Set(margins_.top(), left, margins_.bottom(), right);
282 horizontal_margins_were_set_ = true; 290 horizontal_margins_were_set_ = true;
283 if (native_wrapper_) 291 if (native_wrapper_)
284 native_wrapper_->UpdateHorizontalMargins(); 292 native_wrapper_->UpdateHorizontalMargins();
285 PreferredSizeChanged(); 293 PreferredSizeChanged();
286 } 294 }
287 295
288 void Textfield::SetVerticalMargins(int top, int bottom) { 296 void Textfield::SetVerticalMargins(int top, int bottom) {
289 margins_.Set(top, margins_.left(), bottom, margins_.right()); 297 margins_.Set(top, margins_.left(), bottom, margins_.right());
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
417 void Textfield::Layout() { 425 void Textfield::Layout() {
418 if (native_wrapper_) { 426 if (native_wrapper_) {
419 native_wrapper_->GetView()->SetBoundsRect(GetContentsBounds()); 427 native_wrapper_->GetView()->SetBoundsRect(GetContentsBounds());
420 native_wrapper_->GetView()->Layout(); 428 native_wrapper_->GetView()->Layout();
421 } 429 }
422 } 430 }
423 431
424 int Textfield::GetBaseline() const { 432 int Textfield::GetBaseline() const {
425 gfx::Insets insets = GetTextInsets(); 433 gfx::Insets insets = GetTextInsets();
426 const int baseline = native_wrapper_ ? 434 const int baseline = native_wrapper_ ?
427 native_wrapper_->GetTextfieldBaseline() : font_.GetBaseline(); 435 native_wrapper_->GetTextfieldBaseline() : font_list_.GetBaseline();
428 return insets.top() + baseline; 436 return insets.top() + baseline;
429 } 437 }
430 438
431 gfx::Size Textfield::GetPreferredSize() { 439 gfx::Size Textfield::GetPreferredSize() {
432 gfx::Insets insets = GetTextInsets(); 440 gfx::Insets insets = GetTextInsets();
433 441
434 // For NativeTextfieldViews, we might use a pre-defined font list (defined in 442 // For NativeTextfieldViews, we might use a pre-defined font list (defined in
msw 2013/07/23 19:51:54 Does this comment need updating?
Yuki 2013/07/24 09:17:05 I simply deleted the comment. We no longer need i
435 // IDS_UI_FONT_FAMILY_CROS) as the fonts to render text. The fonts in the 443 // IDS_UI_FONT_FAMILY_CROS) as the fonts to render text. The fonts in the
436 // list might be different (in name or in size) from |font_|, so we need to 444 // list might be different (in name or in size) from |font_|, so we need to
437 // use GetFontHeight() to get the height of the first font in the list to 445 // use GetFontHeight() to get the height of the first font in the list to
438 // guide textfield's height. 446 // guide textfield's height.
439 const int font_height = native_wrapper_ ? native_wrapper_->GetFontHeight() : 447 const int font_height = native_wrapper_ ? native_wrapper_->GetFontHeight() :
440 font_.GetHeight(); 448 font_list_.GetHeight();
441 return gfx::Size(font_.GetExpectedTextWidth(default_width_in_chars_) + 449 return gfx::Size(
442 insets.width(), font_height + insets.height()); 450 GetPrimaryFont().GetExpectedTextWidth(default_width_in_chars_)
451 + insets.width(),
452 font_height + insets.height());
443 } 453 }
444 454
445 void Textfield::AboutToRequestFocusFromTabTraversal(bool reverse) { 455 void Textfield::AboutToRequestFocusFromTabTraversal(bool reverse) {
446 SelectAll(false); 456 SelectAll(false);
447 } 457 }
448 458
449 bool Textfield::SkipDefaultKeyEventProcessing(const ui::KeyEvent& e) { 459 bool Textfield::SkipDefaultKeyEventProcessing(const ui::KeyEvent& e) {
450 // Skip any accelerator handling of backspace; textfields handle this key. 460 // Skip any accelerator handling of backspace; textfields handle this key.
451 // Also skip processing of [Alt]+<num-pad digit> Unicode alt key codes. 461 // Also skip processing of [Alt]+<num-pad digit> Unicode alt key codes.
452 return e.key_code() == ui::VKEY_BACK || e.IsUnicodeKeyCode(); 462 return e.key_code() == ui::VKEY_BACK || e.IsUnicodeKeyCode();
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
556 NativeTextfieldWrapper* NativeTextfieldWrapper::CreateWrapper( 566 NativeTextfieldWrapper* NativeTextfieldWrapper::CreateWrapper(
557 Textfield* field) { 567 Textfield* field) {
558 #if defined(OS_WIN) && !defined(USE_AURA) 568 #if defined(OS_WIN) && !defined(USE_AURA)
559 if (!Textfield::IsViewsTextfieldEnabled()) 569 if (!Textfield::IsViewsTextfieldEnabled())
560 return new NativeTextfieldWin(field); 570 return new NativeTextfieldWin(field);
561 #endif 571 #endif
562 return new NativeTextfieldViews(field); 572 return new NativeTextfieldViews(field);
563 } 573 }
564 574
565 } // namespace views 575 } // namespace views
OLDNEW
« ui/gfx/render_text.h ('K') | « ui/views/controls/textfield/textfield.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698