OLD | NEW |
| (Empty) |
1 // Copyright 2013 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_APP_LIST_COCOA_APPS_COLLECTION_VIEW_DRAG_MANAGER_H_ | |
6 #define UI_APP_LIST_COCOA_APPS_COLLECTION_VIEW_DRAG_MANAGER_H_ | |
7 | |
8 #import <Cocoa/Cocoa.h> | |
9 | |
10 #include "base/mac/scoped_nsobject.h" | |
11 #include "ui/app_list/app_list_export.h" | |
12 | |
13 @class AppsGridController; | |
14 @class ItemDragController; | |
15 | |
16 // Manager for the state associated with dragging an NSCollectionViewItem in the | |
17 // AppsGridController. It is also a factory for the NSCollectionView pages in | |
18 // the grid, allowing items to be dragged between pages. | |
19 APP_LIST_EXPORT | |
20 @interface AppsCollectionViewDragManager : NSObject { | |
21 @private | |
22 base::scoped_nsobject<ItemDragController> itemDragController_; | |
23 AppsGridController* gridController_; // Weak. Owns us. | |
24 | |
25 NSSize cellSize_; | |
26 size_t rows_; | |
27 size_t columns_; | |
28 | |
29 // Index of the last known position of the item currently being dragged. | |
30 size_t itemDragIndex_; | |
31 | |
32 // Model index of the item being dragged, or NSNotFound if nothing was hit on | |
33 // the last mouseDown. | |
34 size_t itemHitIndex_; | |
35 | |
36 // Location in the window of the last mouseDown event. | |
37 NSPoint mouseDownLocation_; | |
38 | |
39 // Whether the current mouse action has converted into an item drag. | |
40 BOOL dragging_; | |
41 } | |
42 | |
43 - (id)initWithCellSize:(NSSize)cellSize | |
44 rows:(size_t)rows | |
45 columns:(size_t)columns | |
46 gridController:(AppsGridController*)gridController; | |
47 | |
48 // Make an empty NSCollectionView with draggable items in the given |pageFrame|. | |
49 - (NSCollectionView*)makePageWithFrame:(NSRect)pageFrame; | |
50 | |
51 - (void)cancelDrag; | |
52 | |
53 @end | |
54 | |
55 @interface AppsCollectionViewDragManager (TestingAPI) | |
56 | |
57 - (void)onMouseDownInPage:(NSCollectionView*)page | |
58 withEvent:(NSEvent*)theEvent; | |
59 - (void)onMouseDragged:(NSEvent*)theEvent; | |
60 - (void)onMouseUp:(NSEvent*)theEvent; | |
61 | |
62 @end | |
63 | |
64 #endif // UI_APP_LIST_COCOA_APPS_COLLECTION_VIEW_DRAG_MANAGER_H_ | |
OLD | NEW |