Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 #ifndef UI_GFX_RENDER_TEXT_HARFBUZZ_H_ | 5 #ifndef UI_GFX_RENDER_TEXT_HARFBUZZ_H_ |
| 6 #define UI_GFX_RENDER_TEXT_HARFBUZZ_H_ | 6 #define UI_GFX_RENDER_TEXT_HARFBUZZ_H_ |
| 7 | 7 |
| 8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
| 9 #include "base/memory/scoped_vector.h" | 9 #include "base/memory/scoped_vector.h" |
| 10 #include "third_party/harfbuzz-ng/src/hb.h" | 10 #include "third_party/harfbuzz-ng/src/hb.h" |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 22 | 22 |
| 23 // Returns the index of the first glyph that corresponds to the character at | 23 // Returns the index of the first glyph that corresponds to the character at |
| 24 // |pos|. | 24 // |pos|. |
| 25 size_t CharToGlyph(size_t pos) const; | 25 size_t CharToGlyph(size_t pos) const; |
| 26 | 26 |
| 27 // Returns the corresponding glyph range of the given character range. | 27 // Returns the corresponding glyph range of the given character range. |
| 28 // |range| is in text-space (0 corresponds to |GetLayoutText()[0]|). Returned | 28 // |range| is in text-space (0 corresponds to |GetLayoutText()[0]|). Returned |
| 29 // value is in run-space (0 corresponds to the first glyph in the run). | 29 // value is in run-space (0 corresponds to the first glyph in the run). |
| 30 Range CharRangeToGlyphRange(const Range& range) const; | 30 Range CharRangeToGlyphRange(const Range& range) const; |
| 31 | 31 |
| 32 // Returns whether the given shaped run contains any missing glyphs. | 32 // Returns the number of missing glyphs in the shaped text run. |
| 33 bool HasMissingGlyphs() const; | 33 size_t CountMissingGlyphs() const; |
| 34 | 34 |
| 35 // Returns the X coordinate of the leading or |trailing| edge of the glyph | 35 // Returns the X coordinate of the leading or |trailing| edge of the glyph |
| 36 // starting at |text_index|, relative to the left of the text (not the view). | 36 // starting at |text_index|, relative to the left of the text (not the view). |
| 37 int GetGlyphXBoundary(size_t text_index, bool trailing) const; | 37 int GetGlyphXBoundary(size_t text_index, bool trailing) const; |
| 38 | 38 |
| 39 int width; | 39 int width; |
| 40 int preceding_run_widths; | 40 int preceding_run_widths; |
| 41 Range range; | 41 Range range; |
| 42 bool is_rtl; | 42 bool is_rtl; |
| 43 UBiDiLevel level; | 43 UBiDiLevel level; |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 105 SelectionModel FirstSelectionModelInsideRun( | 105 SelectionModel FirstSelectionModelInsideRun( |
| 106 const internal::TextRunHarfBuzz* run); | 106 const internal::TextRunHarfBuzz* run); |
| 107 SelectionModel LastSelectionModelInsideRun( | 107 SelectionModel LastSelectionModelInsideRun( |
| 108 const internal::TextRunHarfBuzz* run); | 108 const internal::TextRunHarfBuzz* run); |
| 109 | 109 |
| 110 // Break the text into logical runs and populate the visual <-> logical maps. | 110 // Break the text into logical runs and populate the visual <-> logical maps. |
| 111 void ItemizeText(); | 111 void ItemizeText(); |
| 112 | 112 |
| 113 // Shape the glyphs needed for the text |run|. | 113 // Shape the glyphs needed for the text |run|. |
| 114 void ShapeRun(internal::TextRunHarfBuzz* run); | 114 void ShapeRun(internal::TextRunHarfBuzz* run); |
| 115 void ShapeRunWithFont(internal::TextRunHarfBuzz* run, std::string font); | |
|
Daniel Erat
2014/07/14 14:58:20
const std::string&
ckocagil
2014/07/16 23:42:22
Done.
| |
| 115 | 116 |
| 116 // Text runs in logical order. | 117 // Text runs in logical order. |
| 117 ScopedVector<internal::TextRunHarfBuzz> runs_; | 118 ScopedVector<internal::TextRunHarfBuzz> runs_; |
| 118 | 119 |
| 119 // Maps visual run indices to logical run indices and vice versa. | 120 // Maps visual run indices to logical run indices and vice versa. |
| 120 std::vector<int32_t> visual_to_logical_; | 121 std::vector<int32_t> visual_to_logical_; |
| 121 std::vector<int32_t> logical_to_visual_; | 122 std::vector<int32_t> logical_to_visual_; |
| 122 | 123 |
| 123 bool needs_layout_; | 124 bool needs_layout_; |
| 124 | 125 |
| 125 DISALLOW_COPY_AND_ASSIGN(RenderTextHarfBuzz); | 126 DISALLOW_COPY_AND_ASSIGN(RenderTextHarfBuzz); |
| 126 }; | 127 }; |
| 127 | 128 |
| 128 } // namespace gfx | 129 } // namespace gfx |
| 129 | 130 |
| 130 #endif // UI_GFX_RENDER_TEXT_HARFBUZZ_H_ | 131 #endif // UI_GFX_RENDER_TEXT_HARFBUZZ_H_ |
| OLD | NEW |