4 * Copyright (C) 2008 Adam Williams <broadcast at earthling dot net>
5 * Copyright (C) 2003-2016 Cinelerra CV contributors
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
30 #include "filexml.inc"
33 #include "formatpresets.h"
34 #include "mwindow.inc"
39 class InterlacemodePulldown;
40 class ColormodelPulldown;
45 New(MWindow *mwindow);
48 virtual void create_objects() = 0;
50 int create_new_project(int load_mode);
51 void create_new_edl();
58 class NewProject : public BC_MenuItem, public New
61 NewProject(MWindow *mwindow);
64 void create_objects();
65 int handle_event() { return New::handle_event(); }
68 class AppendTracks : public BC_MenuItem, public New
71 AppendTracks(MWindow *mwindow);
74 void create_objects();
75 int handle_event() { return New::handle_event(); }
78 class NewThread : public BC_DialogThread
81 NewThread(MWindow *mwindow, New *new_project, const char *title, int load_mode);
85 void handle_done_event(int result);
86 void handle_close_event(int result);
100 class NewWindow : public BC_Window
103 NewWindow(MWindow *mwindow, NewThread *new_thread, int x, int y);
106 void create_objects();
110 NewThread *new_thread;
113 BC_TextBox *achannels;
114 BC_TextBox *sample_rate;
116 BC_TextBox *vchannels;
117 BC_TextBox *frame_rate;
118 BC_TextBox *aspect_w_text, *aspect_h_text;
119 BC_TextBox *output_w_text, *output_h_text;
120 BC_TextBox *folder, *name;
121 BC_RecentList *recent_folder;
122 InterlacemodePulldown *interlace_pulldown;
123 ColormodelPulldown *color_model;
124 NewPresets *format_presets;
127 class NewPresets : public FormatPresets
130 NewPresets(MWindow *mwindow, NewWindow *gui, int x, int y);
137 class NewSwapExtents : public BC_Button
140 NewSwapExtents(MWindow *mwindow, NewWindow *gui, int x, int y);
148 class NewATracks : public BC_TextBox
151 NewATracks(NewWindow *nwindow, const char *text, int x, int y);
156 class NewATracksTumbler : public BC_Tumbler
159 NewATracksTumbler(NewWindow *nwindow, int x, int y);
160 int handle_up_event();
161 int handle_down_event();
165 class NewAChannels : public BC_TextBox
168 NewAChannels(NewWindow *nwindow, const char *text, int x, int y);
173 class NewAChannelsTumbler : public BC_Tumbler
176 NewAChannelsTumbler(NewWindow *nwindow, int x, int y);
177 int handle_up_event();
178 int handle_down_event();
182 class NewSampleRate : public BC_TextBox
185 NewSampleRate(NewWindow *nwindow, const char *text, int x, int y);
191 class SampleRatePulldown : public BC_ListBox
194 SampleRatePulldown(MWindow *mwindow, BC_TextBox *output, int x, int y);
207 class NewVTracks : public BC_TextBox
210 NewVTracks(NewWindow *nwindow, const char *text, int x, int y);
215 class NewVTracksTumbler : public BC_Tumbler
218 NewVTracksTumbler(NewWindow *nwindow, int x, int y);
219 int handle_up_event();
220 int handle_down_event();
224 class NewVChannels : public BC_TextBox
227 NewVChannels(NewWindow *nwindow, const char *text, int x, int y);
232 class NewVChannelsTumbler : public BC_Tumbler
235 NewVChannelsTumbler(NewWindow *nwindow, int x, int y);
236 int handle_up_event();
237 int handle_down_event();
241 class NewFrameRate : public BC_TextBox
244 NewFrameRate(NewWindow *nwindow, const char *text, int x, int y);
249 class FrameRatePulldown : public BC_ListBox
252 FrameRatePulldown(MWindow *mwindow, BC_TextBox *output, int x, int y);
258 class NewTrackW : public BC_TextBox
261 NewTrackW(NewWindow *nwindow, int x, int y);
266 class NewTrackH : public BC_TextBox
269 NewTrackH(NewWindow *nwindow, int x, int y);
274 class FrameSizePulldown : public BC_ListBox
277 FrameSizePulldown(Theme *theme,
278 BC_TextBox *output_w,
279 BC_TextBox *output_h,
284 BC_TextBox *output_w;
285 BC_TextBox *output_h;
288 class NewOutputW : public BC_TextBox
291 NewOutputW(NewWindow *nwindow, int x, int y);
296 class NewOutputH : public BC_TextBox
299 NewOutputH(NewWindow *nwindow, int x, int y);
304 class NewAspectAuto : public BC_CheckBox
307 NewAspectAuto(NewWindow *nwindow, int x, int y);
313 class NewAspectW : public BC_TextBox
316 NewAspectW(NewWindow *nwindow, const char *text, int x, int y);
321 class NewAspectH : public BC_TextBox
324 NewAspectH(NewWindow *nwindow, const char *text, int x, int y);
329 class AspectPulldown : public BC_ListBox
332 AspectPulldown(MWindow *mwindow,
333 BC_TextBox *output_w,
334 BC_TextBox *output_h,
339 BC_TextBox *output_w;
340 BC_TextBox *output_h;
343 class ColormodelItem : public BC_ListBoxItem
346 ColormodelItem(const char *text, int value);
350 class ColormodelPulldown : public BC_ListBox
353 ColormodelPulldown(MWindow *mwindow,
354 BC_TextBox *output_text,
359 const char* colormodel_to_text();
360 void update_value(int value);
362 BC_TextBox *output_text;
366 class InterlacemodeItem : public BC_ListBoxItem
369 InterlacemodeItem(const char *text, int value);
373 class InterlacemodePulldown : public BC_ListBox
376 InterlacemodePulldown(MWindow *mwindow,
377 BC_TextBox *output_text,
379 ArrayList<BC_ListBoxItem*> *data,
383 const char* interlacemode_to_text();
384 int update(int value);
386 BC_TextBox *output_text;
389 char string[BCTEXTLEN];