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

Side by Side Diff: ui/gfx/render_text.cc

Issue 19666006: Supports FontList in Textfield. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Removes ResourceBundle::Delegate::GetFontList. Created 7 years, 4 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/gfx/render_text.h" 5 #include "ui/gfx/render_text.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/i18n/break_iterator.h" 9 #include "base/i18n/break_iterator.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 342 matching lines...) Expand 10 before | Expand all | Expand 10 after
353 } 353 }
354 354
355 void RenderText::SetFont(const Font& font) { 355 void RenderText::SetFont(const Font& font) {
356 SetFontList(FontList(font)); 356 SetFontList(FontList(font));
357 } 357 }
358 358
359 void RenderText::SetFontSize(int size) { 359 void RenderText::SetFontSize(int size) {
360 SetFontList(font_list_.DeriveFontListWithSize(size)); 360 SetFontList(font_list_.DeriveFontListWithSize(size));
361 } 361 }
362 362
363 const Font& RenderText::GetPrimaryFont() const {
364 return font_list_.GetPrimaryFont();
365 }
366
363 void RenderText::SetCursorEnabled(bool cursor_enabled) { 367 void RenderText::SetCursorEnabled(bool cursor_enabled) {
364 cursor_enabled_ = cursor_enabled; 368 cursor_enabled_ = cursor_enabled;
365 cached_bounds_and_offset_valid_ = false; 369 cached_bounds_and_offset_valid_ = false;
366 } 370 }
367 371
368 const Font& RenderText::GetFont() const {
369 return font_list_.GetFonts()[0];
370 }
371
372 void RenderText::ToggleInsertMode() { 372 void RenderText::ToggleInsertMode() {
373 insert_mode_ = !insert_mode_; 373 insert_mode_ = !insert_mode_;
374 cached_bounds_and_offset_valid_ = false; 374 cached_bounds_and_offset_valid_ = false;
375 } 375 }
376 376
377 void RenderText::SetObscured(bool obscured) { 377 void RenderText::SetObscured(bool obscured) {
378 if (obscured != obscured_) { 378 if (obscured != obscured_) {
379 obscured_ = obscured; 379 obscured_ = obscured;
380 obscured_reveal_index_ = -1; 380 obscured_reveal_index_ = -1;
381 cached_bounds_and_offset_valid_ = false; 381 cached_bounds_and_offset_valid_ = false;
(...skipping 484 matching lines...) Expand 10 before | Expand all | Expand 10 after
866 if (!fade_head() && !fade_tail()) 866 if (!fade_head() && !fade_tail())
867 return; 867 return;
868 868
869 const int text_width = GetStringSize().width(); 869 const int text_width = GetStringSize().width();
870 const int display_width = display_rect().width(); 870 const int display_width = display_rect().width();
871 871
872 // If the text fits as-is, no need to fade. 872 // If the text fits as-is, no need to fade.
873 if (text_width <= display_width) 873 if (text_width <= display_width)
874 return; 874 return;
875 875
876 int gradient_width = CalculateFadeGradientWidth(GetFont(), display_width); 876 int gradient_width = CalculateFadeGradientWidth(GetPrimaryFont(),
877 display_width);
877 if (gradient_width == 0) 878 if (gradient_width == 0)
878 return; 879 return;
879 880
880 bool fade_left = fade_head(); 881 bool fade_left = fade_head();
881 bool fade_right = fade_tail(); 882 bool fade_right = fade_tail();
882 // Under RTL, |fade_right| == |fade_head|. 883 // Under RTL, |fade_right| == |fade_head|.
883 // TODO(asvitkine): This is currently not based on GetTextDirection() because 884 // TODO(asvitkine): This is currently not based on GetTextDirection() because
884 // RenderTextWin does not return a direction that's based on 885 // RenderTextWin does not return a direction that's based on
885 // the text content. 886 // the text content.
886 if (horizontal_alignment_ == ALIGN_RIGHT) 887 if (horizontal_alignment_ == ALIGN_RIGHT)
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
1014 cursor_bounds_ += delta_offset; 1015 cursor_bounds_ += delta_offset;
1015 } 1016 }
1016 1017
1017 void RenderText::DrawSelection(Canvas* canvas) { 1018 void RenderText::DrawSelection(Canvas* canvas) {
1018 const std::vector<Rect> sel = GetSubstringBounds(selection()); 1019 const std::vector<Rect> sel = GetSubstringBounds(selection());
1019 for (std::vector<Rect>::const_iterator i = sel.begin(); i < sel.end(); ++i) 1020 for (std::vector<Rect>::const_iterator i = sel.begin(); i < sel.end(); ++i)
1020 canvas->FillRect(*i, selection_background_focused_color_); 1021 canvas->FillRect(*i, selection_background_focused_color_);
1021 } 1022 }
1022 1023
1023 } // namespace gfx 1024 } // namespace gfx
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698