| 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 b3d913fd2d178a1d1c39574246433bdc83e59574..e0f76f1d4a5f7476a553a10b91f40861e6561ba4 100644
|
| --- a/content/browser/renderer_host/render_widget_host_view_aura.h
|
| +++ b/content/browser/renderer_host/render_widget_host_view_aura.h
|
| @@ -31,6 +31,7 @@
|
| #include "ui/aura/window_tree_host_observer.h"
|
| #include "ui/base/ime/text_input_client.h"
|
| #include "ui/base/touch/selection_bound.h"
|
| +#include "ui/base/touch/touch_editing_controller.h"
|
| #include "ui/events/gestures/motion_event_aura.h"
|
| #include "ui/gfx/display_observer.h"
|
| #include "ui/gfx/geometry/insets.h"
|
| @@ -64,7 +65,6 @@
|
| class InputMethod;
|
| class LocatedEvent;
|
| class Texture;
|
| -class TouchSelectionController;
|
| }
|
|
|
| namespace content {
|
| @@ -76,7 +76,6 @@
|
| class RenderFrameHostImpl;
|
| class RenderWidgetHostImpl;
|
| class RenderWidgetHostView;
|
| -class TouchSelectionControllerClientAura;
|
|
|
| // RenderWidgetHostView class hierarchy described in render_widget_host_view.h.
|
| class CONTENT_EXPORT RenderWidgetHostViewAura
|
| @@ -91,6 +90,49 @@
|
| 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.
|
| //
|
| @@ -302,25 +344,12 @@
|
|
|
| void SnapToPhysicalPixelBoundary();
|
|
|
| - ui::TouchSelectionController* selection_controller() const {
|
| - return selection_controller_.get();
|
| - }
|
| -
|
| - TouchSelectionControllerClientAura* selection_controller_client() const {
|
| - return selection_controller_client_.get();
|
| - }
|
| -
|
| OverscrollController* overscroll_controller() const {
|
| return overscroll_controller_.get();
|
| }
|
|
|
| // Called when the context menu is about to be displayed.
|
| void OnShowContextMenu();
|
| -
|
| - // Used in tests to set a mock client for touch selection controller. It will
|
| - // create a new touch selection controller for the new client.
|
| - void SetSelectionControllerClientForTest(
|
| - scoped_ptr<TouchSelectionControllerClientAura> client);
|
|
|
| protected:
|
| ~RenderWidgetHostViewAura() override;
|
| @@ -481,20 +510,6 @@
|
| // Called when the parent window hierarchy for our window changes.
|
| void ParentHierarchyChanged();
|
|
|
| - // Helper function to be called whenever new selection information is
|
| - // received. It will update selection controller.
|
| - void SelectionUpdated(bool is_editable,
|
| - bool is_empty_text_form_control,
|
| - const ui::SelectionBound& start,
|
| - const ui::SelectionBound& end);
|
| -
|
| - // Helper function to create a selection controller.
|
| - void CreateSelectionController();
|
| -
|
| - // Performs gesture handling needed for touch text selection. Sets event as
|
| - // handled if it should not be further processed.
|
| - void HandleGestureForTouchSelection(ui::GestureEvent* event);
|
| -
|
| // The model object.
|
| RenderWidgetHostImpl* host_;
|
|
|
| @@ -632,8 +647,7 @@
|
|
|
| bool has_snapped_to_boundary_;
|
|
|
| - scoped_ptr<TouchSelectionControllerClientAura> selection_controller_client_;
|
| - scoped_ptr<ui::TouchSelectionController> selection_controller_;
|
| + TouchEditingClient* touch_editing_client_;
|
|
|
| scoped_ptr<OverscrollController> overscroll_controller_;
|
|
|
|
|