4 * Copyright (C) 2008 Adam Williams <broadcast at earthling dot net>
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
29 #include "filexml.inc"
32 #include "formatpresets.h"
33 #include "mwindow.inc"
38 class InterlacemodePulldown;
39 class ColormodelPulldown;
44 New(MWindow *mwindow);
47 virtual void create_objects() = 0;
49 int create_new_project(int load_mode);
50 void create_new_edl();
57 class NewProject : public BC_MenuItem, public New
60 NewProject(MWindow *mwindow);
63 void create_objects();
64 int handle_event() { return New::handle_event(); }
67 class AppendTracks : public BC_MenuItem, public New
70 AppendTracks(MWindow *mwindow);
73 void create_objects();
74 int handle_event() { return New::handle_event(); }
77 class NewThread : public BC_DialogThread
80 NewThread(MWindow *mwindow, New *new_project, const char *title, int load_mode);
84 void handle_done_event(int result);
85 void handle_close_event(int result);
99 class NewWindow : public BC_Window
102 NewWindow(MWindow *mwindow, NewThread *new_thread, int x, int y);
105 void create_objects();
109 NewThread *new_thread;
112 BC_TextBox *achannels;
113 BC_TextBox *sample_rate;
115 BC_TextBox *vchannels;
116 BC_TextBox *frame_rate;
117 BC_TextBox *aspect_w_text, *aspect_h_text;
118 BC_TextBox *output_w_text, *output_h_text;
119 BC_TextBox *folder, *name;
120 BC_RecentList *recent_folder;
121 InterlacemodePulldown *interlace_pulldown;
122 ColormodelPulldown *color_model;
123 NewPresets *format_presets;
126 class NewPresets : public FormatPresets
129 NewPresets(MWindow *mwindow, NewWindow *gui, int x, int y);
136 class NewSwapExtents : public BC_Button
139 NewSwapExtents(MWindow *mwindow, NewWindow *gui, int x, int y);
147 class NewATracks : public BC_TextBox
150 NewATracks(NewWindow *nwindow, const char *text, int x, int y);
155 class NewATracksTumbler : public BC_Tumbler
158 NewATracksTumbler(NewWindow *nwindow, int x, int y);
159 int handle_up_event();
160 int handle_down_event();
164 class NewAChannels : public BC_TextBox
167 NewAChannels(NewWindow *nwindow, const char *text, int x, int y);
172 class NewAChannelsTumbler : public BC_Tumbler
175 NewAChannelsTumbler(NewWindow *nwindow, int x, int y);
176 int handle_up_event();
177 int handle_down_event();
181 class NewSampleRate : public BC_TextBox
184 NewSampleRate(NewWindow *nwindow, const char *text, int x, int y);
190 class SampleRatePulldown : public BC_ListBox
193 SampleRatePulldown(MWindow *mwindow, BC_TextBox *output, int x, int y);
206 class NewVTracks : public BC_TextBox
209 NewVTracks(NewWindow *nwindow, const char *text, int x, int y);
214 class NewVTracksTumbler : public BC_Tumbler
217 NewVTracksTumbler(NewWindow *nwindow, int x, int y);
218 int handle_up_event();
219 int handle_down_event();
223 class NewVChannels : public BC_TextBox
226 NewVChannels(NewWindow *nwindow, const char *text, int x, int y);
231 class NewVChannelsTumbler : public BC_Tumbler
234 NewVChannelsTumbler(NewWindow *nwindow, int x, int y);
235 int handle_up_event();
236 int handle_down_event();
240 class NewFrameRate : public BC_TextBox
243 NewFrameRate(NewWindow *nwindow, const char *text, int x, int y);
248 class FrameRatePulldown : public BC_ListBox
251 FrameRatePulldown(MWindow *mwindow, BC_TextBox *output, int x, int y);
257 class NewTrackW : public BC_TextBox
260 NewTrackW(NewWindow *nwindow, int x, int y);
265 class NewTrackH : public BC_TextBox
268 NewTrackH(NewWindow *nwindow, int x, int y);
273 class FrameSizePulldown : public BC_ListBox
276 FrameSizePulldown(Theme *theme,
277 BC_TextBox *output_w,
278 BC_TextBox *output_h,
283 BC_TextBox *output_w;
284 BC_TextBox *output_h;
287 class NewOutputW : public BC_TextBox
290 NewOutputW(NewWindow *nwindow, int x, int y);
295 class NewOutputH : public BC_TextBox
298 NewOutputH(NewWindow *nwindow, int x, int y);
303 class NewAspectAuto : public BC_CheckBox
306 NewAspectAuto(NewWindow *nwindow, int x, int y);
312 class NewAspectW : public BC_TextBox
315 NewAspectW(NewWindow *nwindow, const char *text, int x, int y);
320 class NewAspectH : public BC_TextBox
323 NewAspectH(NewWindow *nwindow, const char *text, int x, int y);
328 class AspectPulldown : public BC_ListBox
331 AspectPulldown(MWindow *mwindow,
332 BC_TextBox *output_w,
333 BC_TextBox *output_h,
338 BC_TextBox *output_w;
339 BC_TextBox *output_h;
342 class ColormodelItem : public BC_ListBoxItem
345 ColormodelItem(const char *text, int value);
349 class ColormodelPulldown : public BC_ListBox
352 ColormodelPulldown(MWindow *mwindow,
353 BC_TextBox *output_text,
358 const char* colormodel_to_text();
359 void update_value(int value);
361 BC_TextBox *output_text;
365 class InterlacemodeItem : public BC_ListBoxItem
368 InterlacemodeItem(const char *text, int value);
372 class InterlacemodePulldown : public BC_ListBox
375 InterlacemodePulldown(MWindow *mwindow,
376 BC_TextBox *output_text,
378 ArrayList<BC_ListBoxItem*> *data,
382 const char* interlacemode_to_text();
383 int update(int value);
385 BC_TextBox *output_text;
388 char string[BCTEXTLEN];
391 class InterlacefixmethodItem : public BC_ListBoxItem
394 InterlacefixmethodItem(const char *text, int value);
398 class InterlacefixmethodPulldown : public BC_ListBox
401 InterlacefixmethodPulldown(MWindow *mwindow,
402 BC_TextBox *output_text,
404 ArrayList<BC_ListBoxItem*> *data,
408 const char* interlacefixmethod_to_text();
410 BC_TextBox *output_text;
413 char string[BCTEXTLEN];