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

Unified Diff: content/browser/renderer_host/render_widget_host_view_aura.h

Issue 698253004: Reland: Implement Aura side of unified touch text selection for contents (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased after addition of touch_handle_orientation file Created 5 years, 10 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: content/browser/renderer_host/render_widget_host_view_aura.h
diff --git a/content/browser/renderer_host/render_widget_host_view_aura.h b/content/browser/renderer_host/render_widget_host_view_aura.h
index d3e72e276c095cad708097abc5a6c84aad00f730..6f9a32ae9f6cba788d9c554a87a232fe46ae7133 100644
--- a/content/browser/renderer_host/render_widget_host_view_aura.h
+++ b/content/browser/renderer_host/render_widget_host_view_aura.h
@@ -65,6 +65,8 @@ class CompositorLock;
class InputMethod;
class LocatedEvent;
class Texture;
+class TouchSelectionControllerAura;
+class TouchSelectionControllerAuraClient;
}
namespace content {
@@ -90,49 +92,6 @@ class CONTENT_EXPORT RenderWidgetHostViewAura
public aura::client::FocusChangeObserver,
public aura::client::CursorClientObserver {
public:
- // Displays and controls touch editing elements such as selection handles.
- class TouchEditingClient {
- public:
- TouchEditingClient() {}
-
- // Tells the client to start showing touch editing handles.
- virtual void StartTouchEditing() = 0;
-
- // Notifies the client that touch editing is no longer needed. |quick|
- // determines whether the handles should fade out quickly or slowly.
- virtual void EndTouchEditing(bool quick) = 0;
-
- // Notifies the client that the selection bounds need to be updated.
- virtual void OnSelectionOrCursorChanged(
- const ui::SelectionBound& anchor,
- const ui::SelectionBound& focus) = 0;
-
- // Notifies the client that the current text input type as changed.
- virtual void OnTextInputTypeChanged(ui::TextInputType type) = 0;
-
- // Notifies the client that an input event is about to be sent to the
- // renderer. Returns true if the client wants to stop event propagation.
- virtual bool HandleInputEvent(const ui::Event* event) = 0;
-
- // Notifies the client that a gesture event ack was received.
- virtual void GestureEventAck(int gesture_event_type) = 0;
-
- // Notifies the client that the fling has ended, so it can activate touch
- // editing if needed.
- virtual void DidStopFlinging() = 0;
-
- // This is called when the view is destroyed, so that the client can
- // perform any necessary clean-up.
- virtual void OnViewDestroyed() = 0;
-
- protected:
- virtual ~TouchEditingClient() {}
- };
-
- void set_touch_editing_client(TouchEditingClient* client) {
- touch_editing_client_ = client;
- }
-
// When |is_guest_view_hack| is true, this view isn't really the view for
// the |widget|, a RenderWidgetHostViewGuest is.
//
@@ -352,6 +311,13 @@ class CONTENT_EXPORT RenderWidgetHostViewAura
void SnapToPhysicalPixelBoundary();
+ void InitSelectionController(
+ ui::TouchSelectionControllerAuraClient* selection_controller_client);
sadrul 2015/03/05 12:37:03 scoped_ptr<> so ownership transfer is clear.
mohsen 2015/03/06 23:10:08 Done.
+
+ ui::TouchSelectionControllerAura* selection_controller() const {
+ return selection_controller_.get();
+ }
+
OverscrollController* overscroll_controller() const {
return overscroll_controller_.get();
}
@@ -496,6 +462,11 @@ class CONTENT_EXPORT RenderWidgetHostViewAura
RenderFrameHostImpl* GetFocusedFrame();
+ // Helper function to be called whenever new selection bound information is
+ // received. It will update selection controller and notify IME.
+ void SelectionBoundsUpdated(const ui::SelectionBound& start,
+ const ui::SelectionBound& end);
+
// The model object.
RenderWidgetHostImpl* host_;
@@ -545,8 +516,8 @@ class CONTENT_EXPORT RenderWidgetHostViewAura
bool can_compose_inline_;
// Bounds for the selection.
- ui::SelectionBound selection_anchor_;
- ui::SelectionBound selection_focus_;
+ ui::SelectionBound selection_start_;
+ ui::SelectionBound selection_end_;
// The current composition character bounds.
std::vector<gfx::Rect> composition_character_bounds_;
@@ -626,7 +597,9 @@ class CONTENT_EXPORT RenderWidgetHostViewAura
bool has_snapped_to_boundary_;
- TouchEditingClient* touch_editing_client_;
+ scoped_ptr<ui::TouchSelectionControllerAuraClient>
+ selection_controller_client_;
+ scoped_ptr<ui::TouchSelectionControllerAura> selection_controller_;
scoped_ptr<OverscrollController> overscroll_controller_;

Powered by Google App Engine
This is Rietveld 408576698