OLD | NEW |
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #import <Cocoa/Cocoa.h> | 5 #import <Cocoa/Cocoa.h> |
6 | 6 |
7 #include "app/download_file_interface.h" | 7 #include "app/download_file_interface.h" |
8 #include "base/file_path.h" | 8 #include "base/file_path.h" |
9 #include "base/scoped_nsobject.h" | 9 #include "base/scoped_nsobject.h" |
10 #include "base/scoped_ptr.h" | 10 #include "base/scoped_ptr.h" |
11 #include "googleurl/src/gurl.h" | 11 #include "googleurl/src/gurl.h" |
12 | 12 |
13 struct WebDropData; | 13 struct WebDropData; |
14 @class TabContentsViewCocoa; | 14 @class TabContentsViewCocoa; |
15 | 15 |
16 // A class that handles tracking and event processing for a drag and drop | 16 // A class that handles tracking and event processing for a drag and drop |
17 // originating from the content area. | 17 // originating from the content area. |
18 @interface WebDragSource : NSObject { | 18 @interface WebDragSource : NSObject { |
19 @private | 19 @private |
20 // Our tab. Weak reference (owns or co-owns us). | 20 // Our tab. Weak reference (owns or co-owns us). |
21 TabContentsViewCocoa* contentsView_; | 21 TabContentsViewCocoa* contentsView_; |
22 | 22 |
23 // Our drop data. Should only be initialized once. | 23 // Our drop data. Should only be initialized once. |
24 scoped_ptr<WebDropData> dropData_; | 24 scoped_ptr<WebDropData> dropData_; |
25 | 25 |
| 26 // The image to show as drag image. Can be nil. |
| 27 scoped_nsobject<NSImage> dragImage_; |
| 28 |
| 29 // The offset to draw |dragImage_| at. |
| 30 NSPoint imageOffset_; |
| 31 |
26 // Our pasteboard. | 32 // Our pasteboard. |
27 scoped_nsobject<NSPasteboard> pasteboard_; | 33 scoped_nsobject<NSPasteboard> pasteboard_; |
28 | 34 |
29 // A mask of the allowed drag operations. | 35 // A mask of the allowed drag operations. |
30 NSDragOperation dragOperationMask_; | 36 NSDragOperation dragOperationMask_; |
31 | 37 |
32 // The file name to be saved to for a drag-out download. | 38 // The file name to be saved to for a drag-out download. |
33 FilePath downloadFileName_; | 39 FilePath downloadFileName_; |
34 | 40 |
35 // The URL to download from for a drag-out download. | 41 // The URL to download from for a drag-out download. |
36 GURL downloadURL_; | 42 GURL downloadURL_; |
37 } | 43 } |
38 | 44 |
39 // Initialize a WebDragSource object for a drag (originating on the given | 45 // Initialize a WebDragSource object for a drag (originating on the given |
40 // contentsView and with the given dropData and pboard). Fill the pasteboard | 46 // contentsView and with the given dropData and pboard). Fill the pasteboard |
41 // with data types appropriate for dropData. | 47 // with data types appropriate for dropData. |
42 - (id)initWithContentsView:(TabContentsViewCocoa*)contentsView | 48 - (id)initWithContentsView:(TabContentsViewCocoa*)contentsView |
43 dropData:(const WebDropData*)dropData | 49 dropData:(const WebDropData*)dropData |
| 50 image:(NSImage*)image |
| 51 offset:(NSPoint)offset |
44 pasteboard:(NSPasteboard*)pboard | 52 pasteboard:(NSPasteboard*)pboard |
45 dragOperationMask:(NSDragOperation)dragOperationMask; | 53 dragOperationMask:(NSDragOperation)dragOperationMask; |
46 | 54 |
47 // Returns a mask of the allowed drag operations. | 55 // Returns a mask of the allowed drag operations. |
48 - (NSDragOperation)draggingSourceOperationMaskForLocal:(BOOL)isLocal; | 56 - (NSDragOperation)draggingSourceOperationMaskForLocal:(BOOL)isLocal; |
49 | 57 |
50 // Call when asked to do a lazy write to the pasteboard; hook up to | 58 // Call when asked to do a lazy write to the pasteboard; hook up to |
51 // -pasteboard:provideDataForType: (on the contentsView). | 59 // -pasteboard:provideDataForType: (on the contentsView). |
52 - (void)lazyWriteToPasteboard:(NSPasteboard*)pboard | 60 - (void)lazyWriteToPasteboard:(NSPasteboard*)pboard |
53 forType:(NSString*)type; | 61 forType:(NSString*)type; |
(...skipping 10 matching lines...) Expand all Loading... |
64 // Drag moved; hook up to -draggedImage:movedTo:. | 72 // Drag moved; hook up to -draggedImage:movedTo:. |
65 - (void)moveDragTo:(NSPoint)screenPoint; | 73 - (void)moveDragTo:(NSPoint)screenPoint; |
66 | 74 |
67 // Call to drag a promised file to the given path (should be called before | 75 // Call to drag a promised file to the given path (should be called before |
68 // -endDragAt:...); hook up to -namesOfPromisedFilesDroppedAtDestination:. | 76 // -endDragAt:...); hook up to -namesOfPromisedFilesDroppedAtDestination:. |
69 // Returns the file name (not including path) of the file deposited (or which | 77 // Returns the file name (not including path) of the file deposited (or which |
70 // will be deposited). | 78 // will be deposited). |
71 - (NSString*)dragPromisedFileTo:(NSString*)path; | 79 - (NSString*)dragPromisedFileTo:(NSString*)path; |
72 | 80 |
73 @end | 81 @end |
OLD | NEW |