3 This file is part of the HandBrake source code.
4 Homepage: <http://handbrake.m0k.org/>.
5 It may be used under the terms of the GNU General Public License. */
8 #include <Cocoa/Cocoa.h>
13 // HB_OUTLINE_QUEUE turns on an outline view for the queue.
14 #define HB_OUTLINE_QUEUE 1
15 #define HB_OUTLINE_METRIC_CONTROLS 0 // for tweaking the outline cell spacings
18 @interface HBQueueController : NSObject
21 HBController *fHBController;
22 NSViewAnimation *fAnimation;
23 BOOL fCurrentJobHidden; // YES when fCurrentJobPane has been shifted out of view (see showCurrentJobPane)
24 BOOL fShowsJobsAsGroups;
27 NSMutableArray *fEncodes; // hblib's job list organized in a hierarchy. Contents are NSArrays of HBJobs.
28 NSMutableIndexSet *fSavedExpandedItems;
29 unsigned int fSavedSelectedItem;
30 hb_job_t *fLastKnownCurrentJob;
33 // +---------------fQueueWindow----------------+
34 // |+-------------fCurrentJobPane-------------+|
38 // |+-----------------------------------------+|
39 // |+---------------fQueuePane----------------+|
47 // |+-----------------------------------------+|
48 // +-------------------------------------------+
50 IBOutlet NSWindow *fQueueWindow;
52 // fCurrentJobPane - visible only when processing a job
53 IBOutlet NSView *fCurrentJobPane;
54 IBOutlet NSImageView *fJobIconView;
55 IBOutlet NSTextField *fJobDescTextField;
56 IBOutlet NSProgressIndicator *fProgressBar;
57 IBOutlet NSTextField *fProgressTextField;
59 // fQueuePane - always visible; fills entire window when fCurrentJobPane is hidden
60 IBOutlet NSView *fQueuePane;
62 IBOutlet NSOutlineView *fOutlineView;
64 IBOutlet NSTableView *fTaskView;
66 IBOutlet NSTextField *fQueueCountField;
67 #if HB_OUTLINE_METRIC_CONTROLS
68 IBOutlet NSSlider *fIndentation; // debug
69 IBOutlet NSSlider *fSpacing; // debug
74 - (void)setHandle: (hb_handle_t *)handle;
75 - (void)setHBController: (HBController *)controller;
76 - (void)updateQueueUI;
77 - (void)updateCurrentJobUI;
79 - (IBAction)showQueueWindow: (id)sender;
80 - (IBAction)removeSelectedJob: (id)sender;
81 - (IBAction)cancelCurrentJob: (id)sender;
82 - (IBAction)showDetail: (id)sender;
83 - (IBAction)hideDetail: (id)sender;
84 - (IBAction)showJobsAsGroups: (id)sender;
85 - (IBAction)showJobsAsPasses: (id)sender;
86 - (IBAction)toggleStartCancel: (id)sender;
87 - (IBAction)togglePauseResume: (id)sender;
89 #if HB_OUTLINE_METRIC_CONTROLS
90 - (IBAction)imageSpacingChanged: (id)sender;
91 - (IBAction)indentChanged: (id)sender;