source: trunk/macosx/Controller.h @ 13184

Last change on this file since 13184 was 13184, checked in by livings124, 10 years ago

Sort the Sort menu items on launch, since the main menu is now localized through a strings file.

  • Property svn:keywords set to Date Rev Author Id
File size: 9.7 KB
Line 
1/******************************************************************************
2 * $Id: Controller.h 13184 2012-01-30 00:14:43Z livings124 $
3 *
4 * Copyright (c) 2005-2012 Transmission authors and contributors
5 *
6 * Permission is hereby granted, free of charge, to any person obtaining a
7 * copy of this software and associated documentation files (the "Software"),
8 * to deal in the Software without restriction, including without limitation
9 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
10 * and/or sell copies of the Software, and to permit persons to whom the
11 * Software is furnished to do so, subject to the following conditions:
12 *
13 * The above copyright notice and this permission notice shall be included in
14 * all copies or substantial portions of the Software.
15 *
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22 * DEALINGS IN THE SOFTWARE.
23 *****************************************************************************/
24
25#import <Cocoa/Cocoa.h>
26#import <transmission.h>
27#import <Quartz/Quartz.h>
28#import <Growl/Growl.h>
29
30@class AddMagnetWindowController;
31@class AddWindowController;
32@class Badger;
33@class DragOverlayWindow;
34@class FilterBarController;
35@class InfoWindowController;
36@class MessageWindowController;
37@class PrefsController;
38@class StatusBarController;
39@class Torrent;
40@class TorrentTableView;
41@class URLSheetWindowController;
42
43typedef enum
44{
45    ADD_MANUAL,
46    ADD_AUTO,
47    ADD_SHOW_OPTIONS,
48    ADD_URL,
49    ADD_CREATED
50} addType;
51
52@interface Controller : NSObject <GrowlApplicationBridgeDelegate, NSURLDownloadDelegate, NSPopoverDelegate, NSSoundDelegate, NSToolbarDelegate, NSWindowDelegate, QLPreviewPanelDataSource, QLPreviewPanelDelegate>
53{
54    tr_session                      * fLib;
55   
56    NSMutableArray                  * fTorrents, * fDisplayedTorrents;
57   
58    PrefsController                 * fPrefsController;
59    InfoWindowController            * fInfoController;
60    MessageWindowController         * fMessageController;
61   
62    NSUserDefaults                  * fDefaults;
63   
64    IBOutlet NSWindow               * fWindow;
65    DragOverlayWindow               * fOverlayWindow;
66    IBOutlet TorrentTableView       * fTableView;
67
68    io_connect_t                    fRootPort;
69    NSTimer                         * fTimer;
70   
71    IBOutlet NSMenuItem             * fOpenIgnoreDownloadFolder;
72    IBOutlet NSButton               * fActionButton, * fSpeedLimitButton, * fClearCompletedButton;
73    IBOutlet NSTextField            * fTotalTorrentsField;
74   
75    StatusBarController             * fStatusBar;
76   
77    FilterBarController             * fFilterBar;
78    IBOutlet NSMenuItem             * fNextFilterItem;
79                               
80    IBOutlet NSMenuItem             * fNextInfoTabItem, * fPrevInfoTabItem;
81   
82    IBOutlet NSMenu                 * fSortMenu;
83   
84    IBOutlet NSMenu                 * fActionMenu;
85   
86    IBOutlet NSMenu                 * fUploadMenu, * fDownloadMenu;
87    IBOutlet NSMenuItem             * fUploadLimitItem, * fUploadNoLimitItem,
88                                    * fDownloadLimitItem, * fDownloadNoLimitItem;
89   
90    IBOutlet NSMenu                 * fRatioStopMenu;
91    IBOutlet NSMenuItem             * fCheckRatioItem, * fNoCheckRatioItem;
92   
93    IBOutlet NSMenu                 * fGroupsSetMenu, * fGroupsSetContextMenu;
94   
95    QLPreviewPanel                  * fPreviewPanel;
96    BOOL                            fQuitting;
97    BOOL                            fQuitRequested;
98    BOOL                            fPauseOnLaunch;
99   
100    Badger                          * fBadger;
101   
102    NSMutableArray                  * fAutoImportedNames;
103    NSTimer                         * fAutoImportTimer;
104   
105    NSMutableDictionary             * fPendingTorrentDownloads;
106   
107    NSMutableSet                    * fAddingTransfers;
108   
109    BOOL                            fGlobalPopoverShown;
110    BOOL                            fSoundPlaying;
111}
112
113- (void) openFiles: (NSArray *) filenames addType: (addType) type forcePath: (NSString *) path;
114
115- (void) askOpenConfirmed: (AddWindowController *) addController add: (BOOL) add;
116- (void) openCreatedFile: (NSNotification *) notification;
117- (void) openFilesWithDict: (NSDictionary *) dictionary;
118- (void) openShowSheet: (id) sender;
119
120- (void) openMagnet: (NSString *) address;
121- (void) askOpenMagnetConfirmed: (AddMagnetWindowController *) addController add: (BOOL) add;
122
123- (void) invalidOpenAlert: (NSString *) filename;
124- (void) invalidOpenMagnetAlert: (NSString *) address;
125- (void) duplicateOpenAlert: (NSString *) name;
126- (void) duplicateOpenMagnetAlert: (NSString *) address transferName: (NSString *) name;
127
128- (void) openURL: (NSString *) urlString;
129- (void) openURLShowSheet: (id) sender;
130- (void) urlSheetDidEnd: (URLSheetWindowController *) controller url: (NSString *) urlString returnCode: (NSInteger) returnCode;
131
132- (void) quitSheetDidEnd: (NSWindow *) sheet returnCode: (NSInteger) returnCode contextInfo: (void *) contextInfo;
133
134- (void) createFile: (id) sender;
135
136- (void) resumeSelectedTorrents:    (id) sender;
137- (void) resumeAllTorrents:         (id) sender;
138- (void) resumeTorrents:            (NSArray *) torrents;
139
140- (void) resumeSelectedTorrentsNoWait:  (id) sender;
141- (void) resumeWaitingTorrents:         (id) sender;
142- (void) resumeTorrentsNoWait:          (NSArray *) torrents;
143
144- (void) stopSelectedTorrents:      (id) sender;
145- (void) stopAllTorrents:           (id) sender;
146- (void) stopTorrents:              (NSArray *) torrents;
147
148- (void) removeTorrents: (NSArray *) torrents deleteData: (BOOL) deleteData;
149- (void) removeSheetDidEnd: (NSWindow *) sheet returnCode: (NSInteger) returnCode
150                        contextInfo: (NSDictionary *) dict;
151- (void) confirmRemoveTorrents: (NSArray *) torrents deleteData: (BOOL) deleteData;
152- (void) removeNoDelete:                (id) sender;
153- (void) removeDeleteData:              (id) sender;
154
155- (void) clearCompleted: (id) sender;
156
157- (void) moveDataFilesSelected: (id) sender;
158- (void) moveDataFiles: (NSArray *) torrents;
159
160- (void) copyTorrentFiles: (id) sender;
161- (void) copyTorrentFileForTorrents: (NSMutableArray *) torrents;
162
163- (void) copyMagnetLinks: (id) sender;
164
165- (void) revealFile: (id) sender;
166
167- (void) announceSelectedTorrents: (id) sender;
168
169- (void) verifySelectedTorrents: (id) sender;
170- (void) verifyTorrents: (NSArray *) torrents;
171
172- (void) showPreferenceWindow: (id) sender;
173
174- (void) showAboutWindow: (id) sender;
175
176- (void) showInfo: (id) sender;
177- (void) resetInfo;
178- (void) setInfoTab: (id) sender;
179
180- (void) showMessageWindow: (id) sender;
181- (void) showStatsWindow: (id) sender;
182
183- (void) updateUI;
184- (void) fullUpdateUI;
185
186- (void) setBottomCountText: (BOOL) filtering;
187
188- (void) torrentFinishedDownloading: (NSNotification *) notification;
189- (void) torrentRestartedDownloading: (NSNotification *) notification;
190- (void) torrentFinishedSeeding: (NSNotification *) notification;
191
192- (void) updateTorrentHistory;
193
194- (void) applyFilter;
195
196- (void) sortTorrents: (BOOL) includeQueueOrder;
197- (void) sortTorrentsCallUpdates: (BOOL) callUpdates includeQueueOrder: (BOOL) includeQueueOrder;
198- (void) rearrangeTorrentTableArray: (NSMutableArray *) rearrangeArray forParent: (id) parent withSortDescriptors: (NSArray *) descriptors beganTableUpdate: (BOOL *) beganTableUpdate;
199- (void) setSort: (id) sender;
200- (void) setSortByGroup: (id) sender;
201- (void) setSortReverse: (id) sender;
202
203- (void) switchFilter: (id) sender;
204
205- (IBAction) showGlobalPopover: (id) sender;
206
207- (void) setGroup: (id) sender; //used by delegate-generated menu items
208
209- (void) toggleSpeedLimit: (id) sender;
210- (void) speedLimitChanged: (id) sender;
211- (void) altSpeedToggledCallbackIsLimited: (NSDictionary *) dict;
212
213- (void) setLimitGlobalEnabled: (id) sender;
214- (void) setQuickLimitGlobal: (id) sender;
215
216- (void) setRatioGlobalEnabled: (id) sender;
217- (void) setQuickRatioGlobal: (id) sender;
218
219- (void) changeAutoImport;
220- (void) checkAutoImportDirectory;
221
222- (void) beginCreateFile: (NSNotification *) notification;
223
224- (void) sleepCallback: (natural_t) messageType argument: (void *) messageArgument;
225
226- (void) torrentTableViewSelectionDidChange: (NSNotification *) notification;
227
228- (void) toggleSmallView: (id) sender;
229- (void) togglePiecesBar: (id) sender;
230- (void) toggleAvailabilityBar: (id) sender;
231- (void) toggleStatusString: (id) sender;
232
233- (void) toggleStatusBar: (id) sender;
234- (void) showStatusBar: (BOOL) show animate: (BOOL) animate;
235- (void) toggleFilterBar: (id) sender;
236- (void) showFilterBar: (BOOL) show animate: (BOOL) animate;
237- (void) focusFilterField;
238
239- (void) allToolbarClicked: (id) sender;
240- (void) selectedToolbarClicked: (id) sender;
241
242- (void) setWindowSizeToFit;
243- (NSRect) sizedWindowFrame;
244- (void) updateForAutoSize;
245- (void) setWindowMinMaxToCurrent;
246- (CGFloat) minWindowContentSizeAllowed;
247
248- (void) updateForExpandCollape;
249
250- (void) showMainWindow: (id) sender;
251
252- (void) toggleQuickLook: (id) sender;
253
254- (void) linkHomepage: (id) sender;
255- (void) linkForums: (id) sender;
256- (void) linkTrac: (id) sender;
257- (void) linkDonate: (id) sender;
258
259- (void) rpcCallback: (tr_rpc_callback_type) type forTorrentStruct: (struct tr_torrent *) torrentStruct;
260- (void) rpcAddTorrentStruct: (NSValue *) torrentStructPtr;
261- (void) rpcRemoveTorrent: (Torrent *) torrent;
262- (void) rpcRemoveTorrentDeleteData: (Torrent *) torrent;
263- (void) rpcStartedStoppedTorrent: (Torrent *) torrent;
264- (void) rpcChangedTorrent: (Torrent *) torrent;
265- (void) rpcMovedTorrent: (Torrent *) torrent;
266- (void) rpcUpdateQueue;
267
268@end
Note: See TracBrowser for help on using the repository browser.