1 /******************************************************************************
2  * Copyright (c) 2008-2012 Transmission authors and contributors
3  *
4  * Permission is hereby granted, free of charge, to any person obtaining a
5  * copy of this software and associated documentation files (the "Software"),
6  * to deal in the Software without restriction, including without limitation
7  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8  * and/or sell copies of the Software, and to permit persons to whom the
9  * Software is furnished to do so, subject to the following conditions:
10  *
11  * The above copyright notice and this permission notice shall be included in
12  * all copies or substantial portions of the Software.
13  *
14  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
19  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
20  * DEALINGS IN THE SOFTWARE.
21  *****************************************************************************/
22 
23 #import <Cocoa/Cocoa.h>
24 
25 #import "Torrent.h"
26 
27 @class Controller;
28 @class FileOutlineController;
29 @class Torrent;
30 
31 @interface AddWindowController : NSWindowController
32 {
33     IBOutlet NSImageView * fIconView, * fLocationImageView;
34     IBOutlet NSTextField * fNameField, * fStatusField, * fLocationField;
35     IBOutlet NSButton * fStartCheck, * fDeleteCheck;
36     IBOutlet NSPopUpButton * fGroupPopUp, * fPriorityPopUp;
37     IBOutlet NSProgressIndicator * fVerifyIndicator;
38 
39     IBOutlet NSTextField * fFileFilterField;
40     IBOutlet NSButton * fCheckAllButton, *fUncheckAllButton;
41 
42     IBOutlet FileOutlineController * fFileController;
43     IBOutlet NSScrollView * fFileScrollView;
44 
45     Controller * fController;
46 
47     Torrent * fTorrent;
48     NSString * fDestination, * fTorrentFile;
49     BOOL fLockDestination;
50 
51     BOOL fDeleteTorrentEnableInitially, fCanToggleDelete;
52     NSInteger fGroupValue;
53 
54     NSTimer * fTimer;
55 
56     TorrentDeterminationType fGroupValueDetermination;
57 }
58 
59 - (id) initWithTorrent: (Torrent *) torrent destination: (NSString *) path lockDestination: (BOOL) lockDestination
60     controller: (Controller *) controller torrentFile: (NSString *) torrentFile
61     deleteTorrentCheckEnableInitially: (BOOL) deleteTorrent canToggleDelete: (BOOL) canToggleDelete; //if canToggleDelete is NO, we will also not delete the file regardless of the delete check's state (this is so it can be disabled and checked for a downloaded torrent, where the file's already deleted)
62 
63 - (Torrent *) torrent;
64 
65 - (void) setDestination: (id) sender;
66 
67 - (void) add: (id) sender;
68 - (void) cancelAdd: (id) sender;
69 
70 - (IBAction) setFileFilterText: (id) sender;
71 - (IBAction) checkAll: (id) sender;
72 - (IBAction) uncheckAll: (id) sender;
73 
74 - (void) verifyLocalData: (id) sender;
75 
76 - (void) changePriority: (id) sender;
77 
78 - (void) updateCheckButtons: (NSNotification *) notification;
79 
80 - (void) updateGroupMenu: (NSNotification *) notification;
81 
82 @end
83