prevent popup deactivation while button_down
[goodguy/history.git] / cinelerra-5.0 / cinelerra / dvdcreate.h
1 #ifndef __DVDCREATE_H__
2 #define __DVDCREATE_H__
3
4 #include "arraylist.h"
5 #include "batchrender.h"
6 #include "bcwindowbase.h"
7 #include "bcbutton.h"
8 #include "bcdialog.h"
9 #include "bcmenuitem.h"
10 #include "bctextbox.h"
11 #include "mwindow.h"
12
13 #include "dvdcreate.inc"
14
15
16 class CreateDVD_MenuItem : public BC_MenuItem
17 {
18 public:
19         CreateDVD_MenuItem(MWindow *mwindow);
20         int handle_event();
21         MWindow *mwindow;
22 };
23
24
25 class CreateDVD_Thread : public BC_DialogThread
26 {
27         static const int64_t DVD_SIZE;
28         static const int DVD_STREAMS, DVD_WIDTH, DVD_HEIGHT;
29         static const double DVD_ASPECT_WIDTH, DVD_ASPECT_HEIGHT;
30         static const double DVD_WIDE_ASPECT_WIDTH, DVD_WIDE_ASPECT_HEIGHT;
31         static const int DVD_MAX_BITRATE, DVD_CHANNELS, DVD_WIDE_CHANNELS;
32         static const double DVD_FRAMERATE, DVD_SAMPLERATE, DVD_KAUDIO_RATE;
33 public:
34         CreateDVD_Thread(MWindow *mwindow);
35         ~CreateDVD_Thread();
36         void handle_close_event(int result);
37         BC_Window* new_gui();
38         int option_presets();
39         int create_dvd_jobs(ArrayList<BatchRenderJob*> *jobs,
40                 const char *tmp_path, const char *asset_title);
41         int insert_video_plugin(const char *title, KeyFrame *default_keyframe);
42         int resize_tracks();
43
44         MWindow *mwindow;
45         CreateDVD_GUI *gui;
46         char asset_title[BCTEXTLEN];
47         char tmp_path[BCTEXTLEN];
48         int use_deinterlace, use_inverse_telecine;
49         int use_scale, use_resize_tracks;
50         int use_wide_audio, use_wide_aspect;
51         int use_histogram, use_label_chapters;
52         int use_ffmpeg;
53 };
54
55 class CreateDVD_OK : public BC_OKButton
56 {
57 public:
58         CreateDVD_OK(CreateDVD_GUI *gui, int x, int y);
59         ~CreateDVD_OK();
60         int button_press_event();
61         int keypress_event();
62
63         CreateDVD_GUI *gui;
64 };
65
66 class CreateDVD_Cancel : public BC_CancelButton
67 {
68 public:
69         CreateDVD_Cancel(CreateDVD_GUI *gui, int x, int y);
70         ~CreateDVD_Cancel();
71         int button_press_event();
72
73         CreateDVD_GUI *gui;
74 };
75
76
77 class CreateDVD_DiskSpace : public BC_Title
78 {
79 public:
80         CreateDVD_DiskSpace(CreateDVD_GUI *gui, int x, int y);
81         ~CreateDVD_DiskSpace();
82         int64_t tmp_path_space();
83         void update();
84
85         CreateDVD_GUI *gui;
86 };
87
88 class CreateDVD_TmpPath : public BC_TextBox
89 {
90 public:
91         CreateDVD_TmpPath(CreateDVD_GUI *gui, int x, int y, int w);
92         ~CreateDVD_TmpPath();
93         int handle_event();
94
95         CreateDVD_GUI *gui;
96 };
97
98
99 class CreateDVD_AssetTitle : public BC_TextBox
100 {
101 public:
102         CreateDVD_AssetTitle(CreateDVD_GUI *gui, int x, int y, int w);
103         ~CreateDVD_AssetTitle();
104
105         CreateDVD_GUI *gui;
106 };
107
108 class CreateDVD_Deinterlace : public BC_CheckBox
109 {
110 public:
111         CreateDVD_Deinterlace(CreateDVD_GUI *gui, int x, int y);
112         ~CreateDVD_Deinterlace();
113         int handle_event();
114
115         CreateDVD_GUI *gui;
116 };
117
118 class CreateDVD_InverseTelecine : public BC_CheckBox
119 {
120 public:
121         CreateDVD_InverseTelecine(CreateDVD_GUI *gui, int x, int y);
122         ~CreateDVD_InverseTelecine();
123         int handle_event();
124
125         CreateDVD_GUI *gui;
126 };
127
128 class CreateDVD_Scale : public BC_CheckBox
129 {
130 public:
131         CreateDVD_Scale(CreateDVD_GUI *gui, int x, int y);
132         ~CreateDVD_Scale();
133
134         CreateDVD_GUI *gui;
135 };
136
137 class CreateDVD_ResizeTracks : public BC_CheckBox
138 {
139 public:
140         CreateDVD_ResizeTracks(CreateDVD_GUI *gui, int x, int y);
141         ~CreateDVD_ResizeTracks();
142
143         CreateDVD_GUI *gui;
144 };
145
146 class CreateDVD_Histogram : public BC_CheckBox
147 {
148 public:
149         CreateDVD_Histogram(CreateDVD_GUI *gui, int x, int y);
150         ~CreateDVD_Histogram();
151
152         CreateDVD_GUI *gui;
153 };
154
155 class CreateDVD_LabelChapters : public BC_CheckBox
156 {
157 public:
158         CreateDVD_LabelChapters(CreateDVD_GUI *gui, int x, int y);
159         ~CreateDVD_LabelChapters();
160
161         CreateDVD_GUI *gui;
162 };
163
164 class CreateDVD_WideAudio : public BC_CheckBox
165 {
166 public:
167         CreateDVD_WideAudio(CreateDVD_GUI *gui, int x, int y);
168         ~CreateDVD_WideAudio();
169
170         CreateDVD_GUI *gui;
171 };
172
173 class CreateDVD_WideAspect : public BC_CheckBox
174 {
175 public:
176         CreateDVD_WideAspect(CreateDVD_GUI *gui, int x, int y);
177         ~CreateDVD_WideAspect();
178
179         CreateDVD_GUI *gui;
180 };
181
182 class CreateDVD_UseFFMpeg : public BC_CheckBox
183 {
184 public:
185         CreateDVD_UseFFMpeg(CreateDVD_GUI *gui, int x, int y);
186         ~CreateDVD_UseFFMpeg();
187
188         CreateDVD_GUI *gui;
189 };
190
191 class CreateDVD_GUI : public BC_Window
192 {
193 public:
194         CreateDVD_GUI(CreateDVD_Thread *thread,
195                 int x, int y, int w, int h);
196         ~CreateDVD_GUI();
197
198         void create_objects();
199         int resize_event(int w, int h);
200         int translation_event();
201         int close_event();
202
203         int64_t needed_disk_space;
204         CreateDVD_Thread *thread;
205         int at_x, at_y;
206         CreateDVD_AssetTitle *asset_title;
207         int tmp_x, tmp_y;
208         CreateDVD_TmpPath *tmp_path;
209         CreateDVD_DiskSpace *disk_space;
210         CreateDVD_Deinterlace *need_deinterlace;
211         CreateDVD_InverseTelecine *need_inverse_telecine;
212         CreateDVD_Scale *need_scale;
213         CreateDVD_UseFFMpeg *need_use_ffmpeg;
214         CreateDVD_ResizeTracks *need_resize_tracks;
215         CreateDVD_Histogram *need_histogram;
216         CreateDVD_WideAudio *need_wide_audio;
217         CreateDVD_WideAspect *need_wide_aspect;
218         CreateDVD_LabelChapters *need_label_chapters;
219         int ok_x, ok_y, ok_w, ok_h;
220         CreateDVD_OK *ok;
221         int cancel_x, cancel_y, cancel_w, cancel_h;
222         CreateDVD_Cancel *cancel;
223 };
224
225 #endif