 Chromium Code Reviews
 Chromium Code Reviews Issue 698253004:
  Reland: Implement Aura side of unified touch text selection for contents  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/src.git@master
    
  
    Issue 698253004:
  Reland: Implement Aura side of unified touch text selection for contents  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/src.git@master| Index: content/browser/renderer_host/input/touch_selection_controller_client_aura.h | 
| diff --git a/content/browser/renderer_host/input/touch_selection_controller_client_aura.h b/content/browser/renderer_host/input/touch_selection_controller_client_aura.h | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..6b3d8d0e903c95f225adf43c654a7906971d21d8 | 
| --- /dev/null | 
| +++ b/content/browser/renderer_host/input/touch_selection_controller_client_aura.h | 
| @@ -0,0 +1,66 @@ | 
| +// Copyright 2015 The Chromium Authors. All rights reserved. | 
| +// Use of this source code is governed by a BSD-style license that can be | 
| +// found in the LICENSE file. | 
| + | 
| +#ifndef CONTENT_BROWSER_RENDERER_HOST_INPUT_TOUCH_SELECTION_CONTROLLER_CLIENT_AURA_H_ | 
| +#define CONTENT_BROWSER_RENDERER_HOST_INPUT_TOUCH_SELECTION_CONTROLLER_CLIENT_AURA_H_ | 
| + | 
| +#include "base/timer/timer.h" | 
| +#include "ui/touch_selection/touch_selection_controller.h" | 
| +#include "ui/touch_selection/touch_selection_menu_runner.h" | 
| + | 
| +namespace content { | 
| +class RenderWidgetHostViewAura; | 
| + | 
| +// An implementation of |TouchSelectionControllerClient| to be used in Aura's | 
| +// implementation of touch selection for contents. | 
| +class TouchSelectionControllerClientAura | 
| + : public ui::TouchSelectionControllerClient, | 
| + public ui::TouchSelectionMenuClient { | 
| + public: | 
| + explicit TouchSelectionControllerClientAura(RenderWidgetHostViewAura* rwhva); | 
| + ~TouchSelectionControllerClientAura() override; | 
| + | 
| + void OnWindowMoved(); | 
| + void OnTouchDown(); | 
| + void OnTouchUp(); | 
| + void OnSelectionScrollStarted(); | 
| + void OnSelectionScrollCompleted(); | 
| + | 
| + private: | 
| + class EnvPreTargetHandler; | 
| + | 
| + bool IsQuickMenuAllowed() const; | 
| + void ShowQuickMenu(); | 
| + void UpdateQuickMenu(); | 
| + | 
| + // ui::TouchSelectionControllerClient: | 
| + bool SupportsAnimation() const override; | 
| + void SetNeedsAnimate() override; | 
| + void MoveCaret(const gfx::PointF& position) override; | 
| + void MoveRangeSelectionExtent(const gfx::PointF& extent) override; | 
| + void SelectBetweenCoordinates(const gfx::PointF& base, | 
| + const gfx::PointF& extent) override; | 
| + void OnSelectionEvent(ui::SelectionEventType event) override; | 
| + scoped_ptr<ui::TouchHandleDrawable> CreateDrawable() override; | 
| + | 
| + // ui::TouchSelectionMenuClient: | 
| + bool IsCommandIdEnabled(int command_id) const override; | 
| + void ExecuteCommand(int command_id, int event_flags) override; | 
| + void RunContextMenu() override; | 
| + | 
| + // Not owned, non-null for the lifetime of this object. | 
| + RenderWidgetHostViewAura* rwhva_; | 
| + | 
| + base::Timer quick_menu_timer_; | 
| + bool touch_down_; | 
| + bool scroll_in_progress_; | 
| + bool handle_drag_in_progress_; | 
| + scoped_ptr<EnvPreTargetHandler> env_pre_target_handler_; | 
| 
sadrul
2015/06/30 18:33:12
Document the handler here.
 
mohsen
2015/07/03 18:07:23
Done.
 | 
| + | 
| + DISALLOW_COPY_AND_ASSIGN(TouchSelectionControllerClientAura); | 
| +}; | 
| + | 
| +} // namespace content | 
| + | 
| +#endif // CONTENT_BROWSER_RENDERER_HOST_INPUT_TOUCH_SELECTION_CONTROLLER_CLIENT_AURA_H_ |