| 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 #pragma once | 7 #pragma once |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 149 | 149 |
| 150 SkColor cursor_color() const { return cursor_color_; } | 150 SkColor cursor_color() const { return cursor_color_; } |
| 151 void set_cursor_color(SkColor color) { cursor_color_ = color; } | 151 void set_cursor_color(SkColor color) { cursor_color_ = color; } |
| 152 | 152 |
| 153 bool focused() const { return focused_; } | 153 bool focused() const { return focused_; } |
| 154 void set_focused(bool focused) { focused_ = focused; } | 154 void set_focused(bool focused) { focused_ = focused; } |
| 155 | 155 |
| 156 const StyleRange& default_style() const { return default_style_; } | 156 const StyleRange& default_style() const { return default_style_; } |
| 157 void set_default_style(const StyleRange& style) { default_style_ = style; } | 157 void set_default_style(const StyleRange& style) { default_style_ = style; } |
| 158 | 158 |
| 159 // In an obscured (password) field, all text is drawn as asterisks or bullets. |
| 160 bool is_obscured() const { return obscured_; } |
| 161 void SetObscured(bool obscured); |
| 162 |
| 159 const Rect& display_rect() const { return display_rect_; } | 163 const Rect& display_rect() const { return display_rect_; } |
| 160 void SetDisplayRect(const Rect& r); | 164 void SetDisplayRect(const Rect& r); |
| 161 | 165 |
| 162 void set_fade_head(bool fade_head) { fade_head_ = fade_head; } | 166 void set_fade_head(bool fade_head) { fade_head_ = fade_head; } |
| 163 bool fade_head() const { return fade_head_; } | 167 bool fade_head() const { return fade_head_; } |
| 164 void set_fade_tail(bool fade_tail) { fade_tail_ = fade_tail; } | 168 void set_fade_tail(bool fade_tail) { fade_tail_ = fade_tail; } |
| 165 bool fade_tail() const { return fade_tail_; } | 169 bool fade_tail() const { return fade_tail_; } |
| 166 | 170 |
| 167 bool background_is_transparent() const { return background_is_transparent_; } | 171 bool background_is_transparent() const { return background_is_transparent_; } |
| 168 void set_background_is_transparent(bool transparent) { | 172 void set_background_is_transparent(bool transparent) { |
| (...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 327 // Update the layout so that the next draw request can correctly | 331 // Update the layout so that the next draw request can correctly |
| 328 // render the text and its attributes. | 332 // render the text and its attributes. |
| 329 virtual void UpdateLayout() = 0; | 333 virtual void UpdateLayout() = 0; |
| 330 | 334 |
| 331 // Ensure the text is laid out. | 335 // Ensure the text is laid out. |
| 332 virtual void EnsureLayout() = 0; | 336 virtual void EnsureLayout() = 0; |
| 333 | 337 |
| 334 // Draw the text. | 338 // Draw the text. |
| 335 virtual void DrawVisualText(Canvas* canvas) = 0; | 339 virtual void DrawVisualText(Canvas* canvas) = 0; |
| 336 | 340 |
| 341 // Like text() except that it returns asterisks or bullets if this is an |
| 342 // obscured field. |
| 343 string16 GetDisplayText() const; |
| 344 |
| 337 // Apply composition style (underline) to composition range and selection | 345 // Apply composition style (underline) to composition range and selection |
| 338 // style (foreground) to selection range. | 346 // style (foreground) to selection range. |
| 339 void ApplyCompositionAndSelectionStyles(StyleRanges* style_ranges); | 347 void ApplyCompositionAndSelectionStyles(StyleRanges* style_ranges); |
| 340 | 348 |
| 341 // Returns the text origin after applying text alignment and display offset. | 349 // Returns the text origin after applying text alignment and display offset. |
| 342 Point GetTextOrigin(); | 350 Point GetTextOrigin(); |
| 343 | 351 |
| 344 // Convert points from the text space to the view space and back. | 352 // Convert points from the text space to the view space and back. |
| 345 // Handles the display area, display offset, and the application LTR/RTL mode. | 353 // Handles the display area, display offset, and the application LTR/RTL mode. |
| 346 Point ToTextPoint(const Point& point); | 354 Point ToTextPoint(const Point& point); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 359 // Applies fade effects to |renderer|. | 367 // Applies fade effects to |renderer|. |
| 360 void ApplyFadeEffects(internal::SkiaTextRenderer* renderer); | 368 void ApplyFadeEffects(internal::SkiaTextRenderer* renderer); |
| 361 | 369 |
| 362 private: | 370 private: |
| 363 friend class RenderTextTest; | 371 friend class RenderTextTest; |
| 364 | 372 |
| 365 FRIEND_TEST_ALL_PREFIXES(RenderTextTest, DefaultStyle); | 373 FRIEND_TEST_ALL_PREFIXES(RenderTextTest, DefaultStyle); |
| 366 FRIEND_TEST_ALL_PREFIXES(RenderTextTest, CustomDefaultStyle); | 374 FRIEND_TEST_ALL_PREFIXES(RenderTextTest, CustomDefaultStyle); |
| 367 FRIEND_TEST_ALL_PREFIXES(RenderTextTest, ApplyStyleRange); | 375 FRIEND_TEST_ALL_PREFIXES(RenderTextTest, ApplyStyleRange); |
| 368 FRIEND_TEST_ALL_PREFIXES(RenderTextTest, StyleRangesAdjust); | 376 FRIEND_TEST_ALL_PREFIXES(RenderTextTest, StyleRangesAdjust); |
| 377 FRIEND_TEST_ALL_PREFIXES(RenderTextTest, PasswordCensorship); |
| 369 FRIEND_TEST_ALL_PREFIXES(RenderTextTest, GraphemePositions); | 378 FRIEND_TEST_ALL_PREFIXES(RenderTextTest, GraphemePositions); |
| 370 FRIEND_TEST_ALL_PREFIXES(RenderTextTest, SelectionModels); | 379 FRIEND_TEST_ALL_PREFIXES(RenderTextTest, SelectionModels); |
| 371 FRIEND_TEST_ALL_PREFIXES(RenderTextTest, OriginForSkiaDrawing); | 380 FRIEND_TEST_ALL_PREFIXES(RenderTextTest, OriginForSkiaDrawing); |
| 372 | 381 |
| 373 // Set the cursor to |position|, with the caret trailing the previous | 382 // Set the cursor to |position|, with the caret trailing the previous |
| 374 // grapheme, or if there is no previous grapheme, leading the cursor position. | 383 // grapheme, or if there is no previous grapheme, leading the cursor position. |
| 375 // If |select| is false, the selection start is moved to the same position. | 384 // If |select| is false, the selection start is moved to the same position. |
| 376 // If the |position| is not a cursorable position (not on grapheme boundary), | 385 // If the |position| is not a cursorable position (not on grapheme boundary), |
| 377 // it is a NO-OP. | 386 // it is a NO-OP. |
| 378 void MoveCursorTo(size_t position, bool select); | 387 void MoveCursorTo(size_t position, bool select); |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 415 bool focused_; | 424 bool focused_; |
| 416 | 425 |
| 417 // Composition text range. | 426 // Composition text range. |
| 418 ui::Range composition_range_; | 427 ui::Range composition_range_; |
| 419 | 428 |
| 420 // List of style ranges. Elements in the list never overlap each other. | 429 // List of style ranges. Elements in the list never overlap each other. |
| 421 StyleRanges style_ranges_; | 430 StyleRanges style_ranges_; |
| 422 // The default text style. | 431 // The default text style. |
| 423 StyleRange default_style_; | 432 StyleRange default_style_; |
| 424 | 433 |
| 434 // True if this is an obscured (password) field. |
| 435 bool obscured_; |
| 436 |
| 425 // Fade text head and/or tail, if text doesn't fit into |display_rect_|. | 437 // Fade text head and/or tail, if text doesn't fit into |display_rect_|. |
| 426 bool fade_head_; | 438 bool fade_head_; |
| 427 bool fade_tail_; | 439 bool fade_tail_; |
| 428 | 440 |
| 429 // Is the background transparent (either partially or fully)? | 441 // Is the background transparent (either partially or fully)? |
| 430 bool background_is_transparent_; | 442 bool background_is_transparent_; |
| 431 | 443 |
| 432 // The local display area for rendering the text. | 444 // The local display area for rendering the text. |
| 433 Rect display_rect_; | 445 Rect display_rect_; |
| 434 | 446 |
| 435 // The offset for the text to be drawn, relative to the display area. | 447 // The offset for the text to be drawn, relative to the display area. |
| 436 // Get this point with GetUpdatedDisplayOffset (or risk using a stale value). | 448 // Get this point with GetUpdatedDisplayOffset (or risk using a stale value). |
| 437 Point display_offset_; | 449 Point display_offset_; |
| 438 | 450 |
| 439 // The cached bounds and offset are invalidated by changes to the cursor, | 451 // The cached bounds and offset are invalidated by changes to the cursor, |
| 440 // selection, font, and other operations that adjust the visible text bounds. | 452 // selection, font, and other operations that adjust the visible text bounds. |
| 441 bool cached_bounds_and_offset_valid_; | 453 bool cached_bounds_and_offset_valid_; |
| 442 | 454 |
| 443 DISALLOW_COPY_AND_ASSIGN(RenderText); | 455 DISALLOW_COPY_AND_ASSIGN(RenderText); |
| 444 }; | 456 }; |
| 445 | 457 |
| 446 } // namespace gfx | 458 } // namespace gfx |
| 447 | 459 |
| 448 #endif // UI_GFX_RENDER_TEXT_H_ | 460 #endif // UI_GFX_RENDER_TEXT_H_ |
| OLD | NEW |