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

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

Issue 8747001: Reintroduce password support to NativeTextfieldViews (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: tweak NativeTextfieldViews::ExecuteCommand Created 8 years, 9 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 | Annotate | Revision Log
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 #pragma once 7 #pragma once
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <vector> 10 #include <vector>
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
146 146
147 bool insert_mode() const { return insert_mode_; } 147 bool insert_mode() const { return insert_mode_; }
148 void ToggleInsertMode(); 148 void ToggleInsertMode();
149 149
150 bool focused() const { return focused_; } 150 bool focused() const { return focused_; }
151 void set_focused(bool focused) { focused_ = focused; } 151 void set_focused(bool focused) { focused_ = focused; }
152 152
153 const StyleRange& default_style() const { return default_style_; } 153 const StyleRange& default_style() const { return default_style_; }
154 void set_default_style(const StyleRange& style) { default_style_ = style; } 154 void set_default_style(const StyleRange& style) { default_style_ = style; }
155 155
156 // In an obscured (password) field, all text is drawn as asterisks or bullets.
157 bool is_obscured() const { return obscured_; }
158 void SetObscured(bool obscured);
159
156 const Rect& display_rect() const { return display_rect_; } 160 const Rect& display_rect() const { return display_rect_; }
157 void SetDisplayRect(const Rect& r); 161 void SetDisplayRect(const Rect& r);
158 162
159 void set_fade_head(bool fade_head) { fade_head_ = fade_head; } 163 void set_fade_head(bool fade_head) { fade_head_ = fade_head; }
160 bool fade_head() const { return fade_head_; } 164 bool fade_head() const { return fade_head_; }
161 void set_fade_tail(bool fade_tail) { fade_tail_ = fade_tail; } 165 void set_fade_tail(bool fade_tail) { fade_tail_ = fade_tail; }
162 bool fade_tail() const { return fade_tail_; } 166 bool fade_tail() const { return fade_tail_; }
163 167
164 // This cursor position corresponds to SelectionModel::selection_end. In 168 // This cursor position corresponds to SelectionModel::selection_end. In
165 // addition to representing the selection end, it's also where logical text 169 // addition to representing the selection end, it's also where logical text
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
319 // Update the layout so that the next draw request can correctly 323 // Update the layout so that the next draw request can correctly
320 // render the text and its attributes. 324 // render the text and its attributes.
321 virtual void UpdateLayout() = 0; 325 virtual void UpdateLayout() = 0;
322 326
323 // Ensure the text is laid out. 327 // Ensure the text is laid out.
324 virtual void EnsureLayout() = 0; 328 virtual void EnsureLayout() = 0;
325 329
326 // Draw the text. 330 // Draw the text.
327 virtual void DrawVisualText(Canvas* canvas) = 0; 331 virtual void DrawVisualText(Canvas* canvas) = 0;
328 332
333 // Like text() except that it returns asterisks or bullets if this is an
334 // obscured field.
335 string16 GetDisplayText() const;
336
329 // Apply composition style (underline) to composition range and selection 337 // Apply composition style (underline) to composition range and selection
330 // style (foreground) to selection range. 338 // style (foreground) to selection range.
331 void ApplyCompositionAndSelectionStyles(StyleRanges* style_ranges); 339 void ApplyCompositionAndSelectionStyles(StyleRanges* style_ranges);
332 340
333 // Returns the text origin after applying text alignment and display offset. 341 // Returns the text origin after applying text alignment and display offset.
334 Point GetTextOrigin(); 342 Point GetTextOrigin();
335 343
336 // Convert points from the text space to the view space and back. 344 // Convert points from the text space to the view space and back.
337 // Handles the display area, display offset, and the application LTR/RTL mode. 345 // Handles the display area, display offset, and the application LTR/RTL mode.
338 Point ToTextPoint(const Point& point); 346 Point ToTextPoint(const Point& point);
(...skipping 12 matching lines...) Expand all
351 // Applies fade effects to |renderer|. 359 // Applies fade effects to |renderer|.
352 void ApplyFadeEffects(internal::SkiaTextRenderer* renderer); 360 void ApplyFadeEffects(internal::SkiaTextRenderer* renderer);
353 361
354 private: 362 private:
355 friend class RenderTextTest; 363 friend class RenderTextTest;
356 364
357 FRIEND_TEST_ALL_PREFIXES(RenderTextTest, DefaultStyle); 365 FRIEND_TEST_ALL_PREFIXES(RenderTextTest, DefaultStyle);
358 FRIEND_TEST_ALL_PREFIXES(RenderTextTest, CustomDefaultStyle); 366 FRIEND_TEST_ALL_PREFIXES(RenderTextTest, CustomDefaultStyle);
359 FRIEND_TEST_ALL_PREFIXES(RenderTextTest, ApplyStyleRange); 367 FRIEND_TEST_ALL_PREFIXES(RenderTextTest, ApplyStyleRange);
360 FRIEND_TEST_ALL_PREFIXES(RenderTextTest, StyleRangesAdjust); 368 FRIEND_TEST_ALL_PREFIXES(RenderTextTest, StyleRangesAdjust);
369 FRIEND_TEST_ALL_PREFIXES(RenderTextTest, PasswordCensorship);
361 FRIEND_TEST_ALL_PREFIXES(RenderTextTest, GraphemePositions); 370 FRIEND_TEST_ALL_PREFIXES(RenderTextTest, GraphemePositions);
362 FRIEND_TEST_ALL_PREFIXES(RenderTextTest, SelectionModels); 371 FRIEND_TEST_ALL_PREFIXES(RenderTextTest, SelectionModels);
363 FRIEND_TEST_ALL_PREFIXES(RenderTextTest, OriginForSkiaDrawing); 372 FRIEND_TEST_ALL_PREFIXES(RenderTextTest, OriginForSkiaDrawing);
364 373
365 // Set the cursor to |position|, with the caret trailing the previous 374 // Set the cursor to |position|, with the caret trailing the previous
366 // grapheme, or if there is no previous grapheme, leading the cursor position. 375 // grapheme, or if there is no previous grapheme, leading the cursor position.
367 // If |select| is false, the selection start is moved to the same position. 376 // If |select| is false, the selection start is moved to the same position.
368 // If the |position| is not a cursorable position (not on grapheme boundary), 377 // If the |position| is not a cursorable position (not on grapheme boundary),
369 // it is a NO-OP. 378 // it is a NO-OP.
370 void MoveCursorTo(size_t position, bool select); 379 void MoveCursorTo(size_t position, bool select);
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
404 bool focused_; 413 bool focused_;
405 414
406 // Composition text range. 415 // Composition text range.
407 ui::Range composition_range_; 416 ui::Range composition_range_;
408 417
409 // List of style ranges. Elements in the list never overlap each other. 418 // List of style ranges. Elements in the list never overlap each other.
410 StyleRanges style_ranges_; 419 StyleRanges style_ranges_;
411 // The default text style. 420 // The default text style.
412 StyleRange default_style_; 421 StyleRange default_style_;
413 422
423 // True if this is an obscured (password) field.
424 bool obscured_;
425
414 // Fade text head and/or tail, if text doesn't fit into |display_rect_|. 426 // Fade text head and/or tail, if text doesn't fit into |display_rect_|.
415 bool fade_head_; 427 bool fade_head_;
416 bool fade_tail_; 428 bool fade_tail_;
417 429
418 // The local display area for rendering the text. 430 // The local display area for rendering the text.
419 Rect display_rect_; 431 Rect display_rect_;
420 432
421 // The offset for the text to be drawn, relative to the display area. 433 // The offset for the text to be drawn, relative to the display area.
422 // Get this point with GetUpdatedDisplayOffset (or risk using a stale value). 434 // Get this point with GetUpdatedDisplayOffset (or risk using a stale value).
423 Point display_offset_; 435 Point display_offset_;
424 436
425 // The cached bounds and offset are invalidated by changes to the cursor, 437 // The cached bounds and offset are invalidated by changes to the cursor,
426 // selection, font, and other operations that adjust the visible text bounds. 438 // selection, font, and other operations that adjust the visible text bounds.
427 bool cached_bounds_and_offset_valid_; 439 bool cached_bounds_and_offset_valid_;
428 440
429 DISALLOW_COPY_AND_ASSIGN(RenderText); 441 DISALLOW_COPY_AND_ASSIGN(RenderText);
430 }; 442 };
431 443
432 } // namespace gfx 444 } // namespace gfx
433 445
434 #endif // UI_GFX_RENDER_TEXT_H_ 446 #endif // UI_GFX_RENDER_TEXT_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698