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

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

Issue 2348143003: MacViews: Implement Force Touch/Mac dictionary lookup for Textfields. (Closed)
Patch Set: --- Created 4 years, 3 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
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 #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 <stddef.h> 8 #include <stddef.h>
9 #include <stdint.h> 9 #include <stdint.h>
10 10
(...skipping 479 matching lines...) Expand 10 before | Expand all | Expand 10 after
490 // Rect can't have a negative width.) 490 // Rect can't have a negative width.)
491 virtual Range GetGlyphBounds(size_t index) = 0; 491 virtual Range GetGlyphBounds(size_t index) = 0;
492 492
493 const Vector2d& GetUpdatedDisplayOffset(); 493 const Vector2d& GetUpdatedDisplayOffset();
494 void SetDisplayOffset(int horizontal_offset); 494 void SetDisplayOffset(int horizontal_offset);
495 495
496 // Returns the line offset from the origin after applying the text alignment 496 // Returns the line offset from the origin after applying the text alignment
497 // and the display offset. 497 // and the display offset.
498 Vector2d GetLineOffset(size_t line_number); 498 Vector2d GetLineOffset(size_t line_number);
499 499
500 // Retreives the |word| displayed at the given |point|. |point| is in the
501 // view's coordinates. If no word is displayed at the point, returns a nearby
502 // word. |baseline_point| should correspond to the left baseline point of the
503 // leftmost glyph of the |word| in the view's coordinates. Returns false, if
504 // no word can be retreived.
505 bool GetWordAtPoint(const Point& point,
506 NativeStyledString word,
507 Point* baseline_point);
508
509 // Retreives the text in the given |range|.
510 base::string16 GetTextFromRange(Range range) const;
511
500 protected: 512 protected:
501 RenderText(); 513 RenderText();
502 514
503 // NOTE: The value of these accessors may be stale. Please make sure 515 // NOTE: The value of these accessors may be stale. Please make sure
504 // that these fields are up to date before accessing them. 516 // that these fields are up to date before accessing them.
505 const base::string16& layout_text() const { return layout_text_; } 517 const base::string16& layout_text() const { return layout_text_; }
506 const base::string16& display_text() const { return display_text_; } 518 const base::string16& display_text() const { return display_text_; }
507 bool text_elided() const { return text_elided_; } 519 bool text_elided() const { return text_elided_; }
508 520
509 const BreakList<SkColor>& colors() const { return colors_; } 521 const BreakList<SkColor>& colors() const { return colors_; }
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
706 // Elides |email| as needed to fit the |available_width|. 718 // Elides |email| as needed to fit the |available_width|.
707 base::string16 ElideEmail(const base::string16& email, float available_width); 719 base::string16 ElideEmail(const base::string16& email, float available_width);
708 720
709 // Update the cached bounds and display offset to ensure that the current 721 // Update the cached bounds and display offset to ensure that the current
710 // cursor is within the visible display area. 722 // cursor is within the visible display area.
711 void UpdateCachedBoundsAndOffset(); 723 void UpdateCachedBoundsAndOffset();
712 724
713 // Draw the selection. 725 // Draw the selection.
714 void DrawSelection(Canvas* canvas); 726 void DrawSelection(Canvas* canvas);
715 727
728 // Returns the nearest word start boundary for |index|. First searches in
729 // CURSOR_BACKWARD direction, then in CURSOR_FORWARD direction. Returns
730 // text length if no valid boundary is found.
731 size_t GetNearestWordStartBoundary(size_t index) const;
732
733 // Expands |range| to it's nearest word boundaries and returns the resulting
tapted 2016/09/21 04:06:55 nit: it's -> its
karandeepb 2016/09/22 08:17:39 Done.
734 // range. Maintains directionality of |range|.
735 Range ExpandRangeToWordBoundary(const Range& range) const;
736
737 // Returns the styled string corresponding to |range|. Returns false if the
738 // string cannot be retreived, e.g. if the text is obscured.
739 virtual bool GetStyledStringForRange(const Range& range,
tapted 2016/09/21 04:06:55 this should be in protected: - private virtuals do
karandeepb 2016/09/22 08:17:39 Shouldn't private virtual functions be preferred,
740 NativeStyledString str) const = 0;
741
716 // Logical UTF-16 string data to be drawn. 742 // Logical UTF-16 string data to be drawn.
717 base::string16 text_; 743 base::string16 text_;
718 744
719 // Horizontal alignment of the text with respect to |display_rect_|. The 745 // Horizontal alignment of the text with respect to |display_rect_|. The
720 // default is to align left if the application UI is LTR and right if RTL. 746 // default is to align left if the application UI is LTR and right if RTL.
721 HorizontalAlignment horizontal_alignment_; 747 HorizontalAlignment horizontal_alignment_;
722 748
723 // The text directionality mode, defaults to DIRECTIONALITY_FROM_TEXT. 749 // The text directionality mode, defaults to DIRECTIONALITY_FROM_TEXT.
724 DirectionalityMode directionality_mode_; 750 DirectionalityMode directionality_mode_;
725 751
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
850 // Lines computed by EnsureLayout. These should be invalidated upon 876 // Lines computed by EnsureLayout. These should be invalidated upon
851 // OnLayoutTextAttributeChanged and OnDisplayTextAttributeChanged calls. 877 // OnLayoutTextAttributeChanged and OnDisplayTextAttributeChanged calls.
852 std::vector<internal::Line> lines_; 878 std::vector<internal::Line> lines_;
853 879
854 DISALLOW_COPY_AND_ASSIGN(RenderText); 880 DISALLOW_COPY_AND_ASSIGN(RenderText);
855 }; 881 };
856 882
857 } // namespace gfx 883 } // namespace gfx
858 884
859 #endif // UI_GFX_RENDER_TEXT_H_ 885 #endif // UI_GFX_RENDER_TEXT_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698