4 #include "edlsession.h"
7 #include "mwindowgui.h"
9 #include "transition.h"
12 #include "transitionpopup.h"
15 TransitionLengthThread::TransitionLengthThread(MWindow *mwindow, TransitionPopup *popup)
18 this->mwindow = mwindow;
22 TransitionLengthThread::~TransitionLengthThread()
26 void TransitionLengthThread::run()
28 TransitionLengthDialog window(mwindow, popup->transition);
29 window.create_objects();
30 int result = window.run_window();
38 TransitionLengthDialog::TransitionLengthDialog(MWindow *mwindow, Transition *transition)
39 : BC_Window(PROGRAM_NAME ": Transition length",
40 mwindow->gui->get_abs_cursor_x() - 150,
41 mwindow->gui->get_abs_cursor_y() - 50,
50 this->mwindow = mwindow;
51 this->transition = transition;
54 TransitionLengthDialog::~TransitionLengthDialog()
59 void TransitionLengthDialog::create_objects()
61 add_subwindow(new BC_Title(10, 10, _("Seconds:")));
62 text = new TransitionLengthText(mwindow, this, 100, 10);
63 text->create_objects();
64 add_subwindow(new BC_OKButton(this));
68 int TransitionLengthDialog::close_event()
79 TransitionLengthText::TransitionLengthText(MWindow *mwindow,
80 TransitionLengthDialog *gui,
83 : BC_TumbleTextBox(gui,
84 (float)gui->transition->edit->track->from_units(gui->transition->length),
91 this->mwindow = mwindow;
95 int TransitionLengthText::handle_event()
97 double result = atof(get_text());
98 if(!EQUIV(result, gui->transition->length))
100 gui->transition->length = gui->transition->track->to_units(result, 1);
101 if(gui->transition->edit->track->data_type == TRACK_VIDEO) mwindow->restart_brender();
102 mwindow->sync_parameters(CHANGE_PARAMS);
103 mwindow->edl->session->default_transition_length = result;
119 TransitionPopup::TransitionPopup(MWindow *mwindow, MWindowGUI *gui)
126 this->mwindow = mwindow;
130 TransitionPopup::~TransitionPopup()
132 // delete dialog_thread;
136 void TransitionPopup::create_objects()
138 length_thread = new TransitionLengthThread(mwindow, this);
139 // add_item(attach = new TransitionPopupAttach(mwindow, this));
140 add_item(show = new TransitionPopupShow(mwindow, this));
141 add_item(on = new TransitionPopupOn(mwindow, this));
142 add_item(length = new TransitionPopupLength(mwindow, this));
143 add_item(detach = new TransitionPopupDetach(mwindow, this));
146 int TransitionPopup::update(Transition *transition)
148 this->transition = transition;
149 show->set_checked(transition->show);
150 on->set_checked(transition->on);
158 TransitionPopupAttach::TransitionPopupAttach(MWindow *mwindow, TransitionPopup *popup)
159 : BC_MenuItem(_("Attach..."))
161 this->mwindow = mwindow;
165 TransitionPopupAttach::~TransitionPopupAttach()
169 int TransitionPopupAttach::handle_event()
171 // popup->dialog_thread->start();
180 TransitionPopupDetach::TransitionPopupDetach(MWindow *mwindow, TransitionPopup *popup)
181 : BC_MenuItem(_("Detach"))
183 this->mwindow = mwindow;
187 TransitionPopupDetach::~TransitionPopupDetach()
191 int TransitionPopupDetach::handle_event()
193 mwindow->detach_transition(popup->transition);
198 TransitionPopupOn::TransitionPopupOn(MWindow *mwindow, TransitionPopup *popup)
199 : BC_MenuItem(_("On"))
201 this->mwindow = mwindow;
205 TransitionPopupOn::~TransitionPopupOn()
209 int TransitionPopupOn::handle_event()
211 popup->transition->on = !get_checked();
212 mwindow->sync_parameters(CHANGE_EDL);
221 TransitionPopupShow::TransitionPopupShow(MWindow *mwindow, TransitionPopup *popup)
222 : BC_MenuItem(_("Show"))
224 this->mwindow = mwindow;
228 TransitionPopupShow::~TransitionPopupShow()
232 int TransitionPopupShow::handle_event()
234 mwindow->show_plugin(popup->transition);
245 TransitionPopupLength::TransitionPopupLength(MWindow *mwindow, TransitionPopup *popup)
246 : BC_MenuItem(_("Length"))
248 this->mwindow = mwindow;
252 TransitionPopupLength::~TransitionPopupLength()
256 int TransitionPopupLength::handle_event()
258 popup->length_thread->start();