prevent popup deactivation while button_down
[goodguy/history.git] / cinelerra-5.0 / cinelerra / bdcreate.h
1 #ifndef __BDCREATE_H__
2 #define __BDCREATE_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 "bdcreate.inc"
14
15
16
17
18 class CreateBD_MenuItem : public BC_MenuItem
19 {
20 public:
21         CreateBD_MenuItem(MWindow *mwindow);
22         int handle_event();
23         MWindow *mwindow;
24 };
25
26
27 class CreateBD_Thread : public BC_DialogThread
28 {
29         static const int64_t BD_SIZE;
30         static const int BD_STREAMS, BD_WIDTH, BD_HEIGHT;
31         static const double BD_ASPECT_WIDTH, BD_ASPECT_HEIGHT;
32         static const double BD_WIDE_ASPECT_WIDTH, BD_WIDE_ASPECT_HEIGHT;
33         static const int BD_MAX_BITRATE, BD_CHANNELS, BD_WIDE_CHANNELS;
34         static const double BD_FRAMERATE, BD_SAMPLERATE, BD_KAUDIO_RATE;
35 public:
36         CreateBD_Thread(MWindow *mwindow);
37         ~CreateBD_Thread();
38         void handle_close_event(int result);
39         BC_Window* new_gui();
40         int option_presets();
41         int create_bd_jobs(ArrayList<BatchRenderJob*> *jobs,
42                 const char *tmp_path, const char *asset_title);
43         int insert_video_plugin(const char *title, KeyFrame *default_keyframe);
44         int resize_tracks();
45
46         MWindow *mwindow;
47         CreateBD_GUI *gui;
48         char asset_title[BCTEXTLEN];
49         char tmp_path[BCTEXTLEN];
50         int use_deinterlace, use_inverse_telecine;
51         int use_scale, use_resize_tracks;
52         int use_wide_audio, use_wide_aspect;
53         int use_histogram, use_label_chapters;
54 };
55
56 class CreateBD_OK : public BC_OKButton
57 {
58 public:
59         CreateBD_OK(CreateBD_GUI *gui, int x, int y);
60         ~CreateBD_OK();
61         int button_press_event();
62         int keypress_event();
63
64         CreateBD_GUI *gui;
65 };
66
67 class CreateBD_Cancel : public BC_CancelButton
68 {
69 public:
70         CreateBD_Cancel(CreateBD_GUI *gui, int x, int y);
71         ~CreateBD_Cancel();
72         int button_press_event();
73
74         CreateBD_GUI *gui;
75 };
76
77
78 class CreateBD_DiskSpace : public BC_Title
79 {
80 public:
81         CreateBD_DiskSpace(CreateBD_GUI *gui, int x, int y);
82         ~CreateBD_DiskSpace();
83         int64_t tmp_path_space();
84         void update();
85
86         CreateBD_GUI *gui;
87 };
88
89 class CreateBD_TmpPath : public BC_TextBox
90 {
91 public:
92         CreateBD_TmpPath(CreateBD_GUI *gui, int x, int y, int w);
93         ~CreateBD_TmpPath();
94         int handle_event();
95
96         CreateBD_GUI *gui;
97 };
98
99
100 class CreateBD_AssetTitle : public BC_TextBox
101 {
102 public:
103         CreateBD_AssetTitle(CreateBD_GUI *gui, int x, int y, int w);
104         ~CreateBD_AssetTitle();
105
106         CreateBD_GUI *gui;
107 };
108
109 class CreateBD_Deinterlace : public BC_CheckBox
110 {
111 public:
112         CreateBD_Deinterlace(CreateBD_GUI *gui, int x, int y);
113         ~CreateBD_Deinterlace();
114         int handle_event();
115
116         CreateBD_GUI *gui;
117 };
118
119 class CreateBD_InverseTelecine : public BC_CheckBox
120 {
121 public:
122         CreateBD_InverseTelecine(CreateBD_GUI *gui, int x, int y);
123         ~CreateBD_InverseTelecine();
124         int handle_event();
125
126         CreateBD_GUI *gui;
127 };
128
129 class CreateBD_Scale : public BC_CheckBox
130 {
131 public:
132         CreateBD_Scale(CreateBD_GUI *gui, int x, int y);
133         ~CreateBD_Scale();
134
135         CreateBD_GUI *gui;
136 };
137
138 class CreateBD_ResizeTracks : public BC_CheckBox
139 {
140 public:
141         CreateBD_ResizeTracks(CreateBD_GUI *gui, int x, int y);
142         ~CreateBD_ResizeTracks();
143
144         CreateBD_GUI *gui;
145 };
146
147 class CreateBD_Histogram : public BC_CheckBox
148 {
149 public:
150         CreateBD_Histogram(CreateBD_GUI *gui, int x, int y);
151         ~CreateBD_Histogram();
152
153         CreateBD_GUI *gui;
154 };
155
156 class CreateBD_LabelChapters : public BC_CheckBox
157 {
158 public:
159         CreateBD_LabelChapters(CreateBD_GUI *gui, int x, int y);
160         ~CreateBD_LabelChapters();
161
162         CreateBD_GUI *gui;
163 };
164
165 class CreateBD_WideAudio : public BC_CheckBox
166 {
167 public:
168         CreateBD_WideAudio(CreateBD_GUI *gui, int x, int y);
169         ~CreateBD_WideAudio();
170
171         CreateBD_GUI *gui;
172 };
173
174 class CreateBD_WideAspect : public BC_CheckBox
175 {
176 public:
177         CreateBD_WideAspect(CreateBD_GUI *gui, int x, int y);
178         ~CreateBD_WideAspect();
179
180         CreateBD_GUI *gui;
181 };
182
183 class CreateBD_GUI : public BC_Window
184 {
185 public:
186         CreateBD_GUI(CreateBD_Thread *thread,
187                 int x, int y, int w, int h);
188         ~CreateBD_GUI();
189
190         void create_objects();
191         int resize_event(int w, int h);
192         int translation_event();
193         int close_event();
194
195         int64_t needed_disk_space;
196         CreateBD_Thread *thread;
197         int at_x, at_y;
198         CreateBD_AssetTitle *asset_title;
199         int tmp_x, tmp_y;
200         CreateBD_TmpPath *tmp_path;
201         CreateBD_DiskSpace *disk_space;
202         CreateBD_Deinterlace *need_deinterlace;
203         CreateBD_InverseTelecine *need_inverse_telecine;
204         CreateBD_Scale *need_scale;
205         CreateBD_ResizeTracks *need_resize_tracks;
206         CreateBD_Histogram *need_histogram;
207         CreateBD_WideAudio *need_wide_audio;
208         CreateBD_WideAspect *need_wide_aspect;
209         CreateBD_LabelChapters *need_label_chapters;
210         int ok_x, ok_y, ok_w, ok_h;
211         CreateBD_OK *ok;
212         int cancel_x, cancel_y, cancel_w, cancel_h;
213         CreateBD_Cancel *cancel;
214 };
215
216 #endif