OLD | NEW |
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_win.h" | 5 #include "ui/gfx/render_text_win.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/i18n/rtl.h" | 10 #include "base/i18n/rtl.h" |
(...skipping 519 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
530 ApplyCompositionAndSelectionStyles(); | 530 ApplyCompositionAndSelectionStyles(); |
531 | 531 |
532 // Build the list of runs from the script items and ranged colors/styles. | 532 // Build the list of runs from the script items and ranged colors/styles. |
533 // TODO(msw): Only break for bold/italic, not color etc. See TextRun comment. | 533 // TODO(msw): Only break for bold/italic, not color etc. See TextRun comment. |
534 internal::StyleIterator style(colors(), styles()); | 534 internal::StyleIterator style(colors(), styles()); |
535 SCRIPT_ITEM* script_item = &script_items[0]; | 535 SCRIPT_ITEM* script_item = &script_items[0]; |
536 const size_t max_run_length = kMaxGlyphs / 2; | 536 const size_t max_run_length = kMaxGlyphs / 2; |
537 for (size_t run_break = 0; run_break < layout_text_length;) { | 537 for (size_t run_break = 0; run_break < layout_text_length;) { |
538 internal::TextRun* run = new internal::TextRun(); | 538 internal::TextRun* run = new internal::TextRun(); |
539 run->range.set_start(run_break); | 539 run->range.set_start(run_break); |
540 run->font = GetFont(); | 540 run->font = GetPrimaryFont(); |
541 run->font_style = (style.style(BOLD) ? Font::BOLD : 0) | | 541 run->font_style = (style.style(BOLD) ? Font::BOLD : 0) | |
542 (style.style(ITALIC) ? Font::ITALIC : 0); | 542 (style.style(ITALIC) ? Font::ITALIC : 0); |
543 DeriveFontIfNecessary(run->font.GetFontSize(), run->font.GetHeight(), | 543 DeriveFontIfNecessary(run->font.GetFontSize(), run->font.GetHeight(), |
544 run->font_style, &run->font); | 544 run->font_style, &run->font); |
545 run->foreground = style.color(); | 545 run->foreground = style.color(); |
546 run->strike = style.style(STRIKE); | 546 run->strike = style.style(STRIKE); |
547 run->diagonal_strike = style.style(DIAGONAL_STRIKE); | 547 run->diagonal_strike = style.style(DIAGONAL_STRIKE); |
548 run->underline = style.style(UNDERLINE); | 548 run->underline = style.style(UNDERLINE); |
549 run->script_analysis = script_item->a; | 549 run->script_analysis = script_item->a; |
550 | 550 |
(...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
841 size_t position = LayoutIndexToTextIndex(run->range.end()); | 841 size_t position = LayoutIndexToTextIndex(run->range.end()); |
842 position = IndexOfAdjacentGrapheme(position, CURSOR_BACKWARD); | 842 position = IndexOfAdjacentGrapheme(position, CURSOR_BACKWARD); |
843 return SelectionModel(position, CURSOR_FORWARD); | 843 return SelectionModel(position, CURSOR_FORWARD); |
844 } | 844 } |
845 | 845 |
846 RenderText* RenderText::CreateInstance() { | 846 RenderText* RenderText::CreateInstance() { |
847 return new RenderTextWin; | 847 return new RenderTextWin; |
848 } | 848 } |
849 | 849 |
850 } // namespace gfx | 850 } // namespace gfx |
OLD | NEW |