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

Unified Diff: ui/gfx/render_text.h

Issue 7511029: Implement Pango RenderText for Linux. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: fix compilation error. using ICU functions for utf8/utf16 conversion Created 9 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: ui/gfx/render_text.h
===================================================================
--- ui/gfx/render_text.h (revision 97029)
+++ ui/gfx/render_text.h (working copy)
@@ -121,9 +121,12 @@
private:
void Init(size_t start, size_t end, size_t pos, CaretPlacement status);
- // Logical selection start. If there is non-empty selection, the selection
- // always starts visually at the leading edge of the selection_start. So, we
- // do not need extra information for visual selection bounding.
+ // Logical selection start. If there is non-empty selection, if
+ // selection_start_ is less than selection_end_, the selection starts visually
+ // at the leading edge of the selection_start_. If selection_start_ is greater
+ // than selection_end_, the selection starts visually at the trailing edge of
+ // selection_start_'s previous grapheme. So, we do not need extra information
+ // for visual bounding.
size_t selection_start_;
// The logical cursor position that next character will be inserted into.
@@ -176,7 +179,7 @@
// edits take place, and doesn't necessarily correspond to
// SelectionModel::caret_pos.
size_t GetCursorPosition() const;
- void SetCursorPosition(const size_t position);
+ void SetCursorPosition(size_t position);
void SetCaretPlacement(SelectionModel::CaretPlacement placement) {
selection_model_.set_caret_placement(placement);
@@ -226,7 +229,7 @@
// Apply |default_style_| over the entire text range.
virtual void ApplyDefaultStyle();
- base::i18n::TextDirection GetTextDirection() const;
+ virtual base::i18n::TextDirection GetTextDirection();
// Get the width of the entire string.
virtual int GetStringWidth();
@@ -281,6 +284,12 @@
// style (foreground) to selection range.
void ApplyCompositionAndSelectionStyles(StyleRanges* style_ranges) const;
+ // Convert points from the text space to the view space and back.
+ // Handles the display area, display offset, and the application LTR/RTL mode.
+ // TODO(xji): Remove the functions from RenderTextWin.
msw 2011/08/23 08:01:01 You don't need this TODO, I'll take care of mergin
xji 2011/08/23 23:52:52 removed.
+ Point ToTextPoint(const Point& point);
+ Point ToViewPoint(const Point& point);
+
private:
friend class RenderTextTest;
@@ -292,12 +301,21 @@
// Clear out |style_ranges_|.
void ClearStyleRanges();
+ // Set the cursor to |position|, with the caret trailing the previous
+ // grapheme, or if there is no previous grapheme, leading the cursor position.
+ // If |select| is false, the selection start is moved to the same position.
+ void MoveCursorTo(size_t position, bool select);
+
bool IsPositionAtWordSelectionBoundary(size_t pos);
// Update the cached bounds and display offset to ensure that the current
// cursor is within the visible display area.
void UpdateCachedBoundsAndOffset();
+ // Returns the selection model of selection_start_.
+ // The returned value represents a cursor/caret position without a selection.
+ SelectionModel GetSelectionModelForSelectionStart();
+
// Logical UTF-16 string data to be drawn.
string16 text_;

Powered by Google App Engine
This is Rietveld 408576698