OLD | NEW |
| (Empty) |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #ifndef UI_VIEWS_MUS_DRAG_DROP_CLIENT_MUS_H_ | |
6 #define UI_VIEWS_MUS_DRAG_DROP_CLIENT_MUS_H_ | |
7 | |
8 #include "base/callback.h" | |
9 #include "ui/aura/client/drag_drop_client.h" | |
10 #include "ui/base/dragdrop/drag_drop_types.h" | |
11 | |
12 namespace aura { | |
13 class Window; | |
14 } | |
15 | |
16 namespace ui { | |
17 class OSExchangeData; | |
18 class Window; | |
19 } | |
20 | |
21 namespace views { | |
22 | |
23 // An aura client object that translates aura dragging methods to their | |
24 // remote ui::Window equivalents. | |
25 class DragDropClientMus : public aura::client::DragDropClient { | |
26 public: | |
27 DragDropClientMus(ui::Window* ui_window); | |
28 ~DragDropClientMus() override; | |
29 | |
30 // Overridden from aura::client::DragDropClient: | |
31 int StartDragAndDrop(const ui::OSExchangeData& data, | |
32 aura::Window* root_window, | |
33 aura::Window* source_window, | |
34 const gfx::Point& screen_location, | |
35 int drag_operations, | |
36 ui::DragDropTypes::DragEventSource source) override; | |
37 void DragCancel() override; | |
38 bool IsDragDropInProgress() override; | |
39 | |
40 private: | |
41 // Callback for StartDragAndDrop(). | |
42 void OnMoveLoopEnd(bool* out_success, | |
43 uint32_t* out_action, | |
44 bool in_success, | |
45 uint32_t in_action); | |
46 | |
47 ui::Window* ui_window_; | |
48 | |
49 base::Closure runloop_quit_closure_; | |
50 | |
51 DISALLOW_COPY_AND_ASSIGN(DragDropClientMus); | |
52 }; | |
53 | |
54 } // namespace views | |
55 | |
56 #endif // UI_VIEWS_MUS_DRAG_DROP_CLIENT_MUS_H_ | |
OLD | NEW |