#include <string.h>
-#define WIDTH 600
-#define HEIGHT 400
-
+#define WIDTH 640
+#define HEIGHT 425
New::New(MWindow *mwindow)
- : BC_MenuItem(_("New"), "n", 'n')
+ : BC_MenuItem(_("New Project..."), "n", 'n')
{
this->mwindow = mwindow;
script = 0;
mwindow->gui->unlock_window();
mwindow->edl->save_defaults(mwindow->defaults);
create_new_edl();
- create_new_project();
-// thread->start();
+ thread->start();
mwindow->gui->lock_window("New::handle_event");
return 1;
void New::create_new_edl()
{
- if(!new_edl)
- {
+ if( !new_edl ) {
new_edl = new EDL;
new_edl->create_objects();
new_edl->load_defaults(mwindow->defaults);
int New::create_new_project()
{
- mwindow->cwindow->playback_engine->que->send_command(STOP,
- CHANGE_NONE,
- 0,
- 0);
-
- for(int i = 0; i < mwindow->vwindows.size(); i++)
- {
- VWindow *vwindow = mwindow->vwindows.get(i);
- if( !vwindow->is_running() ) continue;
- vwindow->playback_engine->que->send_command(STOP, CHANGE_NONE, 0, 0);
- vwindow->playback_engine->interrupt_playback(0);
- }
-
- mwindow->cwindow->playback_engine->interrupt_playback(0);
-
+ mwindow->stop_playback(0);
mwindow->gui->lock_window();
mwindow->reset_caches();
-
-
memcpy(new_edl->session->achannel_positions,
&mwindow->preferences->channel_positions[
MAXCHANNELS * (new_edl->session->audio_channels - 1)],
// Load file sequence
mwindow->update_project(LOADMODE_REPLACE);
mwindow->session->changes_made = 0;
- mwindow->undo->update_undo_after(_("New"), LOAD_ALL);
+ mwindow->undo->update_undo_after(_("New Project"), LOAD_ALL);
mwindow->gui->unlock_window();
return 0;
}
close_window();
}
-
-
BC_Window* NewThread::new_gui()
{
mwindow->edl->save_defaults(mwindow->defaults);
load_defaults();
mwindow->gui->lock_window("NewThread::new_gui");
- int x = mwindow->gui->get_abs_cursor_x(0) - WIDTH / 2;
- int y = mwindow->gui->get_abs_cursor_y(0) - HEIGHT / 2;
+ int x = mwindow->gui->get_pop_cursor_x(0);
+ int y = mwindow->gui->get_pop_cursor_y(0);
nwindow = new NewWindow(mwindow, this, x, y);
nwindow->create_objects();
return nwindow;
}
-
-
void NewThread::handle_close_event(int result)
{
-
+ if( !new_project->new_edl ) return;
new_project->new_edl->save_defaults(mwindow->defaults);
mwindow->defaults->save();
- if(result)
- {
+ if( result ) {
// Aborted
if( !new_project->new_edl->Garbage::remove_user() )
new_project->new_edl = 0;
}
- else
- {
+ else {
new_project->create_new_project();
}
}
-
-
int NewThread::load_defaults()
{
auto_aspect = mwindow->defaults->get("AUTOASPECT", 0);
int NewThread::update_aspect()
{
- if(auto_aspect)
- {
+ if( auto_aspect ) {
char string[BCTEXTLEN];
mwindow->create_aspect_ratio(new_project->new_edl->session->aspect_w,
new_project->new_edl->session->aspect_h,
}
-
-
NewWindow::NewWindow(MWindow *mwindow, NewThread *new_thread, int x, int y)
- : BC_Window(_(_(PROGRAM_NAME ": New Project")),
- x,
- y,
- WIDTH,
- HEIGHT,
- -1,
- -1,
- 0,
- 0,
- 1)
+ : BC_Window(_(PROGRAM_NAME ": New Project"), x, y, WIDTH, HEIGHT,
+ -1, -1, 0, 0, 1)
{
this->mwindow = mwindow;
this->new_thread = new_thread;
NewWindow::~NewWindow()
{
lock_window("NewWindow::~NewWindow");
- if(format_presets) delete format_presets;
+ if( format_presets ) delete format_presets;
unlock_window();
}
x = format_presets->x;
y = format_presets->y;
-
-
y += 40;
y1 = y;
add_subwindow(new BC_Title(x, y, _("Audio"), LARGEFONT));
y += 30;
x1 = x;
add_subwindow(new BC_Title(x1, y, _("Tracks:")));
- x1 += 100;
+ x1 += 115;
add_subwindow(vtracks = new NewVTracks(this, "", x1, y));
x1 += vtracks->get_w();
add_subwindow(new NewVTracksTumbler(this, x1, y));
// y += vchannels->get_h() + 5;
x1 = x;
add_subwindow(new BC_Title(x1, y, _("Framerate:")));
- x1 += 100;
+ x1 += 115;
add_subwindow(frame_rate = new NewFrameRate(this, "", x1, y));
x1 += frame_rate->get_w();
add_subwindow(new FrameRatePulldown(mwindow, frame_rate, x1, y));
x1 = x;
add_subwindow(new BC_Title(x1, y, _("Canvas size:")));
- x1 += 100;
+ x1 += 115;
add_subwindow(output_w_text = new NewOutputW(this, x1, y));
x1 += output_w_text->get_w() + 2;
add_subwindow(new BC_Title(x1, y, "x"));
output_h_text,
x1,
y));
- x1 += pulldown->get_w() + 5;
+ x1 += pulldown->get_w() + 10;
add_subwindow(new NewSwapExtents(mwindow, this, x1, y));
y += output_h_text->get_h() + 5;
x1 = x;
add_subwindow(new BC_Title(x1, y, _("Aspect ratio:")));
- x1 += 100;
+ x1 += 115;
add_subwindow(aspect_w_text = new NewAspectW(this, "", x1, y));
x1 += aspect_w_text->get_w() + 2;
add_subwindow(new BC_Title(x1, y, ":"));
add_subwindow(aspect_h_text = new NewAspectH(this, "", x1, y));
x1 += aspect_h_text->get_w();
add_subwindow(new AspectPulldown(mwindow,
- aspect_w_text,
- aspect_h_text,
- x1,
- y));
+ aspect_w_text, aspect_h_text, x1, y));
x1 = aspect_w_text->get_x();
y += aspect_w_text->get_h() + 5;
add_subwindow(new NewAspectAuto(this, x1, y));
y += 40;
- add_subwindow(new BC_Title(x, y, _("Color model:")));
- add_subwindow(textbox = new BC_TextBox(x + 100, y, 200, 1, ""));
+ BC_Title *title;
+ add_subwindow(title = new BC_Title(x, y, _("Color model:")));
+ x1 = x + title->get_w();
+ y1 = y; y += title->get_h() + 10;
+ add_subwindow(title = new BC_Title(x, y, _("Interlace mode:")));
+ int x2 = x + title->get_w();
+ int y2 = y; y += title->get_h() + 10;
+ if( x1 < x2 ) x1 = x2;
+ x1 += 20;
+ add_subwindow(textbox = new BC_TextBox(x1, y1, 150, 1, ""));
add_subwindow(color_model = new ColormodelPulldown(mwindow,
- textbox,
- &new_edl->session->color_model,
- x + 100 + textbox->get_w(),
- y));
- y += textbox->get_h() + 5;
-
- // --------------------
- add_subwindow(new BC_Title(x, y, _("Interlace mode:")));
- add_subwindow(textbox = new BC_TextBox(x + 100, y, 140, 1, ""));
+ textbox, &new_edl->session->color_model, x1+textbox->get_w(), y1));
+ add_subwindow(textbox = new BC_TextBox(x1, y2, 150, 1, ""));
add_subwindow(interlace_pulldown = new InterlacemodePulldown(mwindow,
- textbox,
- &new_edl->session->interlace_mode,
+ textbox, &new_edl->session->interlace_mode,
(ArrayList<BC_ListBoxItem*>*)&mwindow->interlace_project_modes,
- x + 100 + textbox->get_w(),
- y));
- y += textbox->get_h() + 5;
+ x1+textbox->get_w(), y2));
add_subwindow(new BC_OKButton(this,
mwindow->theme->get_image_set("new_ok_images")));
}
-
-
-
-
-
NewPresets::NewPresets(MWindow *mwindow, NewWindow *gui, int x, int y)
: FormatPresets(mwindow, gui, 0, x, y)
{
}
-
NewATracks::NewATracks(NewWindow *nwindow, const char *text, int x, int y)
: BC_TextBox(x, y, 90, 1, text)
{
return 1;
}
+
NewAChannels::NewAChannels(NewWindow *nwindow, const char *text, int x, int y)
: BC_TextBox(x, y, 90, 1, text)
{
return 1;
}
+
NewAChannelsTumbler::NewAChannelsTumbler(NewWindow *nwindow, int x, int y)
: BC_Tumbler(x, y)
{
return 1;
}
+
SampleRatePulldown::SampleRatePulldown(MWindow *mwindow, BC_TextBox *output, int x, int y)
- : BC_ListBox(x,
- y,
- 100,
- 200,
- LISTBOX_TEXT,
- &mwindow->theme->sample_rates,
- 0,
- 0,
- 1,
- 0,
- 1)
+ : BC_ListBox(x, y, 100, 200, LISTBOX_TEXT,
+ &mwindow->theme->sample_rates, 0, 0, 1, 0, 1)
{
this->mwindow = mwindow;
this->output = output;
}
-
-
-
-
-
-
-
-
-
-
-
-
-
NewVTracks::NewVTracks(NewWindow *nwindow, const char *text, int x, int y)
: BC_TextBox(x, y, 90, 1, text)
{
return 1;
}
+
NewVTracksTumbler::NewVTracksTumbler(NewWindow *nwindow, int x, int y)
: BC_Tumbler(x, y)
{
return 1;
}
+
NewVChannels::NewVChannels(NewWindow *nwindow, const char *text, int x, int y)
: BC_TextBox(x, y, 90, 1, text)
{
return 1;
}
+
NewVChannelsTumbler::NewVChannelsTumbler(NewWindow *nwindow, int x, int y)
: BC_Tumbler(x, y)
{
return 1;
}
+
NewFrameRate::NewFrameRate(NewWindow *nwindow, const char *text, int x, int y)
: BC_TextBox(x, y, 90, 1, text)
{
return 1;
}
+
FrameRatePulldown::FrameRatePulldown(MWindow *mwindow,
- BC_TextBox *output,
- int x,
- int y)
- : BC_ListBox(x,
- y,
- 100,
- 200,
- LISTBOX_TEXT,
- &mwindow->theme->frame_rates,
- 0,
- 0,
- 1,
- 0,
- 1)
+ BC_TextBox *output, int x, int y)
+ : BC_ListBox(x, y, 150, 250, LISTBOX_TEXT,
+ &mwindow->theme->frame_rates, 0, 0, 1, 0, 1)
{
this->mwindow = mwindow;
this->output = output;
}
FrameSizePulldown::FrameSizePulldown(Theme *theme,
- BC_TextBox *output_w,
- BC_TextBox *output_h,
- int x,
- int y)
- : BC_ListBox(x,
- y,
- 100,
- 250,
- LISTBOX_TEXT,
- &theme->frame_sizes,
- 0,
- 0,
- 1,
- 0,
- 1)
+ BC_TextBox *output_w, BC_TextBox *output_h, int x, int y)
+ : BC_ListBox(x, y, 150, 250, LISTBOX_TEXT,
+ &theme->frame_sizes, 0, 0, 1, 0, 1)
{
this->theme = theme;
this->output_w = output_w;
this->output_h = output_h;
}
+
int FrameSizePulldown::handle_event()
{
char *text = get_selection(0, 0)->get_text();
strcpy(string, text);
ptr = strrchr(string, 'x');
- if(ptr)
- {
+ if( ptr ) {
ptr++;
h = atol(ptr);
return 1;
}
+
NewOutputW::NewOutputW(NewWindow *nwindow, int x, int y)
: BC_TextBox(x, y, 70, 1, nwindow->new_edl->session->output_w)
{
return 1;
}
+
NewOutputH::NewOutputH(NewWindow *nwindow, int x, int y)
: BC_TextBox(x, y, 70, 1, nwindow->new_edl->session->output_h)
{
return 1;
}
+
NewAspectW::NewAspectW(NewWindow *nwindow, const char *text, int x, int y)
: BC_TextBox(x, y, 70, 1, text)
{
return 1;
}
+
NewAspectH::NewAspectH(NewWindow *nwindow, const char *text, int x, int y)
: BC_TextBox(x, y, 70, 1, text)
{
return 1;
}
+
AspectPulldown::AspectPulldown(MWindow *mwindow,
- BC_TextBox *output_w,
- BC_TextBox *output_h,
- int x,
- int y)
- : BC_ListBox(x,
- y,
- 100,
- 200,
- LISTBOX_TEXT,
- &mwindow->theme->aspect_ratios,
- 0,
- 0,
- 1,
- 0,
- 1)
+ BC_TextBox *output_w, BC_TextBox *output_h, int x, int y)
+ : BC_ListBox(x, y, 100, 200, LISTBOX_TEXT,
+ &mwindow->theme->aspect_ratios, 0, 0, 1, 0, 1)
{
this->mwindow = mwindow;
this->output_w = output_w;
this->output_h = output_h;
}
+
int AspectPulldown::handle_event()
{
char *text = get_selection(0, 0)->get_text();
strcpy(string, text);
ptr = strrchr(string, ':');
- if(ptr)
- {
+ if( ptr ) {
ptr++;
h = atof(ptr);
return 1;
}
+
ColormodelItem::ColormodelItem(const char *text, int value)
: BC_ListBoxItem(text)
{
}
ColormodelPulldown::ColormodelPulldown(MWindow *mwindow,
- BC_TextBox *output_text,
- int *output_value,
- int x,
- int y)
- : BC_ListBox(x,
- y,
- 200,
- 150,
- LISTBOX_TEXT,
- (ArrayList<BC_ListBoxItem*>*)&mwindow->colormodels,
- 0,
- 0,
- 1,
- 0,
- 1)
+ BC_TextBox *output_text, int *output_value, int x, int y)
+ : BC_ListBox(x, y, 200, 150, LISTBOX_TEXT,
+ (ArrayList<BC_ListBoxItem*>*)&mwindow->colormodels, 0, 0, 1, 0, 1)
{
this->mwindow = mwindow;
this->output_text = output_text;
const char* ColormodelPulldown::colormodel_to_text()
{
- for(int i = 0; i < mwindow->colormodels.total; i++)
- if(mwindow->colormodels.values[i]->value == *output_value)
+ for( int i=0; i<mwindow->colormodels.total; ++i )
+ if( mwindow->colormodels.values[i]->value == *output_value )
return mwindow->colormodels.values[i]->get_text();
return _("Unknown");
}
}
-
-
-
-
-
-
NewSwapExtents::NewSwapExtents(MWindow *mwindow, NewWindow *gui, int x, int y)
: BC_Button(x, y, mwindow->theme->get_image_set("swap_extents"))
{
return 1;
}
-
-
-