Index: ui/gfx/render_text_linux.h |
=================================================================== |
--- ui/gfx/render_text_linux.h (revision 112051) |
+++ ui/gfx/render_text_linux.h (working copy) |
@@ -7,6 +7,7 @@ |
#pragma once |
#include <pango/pango.h> |
+#include <vector> |
#include "ui/gfx/render_text.h" |
@@ -21,7 +22,6 @@ |
// Overridden from RenderText: |
virtual base::i18n::TextDirection GetTextDirection() OVERRIDE; |
virtual int GetStringWidth() OVERRIDE; |
- virtual void Draw(Canvas* canvas) OVERRIDE; |
virtual SelectionModel FindCursorPosition(const Point& point) OVERRIDE; |
virtual Rect GetCursorBounds(const SelectionModel& position, |
bool insert_mode) OVERRIDE; |
@@ -34,8 +34,14 @@ |
BreakType break_type) OVERRIDE; |
virtual SelectionModel LeftEndSelectionModel() OVERRIDE; |
virtual SelectionModel RightEndSelectionModel() OVERRIDE; |
+ virtual void GetSubstringBounds(size_t from, |
+ size_t to, |
+ std::vector<Rect>* bounds) OVERRIDE; |
+ virtual void SetSelectionModel(const SelectionModel& model) OVERRIDE; |
virtual bool IsCursorablePosition(size_t position) OVERRIDE; |
virtual void UpdateLayout() OVERRIDE; |
+ virtual void EnsureLayout() OVERRIDE; |
+ virtual void DrawVisualText(Canvas* canvas) OVERRIDE; |
private: |
virtual size_t IndexOfAdjacentGrapheme(size_t index, bool next) OVERRIDE; |
@@ -69,10 +75,6 @@ |
SelectionModel LeftSelectionModelByWord(const SelectionModel& current); |
SelectionModel RightSelectionModelByWord(const SelectionModel& current); |
- // If |layout_| is NULL, create and setup |layout_|, retain and ref |
- // |current_line_|. Return |layout_|. |
- PangoLayout* EnsureLayout(); |
- |
// Unref |layout_| and |pango_line_|. Set them to NULL. |
void ResetLayout(); |
@@ -96,6 +98,15 @@ |
size_t Utf16IndexToUtf8Index(size_t index) const; |
size_t Utf8IndexToUtf16Index(size_t index) const; |
+ // Calculate the visual bounds containing the logical substring within |from| |
+ // to |to| into |bounds|. |
+ void CalculateSubstringBounds(size_t from, |
+ size_t to, |
+ std::vector<Rect>* bounds); |
+ |
+ // Save the visual bounds of logical selection into |bounds|. |
+ void GetSelectionBounds(std::vector<Rect>* bounds); |
+ |
// Pango Layout. |
PangoLayout* layout_; |
// A single line layout resulting from laying out via |layout_|. |
@@ -106,6 +117,9 @@ |
// Number of attributes in |log_attrs_|. |
int num_log_attrs_; |
+ // Vector of the visual bounds containing the logical substring of selection. |
+ std::vector<Rect> selection_visual_bounds_; |
+ |
// The text in the |layout_|. |
const char* layout_text_; |
// The text length. |