OSDN Git Service

WinGui:
[handbrake-jp/handbrake-jp-git.git] / macosx / HBQueueController.h
1 /* HBQueueController
2
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. */
6
7
8 #include <Cocoa/Cocoa.h>
9
10 #include "hb.h"
11 @class HBController;
12
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
16
17
18 @interface HBQueueController : NSObject
19 {
20     hb_handle_t                  *fHandle;
21     HBController                 *fHBController;
22     NSViewAnimation              *fAnimation;
23     BOOL                         fCurrentJobHidden;  // YES when fCurrentJobPane has been shifted out of view (see showCurrentJobPane)
24     BOOL                         fShowsJobsAsGroups;
25     BOOL                         fShowsDetail;
26 #if HB_OUTLINE_QUEUE
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;
31 #endif
32     
33     //  +---------------fQueueWindow----------------+
34     //  |+-------------fCurrentJobPane-------------+|
35     //  ||                                         ||
36     //  ||                                         ||
37     //  ||                                         ||
38     //  |+-----------------------------------------+|
39     //  |+---------------fQueuePane----------------+|
40     //  ||                                         ||
41     //  ||                                         ||
42     //  ||                                         ||
43     //  ||                                         ||
44     //  ||                                         ||
45     //  ||                                         ||
46     //  ||                                         ||
47     //  |+-----------------------------------------+|
48     //  +-------------------------------------------+
49     
50     IBOutlet NSWindow            *fQueueWindow;
51
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;
58     
59     // fQueuePane - always visible; fills entire window when fCurrentJobPane is hidden
60     IBOutlet NSView              *fQueuePane;
61 #if HB_OUTLINE_QUEUE
62     IBOutlet NSOutlineView       *fOutlineView;
63 #else
64     IBOutlet NSTableView         *fTaskView;
65 #endif
66     IBOutlet NSTextField         *fQueueCountField;
67 #if HB_OUTLINE_METRIC_CONTROLS
68     IBOutlet NSSlider            *fIndentation; // debug
69     IBOutlet NSSlider            *fSpacing;     // debug
70 #endif
71     
72 }
73
74 - (void)setHandle: (hb_handle_t *)handle;
75 - (void)setHBController: (HBController *)controller;
76 - (void)updateQueueUI;
77 - (void)updateCurrentJobUI;
78
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;
88
89 #if HB_OUTLINE_METRIC_CONTROLS
90 - (IBAction)imageSpacingChanged: (id)sender;
91 - (IBAction)indentChanged: (id)sender;
92 #endif
93
94 @end