| 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 #ifndef UI_GFX_RENDER_TEXT_H_ | 5 #ifndef UI_GFX_RENDER_TEXT_H_ |
| 6 #define UI_GFX_RENDER_TEXT_H_ | 6 #define UI_GFX_RENDER_TEXT_H_ |
| 7 | 7 |
| 8 #include <algorithm> | 8 #include <algorithm> |
| 9 #include <cstring> | 9 #include <cstring> |
| 10 #include <string> | 10 #include <string> |
| (...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 336 return directionality_mode_; | 336 return directionality_mode_; |
| 337 } | 337 } |
| 338 base::i18n::TextDirection GetTextDirection(); | 338 base::i18n::TextDirection GetTextDirection(); |
| 339 | 339 |
| 340 // Returns the visual movement direction corresponding to the logical end | 340 // Returns the visual movement direction corresponding to the logical end |
| 341 // of the text, considering only the dominant direction returned by | 341 // of the text, considering only the dominant direction returned by |
| 342 // |GetTextDirection()|, not the direction of a particular run. | 342 // |GetTextDirection()|, not the direction of a particular run. |
| 343 VisualCursorDirection GetVisualDirectionOfLogicalEnd(); | 343 VisualCursorDirection GetVisualDirectionOfLogicalEnd(); |
| 344 | 344 |
| 345 // Returns the size required to display the current string (which is the | 345 // Returns the size required to display the current string (which is the |
| 346 // wrapped size in multiline mode). Note that this returns the raw size of the | 346 // wrapped size in multiline mode). The returned size does not include space |
| 347 // string, which does not include the cursor or the margin area of text | 347 // reserved for the cursor or the offset text shadows. |
| 348 // shadows. | |
| 349 virtual Size GetStringSize() = 0; | 348 virtual Size GetStringSize() = 0; |
| 350 | 349 |
| 351 // This is same as GetStringSize except that fractional size is returned. | 350 // This is same as GetStringSize except that fractional size is returned. |
| 352 // The default implementation is same as GetStringSize. Certain platforms that | 351 // The default implementation is same as GetStringSize. Certain platforms that |
| 353 // compute the text size as floating-point values, like Mac, will override | 352 // compute the text size as floating-point values, like Mac, will override |
| 354 // this method. | 353 // this method. |
| 355 // See comment in Canvas::GetStringWidthF for its usage. | 354 // See comment in Canvas::GetStringWidthF for its usage. |
| 356 virtual SizeF GetStringSizeF(); | 355 virtual SizeF GetStringSizeF(); |
| 357 | 356 |
| 358 // Returns the width of the content (which is the wrapped width in multiline | 357 // Returns the width of the content (which is the wrapped width in multiline |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 401 // out of that range). Always moves by at least one character index unless the | 400 // out of that range). Always moves by at least one character index unless the |
| 402 // supplied index is already at the boundary of the string. | 401 // supplied index is already at the boundary of the string. |
| 403 size_t IndexOfAdjacentGrapheme(size_t index, | 402 size_t IndexOfAdjacentGrapheme(size_t index, |
| 404 LogicalCursorDirection direction); | 403 LogicalCursorDirection direction); |
| 405 | 404 |
| 406 // Return a SelectionModel with the cursor at the current selection's start. | 405 // Return a SelectionModel with the cursor at the current selection's start. |
| 407 // The returned value represents a cursor/caret position without a selection. | 406 // The returned value represents a cursor/caret position without a selection. |
| 408 SelectionModel GetSelectionModelForSelectionStart(); | 407 SelectionModel GetSelectionModelForSelectionStart(); |
| 409 | 408 |
| 410 // Sets shadows to drawn with text. | 409 // Sets shadows to drawn with text. |
| 411 void SetTextShadows(const ShadowValues& shadows); | 410 void set_shadows(const ShadowValues& shadows) { shadows_ = shadows; } |
| 412 | 411 |
| 413 typedef std::pair<Font, Range> FontSpan; | 412 typedef std::pair<Font, Range> FontSpan; |
| 414 // For testing purposes, returns which fonts were chosen for which parts of | 413 // For testing purposes, returns which fonts were chosen for which parts of |
| 415 // the text by returning a vector of Font and Range pairs, where each range | 414 // the text by returning a vector of Font and Range pairs, where each range |
| 416 // specifies the character range for which the corresponding font has been | 415 // specifies the character range for which the corresponding font has been |
| 417 // chosen. | 416 // chosen. |
| 418 virtual std::vector<FontSpan> GetFontSpansForTesting() = 0; | 417 virtual std::vector<FontSpan> GetFontSpansForTesting() = 0; |
| 419 | 418 |
| 420 // Gets the horizontal bounds (relative to the left of the text, not the view) | 419 // Gets the horizontal bounds (relative to the left of the text, not the view) |
| 421 // of the glyph starting at |index|. If the glyph is RTL then the returned | 420 // of the glyph starting at |index|. If the glyph is RTL then the returned |
| (...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 687 // The baseline of the text. This is determined from the height of the | 686 // The baseline of the text. This is determined from the height of the |
| 688 // display area and the cap height of the font list so the text is vertically | 687 // display area and the cap height of the font list so the text is vertically |
| 689 // centered. | 688 // centered. |
| 690 int baseline_; | 689 int baseline_; |
| 691 | 690 |
| 692 // The cached bounds and offset are invalidated by changes to the cursor, | 691 // The cached bounds and offset are invalidated by changes to the cursor, |
| 693 // selection, font, and other operations that adjust the visible text bounds. | 692 // selection, font, and other operations that adjust the visible text bounds. |
| 694 bool cached_bounds_and_offset_valid_; | 693 bool cached_bounds_and_offset_valid_; |
| 695 | 694 |
| 696 // Text shadows to be drawn. | 695 // Text shadows to be drawn. |
| 697 ShadowValues text_shadows_; | 696 ShadowValues shadows_; |
| 698 | 697 |
| 699 // A list of valid layout text line break positions. | 698 // A list of valid layout text line break positions. |
| 700 BreakList<size_t> line_breaks_; | 699 BreakList<size_t> line_breaks_; |
| 701 | 700 |
| 702 // Lines computed by EnsureLayout. These should be invalidated with | 701 // Lines computed by EnsureLayout. These should be invalidated with |
| 703 // ResetLayout and on |display_rect_| changes. | 702 // ResetLayout and on |display_rect_| changes. |
| 704 std::vector<internal::Line> lines_; | 703 std::vector<internal::Line> lines_; |
| 705 | 704 |
| 706 DISALLOW_COPY_AND_ASSIGN(RenderText); | 705 DISALLOW_COPY_AND_ASSIGN(RenderText); |
| 707 }; | 706 }; |
| 708 | 707 |
| 709 } // namespace gfx | 708 } // namespace gfx |
| 710 | 709 |
| 711 #endif // UI_GFX_RENDER_TEXT_H_ | 710 #endif // UI_GFX_RENDER_TEXT_H_ |
| OLD | NEW |