// Copyright 2016 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 SERVICES_UI_WS_DRAG_SOURCE_H_ #define SERVICES_UI_WS_DRAG_SOURCE_H_ namespace ui { namespace ws { class DragTargetConnection; class ServerWindow; struct WindowId; // An interface implemented by the object that caused a DragController to // exist, and which acts as a delegate to it. class DragSource { public: virtual ~DragSource() {} // Called during a drag operation when the mouse cursor moves. virtual void OnDragMoved(const gfx::Point& location) = 0; // Called when a drag operation is completed. |success| is true when a target // window signaled the successful completion of the drag, false in all other // cases where a drag was aborted at any step in the process. |action_taken| // is one of the kDropEffect constants in window_tree_constants.mojom. virtual void OnDragCompleted(bool success, uint32_t action_taken) = 0; virtual ServerWindow* GetWindowById(const WindowId& id) = 0; // Returns the client connection that created |window|. virtual DragTargetConnection* GetDragTargetForWindow( const ServerWindow* window) = 0; }; } // namespace ws } // namespace ui #endif // SERVICES_UI_WS_DRAG_SOURCE_H_