X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Feditpanel.C;h=4e80555e83222e6e6281dfedf0bab2fbba955084;hp=26e5b7d071115c80ac91d206a01249afe03499d8;hb=0c7b0aebb5e9f85f4eb7abb69b800d8d37b30b0f;hpb=f4204ea29aa3760a91c10791944ab848dd74ef8c;ds=sidebyside diff --git a/cinelerra-5.1/cinelerra/editpanel.C b/cinelerra-5.1/cinelerra/editpanel.C index 26e5b7d0..4e80555e 100644 --- a/cinelerra-5.1/cinelerra/editpanel.C +++ b/cinelerra-5.1/cinelerra/editpanel.C @@ -59,8 +59,6 @@ EditPanel::EditPanel(MWindow *mwindow, int use_keyframe, int use_splice, // Extra buttons int use_overwrite, - int use_lift, - int use_extract, int use_copy, int use_paste, int use_undo, @@ -80,8 +78,6 @@ EditPanel::EditPanel(MWindow *mwindow, this->use_keyframe = use_keyframe; this->use_splice = use_splice; this->use_overwrite = use_overwrite; - this->use_lift = 0; - this->use_extract = 0; this->use_copy = use_copy; this->use_paste = use_paste; this->use_undo = use_undo; @@ -105,8 +101,6 @@ EditPanel::EditPanel(MWindow *mwindow, this->outpoint = 0; this->splice = 0; this->overwrite = 0; - this->lift = 0; - this->extract = 0; this->clip = 0; this->cut = 0; this->commercial = 0; @@ -202,7 +196,7 @@ void EditPanel::create_buttons() } if( use_locklabels ) { - locklabels = new LockLabelsButton(mwindow, x1, y1); + locklabels = new LockLabelsButton(mwindow, this, x1, y1); subwindow->add_subwindow(locklabels); x1 += locklabels->get_w(); } @@ -230,18 +224,6 @@ void EditPanel::create_buttons() x1 += overwrite->get_w(); } - if( use_lift ) { - lift = new EditLift(mwindow, this, x1, y1); - subwindow->add_subwindow(lift); - x1 += lift->get_w(); - } - - if( use_extract ) { - extract = new EditExtract(mwindow, this, x1, y1); - subwindow->add_subwindow(extract); - x1 += extract->get_w(); - } - if( use_toclip ) { clip = new EditToClip(mwindow, this, x1, y1); subwindow->add_subwindow(clip); @@ -335,117 +317,6 @@ void EditPanel::create_buttons() } } -void EditPanel::stop_transport(const char *lock_msg) -{ - int have_subwindow_lock = subwindow->get_window_lock(); - if( have_subwindow_lock ) subwindow->unlock_window(); - mwindow->stop_transport(); - if( have_subwindow_lock ) subwindow->lock_window(lock_msg); -} - - -void EditPanel::toggle_label() -{ - mwindow->toggle_label(is_mwindow()); -} - -void EditPanel::prev_label(int cut) -{ - int shift_down = subwindow->shift_down(); - int have_mwindow_lock = mwindow->gui->get_window_lock(); - if( have_mwindow_lock ) mwindow->gui->unlock_window(); - - stop_transport("EditPanel::prev_label 1"); - - mwindow->gui->lock_window("EditPanel::prev_label 2"); - if( cut ) - mwindow->cut_left_label(); - else - mwindow->prev_label(shift_down); - if( !have_mwindow_lock ) - mwindow->gui->unlock_window(); -} - -void EditPanel::next_label(int cut) -{ - int shift_down = subwindow->shift_down(); - int have_mwindow_lock = mwindow->gui->get_window_lock(); - if( have_mwindow_lock ) mwindow->gui->unlock_window(); - - stop_transport("EditPanel::next_label 1"); - - mwindow->gui->lock_window("EditPanel::next_label 2"); - if( cut ) - mwindow->cut_right_label(); - else - mwindow->next_label(shift_down); - if( !have_mwindow_lock ) - mwindow->gui->unlock_window(); -} - - - -void EditPanel::prev_edit(int cut) -{ - int shift_down = subwindow->shift_down(); - int have_mwindow_lock = mwindow->gui->get_window_lock(); - if( have_mwindow_lock ) mwindow->gui->unlock_window(); - - stop_transport("EditPanel::prev_edit 1"); - - mwindow->gui->lock_window("EditPanel::prev_edit 2"); - - if( cut ) - mwindow->cut_left_edit(); - else - mwindow->prev_edit_handle(shift_down); - - if( !have_mwindow_lock ) - mwindow->gui->unlock_window(); -} - -void EditPanel::next_edit(int cut) -{ - int shift_down = subwindow->shift_down(); - int have_mwindow_lock = mwindow->gui->get_window_lock(); - if( have_mwindow_lock ) mwindow->gui->unlock_window(); - - stop_transport("EditPanel::next_edit 1"); - - mwindow->gui->lock_window("EditPanel::next_edit 2"); - - if( cut ) - mwindow->cut_right_edit(); - else - mwindow->next_edit_handle(shift_down); - - if( !have_mwindow_lock ) - mwindow->gui->unlock_window(); -} - - -double EditPanel::get_position() -{ - EDL *edl = mwindow->edl; - return !edl ? 0 : edl->local_session->get_selectionstart(1); -} - -void EditPanel::set_position(double position) -{ - EDL *edl = mwindow->edl; - if( !edl ) return; - if( position != get_position() ) { - if( position < 0 ) position = 0; - edl->local_session->set_selectionstart(position); - edl->local_session->set_selectionend(position); - mwindow->gui->lock_window(); - mwindow->find_cursor(); - mwindow->gui->update(1, NORMAL_DRAW, 1, 1, 1, 1, 0); - mwindow->gui->unlock_window(); - mwindow->cwindow->update(1, 0, 0, 0, 0); - } -} - void EditPanel::reposition_buttons(int x, int y) { this->x = x; @@ -485,14 +356,6 @@ void EditPanel::reposition_buttons(int x, int y) overwrite->reposition_window(x1, y1); x1 += overwrite->get_w(); } - if( use_lift ) { - lift->reposition_window(x1, y1); - x1 += lift->get_w(); - } - if( use_extract ) { - extract->reposition_window(x1, y1); - x1 += extract->get_w(); - } if( use_toclip ) { clip->reposition_window(x1, y1); x1 += clip->get_w(); @@ -558,8 +421,6 @@ void EditPanel::reposition_buttons(int x, int y) } } - - void EditPanel::create_objects() { create_buttons(); @@ -570,103 +431,31 @@ int EditPanel::get_w() return x1 - x; } - -void EditPanel::copy_selection() -{ - mwindow->copy(); -} - -void EditPanel::splice_selection() -{ -} - -void EditPanel::overwrite_selection() -{ -} - -void EditPanel::set_inpoint() -{ - mwindow->set_inpoint(1); -} - -void EditPanel::set_outpoint() -{ - mwindow->set_outpoint(1); -} - -void EditPanel::unset_inoutpoint() -{ - mwindow->unset_inoutpoint(1); -} - - -EditInPoint::EditInPoint(MWindow *mwindow, EditPanel *panel, int x, int y) - : BC_Button(x, y, mwindow->theme->get_image_set("inbutton")) +// toggle_label +EditLabelbutton::EditLabelbutton(MWindow *mwindow, EditPanel *panel, int x, int y) + : BC_Button(x, y, mwindow->theme->get_image_set("labelbutton")) { this->mwindow = mwindow; this->panel = panel; - set_tooltip(_("In point ( [ or < )")); -} -EditInPoint::~EditInPoint() -{ -} -int EditInPoint::handle_event() -{ - panel->set_inpoint(); - return 1; -} -int EditInPoint::keypress_event() -{ - int key = get_keypress(); - if( ctrl_down() ) { - if( key == 't' ) { - panel->unset_inoutpoint(); - return 1; - } - } - else if( !alt_down() ) { - if( key == '[' || key == '<' ) { - panel->set_inpoint(); - return 1; - } - } - return 0; + set_tooltip(_("Toggle label at current position ( l )")); } -EditOutPoint::EditOutPoint(MWindow *mwindow, EditPanel *panel, int x, int y) - : BC_Button(x, y, mwindow->theme->get_image_set("outbutton")) +EditLabelbutton::~EditLabelbutton() { - this->mwindow = mwindow; - this->panel = panel; - set_tooltip(_("Out point ( ] or > )")); } -EditOutPoint::~EditOutPoint() +int EditLabelbutton::keypress_event() { + if( get_keypress() == 'l' && !alt_down() ) + return handle_event(); + return 0; } -int EditOutPoint::handle_event() +int EditLabelbutton::handle_event() { - panel->set_outpoint(); + panel->panel_toggle_label(); return 1; } -int EditOutPoint::keypress_event() -{ - int key = get_keypress(); - if( ctrl_down() ) { - if( key == 't' ) { - panel->unset_inoutpoint(); - return 1; - } - } - else if( !alt_down() ) { - if( key == ']' || key == '>' ) { - panel->set_outpoint(); - return 1; - } - } - return 0; -} - +//next_label EditNextLabel::EditNextLabel(MWindow *mwindow, EditPanel *panel, int x, int y) : BC_Button(x, y, mwindow->theme->get_image_set("nextlabel")) @@ -683,11 +472,11 @@ int EditNextLabel::keypress_event() if( ctrl_down() ) { int key = get_keypress(); if( (key == RIGHT || key == '.') && !alt_down() ) { - panel->next_label(0); + panel->panel_next_label(0); return 1; } if( key == '>' && alt_down() ) { - panel->next_label(1); + panel->panel_next_label(1); return 1; } } @@ -696,10 +485,11 @@ int EditNextLabel::keypress_event() int EditNextLabel::handle_event() { int cut = ctrl_down() && alt_down(); - panel->next_label(cut); + panel->panel_next_label(cut); return 1; } +//prev_label EditPrevLabel::EditPrevLabel(MWindow *mwindow, EditPanel *panel, int x, int y) : BC_Button(x, y, mwindow->theme->get_image_set("prevlabel")) @@ -716,11 +506,11 @@ int EditPrevLabel::keypress_event() if( ctrl_down() ) { int key = get_keypress(); if( (key == LEFT || key == ',') && !alt_down() ) { - panel->prev_label(0); + panel->panel_prev_label(0); return 1; } if( key == '<' && alt_down() ) { - panel->prev_label(1); + panel->panel_prev_label(1); return 1; } } @@ -729,95 +519,106 @@ int EditPrevLabel::keypress_event() int EditPrevLabel::handle_event() { int cut = ctrl_down() && alt_down(); - panel->prev_label(cut); + panel->panel_prev_label(cut); return 1; } - - -EditNextEdit::EditNextEdit(MWindow *mwindow, +//prev_edit +EditPrevEdit::EditPrevEdit(MWindow *mwindow, EditPanel *panel, int x, int y) - : BC_Button(x, y, mwindow->theme->get_image_set("nextedit")) + : BC_Button(x, y, mwindow->theme->get_image_set("prevedit")) { this->mwindow = mwindow; this->panel = panel; - set_tooltip(_("Next edit ( alt -> )")); + set_tooltip(_("Previous edit (alt <- )")); } -EditNextEdit::~EditNextEdit() +EditPrevEdit::~EditPrevEdit() { } -int EditNextEdit::keypress_event() +int EditPrevEdit::keypress_event() { if( alt_down() ) { int key = get_keypress(); - if( (key == RIGHT || key == '.') && !ctrl_down() ) { - panel->next_edit(0); + if( (key == LEFT || key == ',') && !ctrl_down() ) { + panel->panel_prev_edit(0); return 1; } - if( key == '.' && ctrl_down() ) { - panel->next_edit(1); + if( key == ',' && ctrl_down() ) { + panel->panel_prev_edit(1); return 1; } } return 0; } -int EditNextEdit::handle_event() +int EditPrevEdit::handle_event() { int cut = ctrl_down() && alt_down(); - panel->next_edit(cut); + panel->panel_prev_edit(cut); return 1; } -EditPrevEdit::EditPrevEdit(MWindow *mwindow, +//next_edit +EditNextEdit::EditNextEdit(MWindow *mwindow, EditPanel *panel, int x, int y) - : BC_Button(x, y, mwindow->theme->get_image_set("prevedit")) + : BC_Button(x, y, mwindow->theme->get_image_set("nextedit")) { this->mwindow = mwindow; this->panel = panel; - set_tooltip(_("Previous edit (alt <- )")); + set_tooltip(_("Next edit ( alt -> )")); } -EditPrevEdit::~EditPrevEdit() +EditNextEdit::~EditNextEdit() { } -int EditPrevEdit::keypress_event() +int EditNextEdit::keypress_event() { if( alt_down() ) { int key = get_keypress(); - if( (key == LEFT || key == ',') && !ctrl_down() ) { - panel->prev_edit(0); + if( (key == RIGHT || key == '.') && !ctrl_down() ) { + panel->panel_next_edit(0); return 1; } - if( key == ',' && ctrl_down() ) { - panel->prev_edit(1); + if( key == '.' && ctrl_down() ) { + panel->panel_next_edit(1); return 1; } } return 0; } -int EditPrevEdit::handle_event() +int EditNextEdit::handle_event() { int cut = ctrl_down() && alt_down(); - panel->prev_edit(cut); + panel->panel_next_edit(cut); return 1; } - - -EditLift::EditLift(MWindow *mwindow, EditPanel *panel, int x, int y) - : BC_Button(x, y, mwindow->theme->lift_data) +//copy_selection +EditCopy::EditCopy(MWindow *mwindow, EditPanel *panel, int x, int y) + : BC_Button(x, y, mwindow->theme->get_image_set("copy")) { this->mwindow = mwindow; this->panel = panel; - set_tooltip(_("Lift")); + set_tooltip(_("Copy ( c )")); +} +EditCopy::~EditCopy() +{ } -EditLift::~EditLift() + +int EditCopy::keypress_event() { + if( alt_down() ) return 0; + if( (get_keypress() == 'c' && !ctrl_down()) || + (panel->is_vwindow() && get_keypress() == 'C') ) { + return handle_event(); + } + return 0; } -int EditLift::handle_event() +int EditCopy::handle_event() { + panel->panel_copy_selection(); return 1; } +//overwrite_selection EditOverwrite::EditOverwrite(MWindow *mwindow, EditPanel *panel, int x, int y) : BC_Button(x, y, mwindow->theme->overwrite_data) { @@ -830,7 +631,7 @@ EditOverwrite::~EditOverwrite() } int EditOverwrite::handle_event() { - panel->overwrite_selection(); + panel->panel_overwrite_selection(); return 1; } int EditOverwrite::keypress_event() @@ -844,77 +645,77 @@ int EditOverwrite::keypress_event() return 0; } -EditExtract::EditExtract(MWindow *mwindow, EditPanel *panel, int x, int y) - : BC_Button(x, y, mwindow->theme->extract_data) -{ - this->mwindow = mwindow; - this->panel = panel; - set_tooltip(_("Extract")); -} -EditExtract::~EditExtract() -{ -} -int EditExtract::handle_event() -{ -// mwindow->extract_selection(); - return 1; -} - -EditToClip::EditToClip(MWindow *mwindow, EditPanel *panel, int x, int y) - : BC_Button(x, y, mwindow->theme->get_image_set("toclip")) +//set_inpoint +//unset_inoutpoint +EditInPoint::EditInPoint(MWindow *mwindow, EditPanel *panel, int x, int y) + : BC_Button(x, y, mwindow->theme->get_image_set("inbutton")) { this->mwindow = mwindow; this->panel = panel; - set_tooltip(_("To clip ( i )")); + set_tooltip(_("In point ( [ or < )")); } -EditToClip::~EditToClip() +EditInPoint::~EditInPoint() { } -int EditToClip::handle_event() +int EditInPoint::handle_event() { - panel->to_clip(); + panel->panel_set_inpoint(); return 1; } - -int EditToClip::keypress_event() +int EditInPoint::keypress_event() { - if( alt_down() ) return 0; - if( get_keypress() == 'i' || - (panel->is_vwindow() && get_keypress() == 'I') ) { - handle_event(); - return 1; + int key = get_keypress(); + if( ctrl_down() ) { + if( key == 't' ) { + panel->panel_unset_inoutpoint(); + return 1; + } + } + else if( !alt_down() ) { + if( key == '[' || key == '<' ) { + panel->panel_set_inpoint(); + return 1; + } } return 0; } -EditManualGoto::EditManualGoto(MWindow *mwindow, EditPanel *panel, int x, int y) - : BC_Button(x, y, mwindow->theme->get_image_set("goto")) +//set_outpoint +//unset_inoutpoint +EditOutPoint::EditOutPoint(MWindow *mwindow, EditPanel *panel, int x, int y) + : BC_Button(x, y, mwindow->theme->get_image_set("outbutton")) { this->mwindow = mwindow; this->panel = panel; - mangoto = new ManualGoto(mwindow, panel); - set_tooltip(_("Manual goto ( g )")); + set_tooltip(_("Out point ( ] or > )")); } -EditManualGoto::~EditManualGoto() +EditOutPoint::~EditOutPoint() { - delete mangoto; } -int EditManualGoto::handle_event() +int EditOutPoint::handle_event() { - mangoto->start(); + panel->panel_set_outpoint(); return 1; } - -int EditManualGoto::keypress_event() +int EditOutPoint::keypress_event() { - if( get_keypress() == 'g' ) { - handle_event(); - return 1; + int key = get_keypress(); + if( ctrl_down() ) { + if( key == 't' ) { + panel->panel_unset_inoutpoint(); + return 1; + } + } + else if( !alt_down() ) { + if( key == ']' || key == '>' ) { + panel->panel_set_outpoint(); + return 1; + } } return 0; } - +//splice_selection EditSplice::EditSplice(MWindow *mwindow, EditPanel *panel, int x, int y) : BC_Button(x, y, mwindow->theme->splice_data) { @@ -927,7 +728,7 @@ EditSplice::~EditSplice() } int EditSplice::handle_event() { - panel->splice_selection(); + panel->panel_splice_selection(); return 1; } int EditSplice::keypress_event() @@ -941,179 +742,61 @@ int EditSplice::keypress_event() return 0; } -EditCut::EditCut(MWindow *mwindow, EditPanel *panel, int x, int y) - : BC_Button(x, y, mwindow->theme->get_image_set("cut")) +//to_clip +EditToClip::EditToClip(MWindow *mwindow, EditPanel *panel, int x, int y) + : BC_Button(x, y, mwindow->theme->get_image_set("toclip")) { this->mwindow = mwindow; this->panel = panel; - set_tooltip(_("Split | Cut ( x )")); -} -EditCut::~EditCut() -{ + set_tooltip(_("To clip ( i )")); } -int EditCut::keypress_event() +EditToClip::~EditToClip() { - if( ctrl_down() || shift_down() || alt_down() ) - return 0; - if( get_keypress() == 'x' ) - return handle_event(); - return 0; } - -int EditCut::handle_event() +int EditToClip::handle_event() { - int have_mwindow_lock = mwindow->gui->get_window_lock(); - if( !have_mwindow_lock ) - mwindow->gui->lock_window("EditCut::handle_event"); - - mwindow->cut(); - - if( !have_mwindow_lock ) - mwindow->gui->unlock_window(); + panel->panel_to_clip(); return 1; } -EditClick2Play::EditClick2Play(MWindow *mwindow, EditPanel *panel, int x, int y) - : BC_Toggle(x, y, mwindow->theme->get_image_set("playpatch_data"), - !panel->is_vwindow() ? - mwindow->edl->session->cwindow_click2play : - mwindow->edl->session->vwindow_click2play) -{ - this->mwindow = mwindow; - this->panel = panel; - set_tooltip(_("Click to play (p)")); -} -int EditClick2Play::handle_event() -{ - int value = get_value(); - if( panel->is_vwindow() ) { - mwindow->edl->session->vwindow_click2play = value; - mwindow->update_vwindow(); - } - else - mwindow->edl->session->cwindow_click2play = value; - return 1; -} -int EditClick2Play::keypress_event() +int EditToClip::keypress_event() { - int key = get_keypress(); - if( key == 'p' && !ctrl_down() && !shift_down() && !alt_down() ) { - int value = get_value() ? 0 : 1; - update(value); - if( panel->is_vwindow() ) { - mwindow->edl->session->vwindow_click2play = value; - mwindow->update_vwindow(); - } - else - mwindow->edl->session->cwindow_click2play = value; + if( alt_down() ) return 0; + if( get_keypress() == 'i' || + (panel->is_vwindow() && get_keypress() == 'I') ) { + handle_event(); return 1; } return 0; } - -EditCommercial::EditCommercial(MWindow *mwindow, EditPanel *panel, int x, int y) - : BC_Button(x, y, mwindow->theme->get_image_set("commercial")) +//cut +EditCut::EditCut(MWindow *mwindow, EditPanel *panel, int x, int y) + : BC_Button(x, y, mwindow->theme->get_image_set("cut")) { this->mwindow = mwindow; this->panel = panel; - set_tooltip(_("Commercial ( shift A )")); + set_tooltip(_("Split | Cut ( x )")); } -EditCommercial::~EditCommercial() +EditCut::~EditCut() { } -int EditCommercial::keypress_event() +int EditCut::keypress_event() { - if( ctrl_down() || !shift_down() || alt_down() ) + if( ctrl_down() || shift_down() || alt_down() ) return 0; - if( get_keypress() == 'A' ) - return handle_event(); - return 0; -} - -int EditCommercial::handle_event() -{ - int have_mwindow_lock = mwindow->gui->get_window_lock(); - if( have_mwindow_lock ) - mwindow->gui->unlock_window(); - mwindow->commit_commercial(); - if( !mwindow->put_commercial() ) { - mwindow->gui->lock_window("EditCommercial::handle_event 1"); - mwindow->cut(); - if( !have_mwindow_lock ) - mwindow->gui->unlock_window(); - mwindow->activate_commercial(); - return 1; - } - mwindow->undo_commercial(); - if( have_mwindow_lock ) - mwindow->gui->lock_window("EditCommercial::handle_event 2"); - return 1; -} - -EditCopy::EditCopy(MWindow *mwindow, EditPanel *panel, int x, int y) - : BC_Button(x, y, mwindow->theme->get_image_set("copy")) -{ - this->mwindow = mwindow; - this->panel = panel; - set_tooltip(_("Copy ( c )")); -} -EditCopy::~EditCopy() -{ -} - -int EditCopy::keypress_event() -{ - if( alt_down() ) return 0; - if( (get_keypress() == 'c' && !ctrl_down()) || - (panel->is_vwindow() && get_keypress() == 'C') ) { + if( get_keypress() == 'x' ) return handle_event(); - } return 0; } -int EditCopy::handle_event() -{ - panel->copy_selection(); - return 1; -} - -EditAppend::EditAppend(MWindow *mwindow, EditPanel *panel, int x, int y) - : BC_Button(x, y, mwindow->theme->append_data) -{ - this->mwindow = mwindow; - this->panel = panel; - set_tooltip(_("Append to end of track")); -} -EditAppend::~EditAppend() -{ -} - - -int EditAppend::handle_event() -{ - return 1; -} - -EditInsert::EditInsert(MWindow *mwindow, EditPanel *panel, int x, int y) - : BC_Button(x, y, mwindow->theme->insert_data) -{ - this->mwindow = mwindow; - this->panel = panel; - set_tooltip(_("Insert before beginning of track")); -} -EditInsert::~EditInsert() -{ -} - - -int EditInsert::handle_event() +int EditCut::handle_event() { - + panel->panel_cut(); return 1; } - +//paste EditPaste::EditPaste(MWindow *mwindow, EditPanel *panel, int x, int y) : BC_Button(x, y, mwindow->theme->get_image_set("paste")) { @@ -1133,130 +816,11 @@ int EditPaste::keypress_event() } int EditPaste::handle_event() { - int have_mwindow_lock = mwindow->gui->get_window_lock(); - if( !have_mwindow_lock ) - mwindow->gui->lock_window("EditPaste::handle_event"); - - mwindow->paste(); - - if( !have_mwindow_lock ) - mwindow->gui->unlock_window(); - return 1; -} - - - -EditTransition::EditTransition(MWindow *mwindow, EditPanel *panel, int x, int y) - : BC_Button(x, y, mwindow->theme->transition_data) -{ - this->mwindow = mwindow; - this->panel = panel; - set_tooltip(_("Set transition")); -} -EditTransition::~EditTransition() -{ -} -int EditTransition::handle_event() -{ - return 1; -} - -EditPresentation::EditPresentation(MWindow *mwindow, EditPanel *panel, int x, int y) - : BC_Button(x, y, mwindow->theme->presentation_data) -{ - this->mwindow = mwindow; - this->panel = panel; - set_tooltip(_("Set presentation up to current position")); -} -EditPresentation::~EditPresentation() -{ -} -int EditPresentation::handle_event() -{ + panel->panel_paste(); return 1; } -EditUndo::EditUndo(MWindow *mwindow, EditPanel *panel, int x, int y) - : BC_Button(x, y, mwindow->theme->get_image_set("undo")) -{ - this->mwindow = mwindow; - this->panel = panel; - set_tooltip(_("Undo ( z )")); -} -EditUndo::~EditUndo() -{ -} -int EditUndo::keypress_event() -{ - if( ctrl_down() || shift_down() || alt_down() ) - return 0; - if( get_keypress() == 'z' ) - return handle_event(); - return 0; -} -int EditUndo::handle_event() -{ - mwindow->undo_entry(panel->subwindow); - return 1; -} - -EditRedo::EditRedo(MWindow *mwindow, EditPanel *panel, int x, int y) - : BC_Button(x, y, mwindow->theme->get_image_set("redo")) -{ - this->mwindow = mwindow; - this->panel = panel; - set_tooltip(_("Redo ( shift Z )")); -} -EditRedo::~EditRedo() -{ -} -int EditRedo::keypress_event() -{ - if( ctrl_down() || !shift_down() || alt_down() ) - return 0; - if( get_keypress() == 'Z' ) - return handle_event(); - return 0; -} -int EditRedo::handle_event() -{ - mwindow->redo_entry(panel->subwindow); - return 1; -}; - - - - - -EditLabelbutton::EditLabelbutton(MWindow *mwindow, EditPanel *panel, int x, int y) - : BC_Button(x, y, mwindow->theme->get_image_set("labelbutton")) -{ - this->mwindow = mwindow; - this->panel = panel; - set_tooltip(_("Toggle label at current position ( l )")); -} - -EditLabelbutton::~EditLabelbutton() -{ -} -int EditLabelbutton::keypress_event() -{ - if( get_keypress() == 'l' && !alt_down() ) - return handle_event(); - return 0; -} -int EditLabelbutton::handle_event() -{ - panel->toggle_label(); - return 1; -} - - - - - - - +//fit_selection EditFit::EditFit(MWindow *mwindow, EditPanel *panel, int x, int y) : BC_Button(x, y, mwindow->theme->get_image_set("fit")) { @@ -1277,18 +841,11 @@ int EditFit::keypress_event() } int EditFit::handle_event() { - mwindow->fit_selection(); + panel->panel_fit_selection(); return 1; } - - - - - - - - +//fit_autos EditFitAutos::EditFitAutos(MWindow *mwindow, EditPanel *panel, int x, int y) : BC_Button(x, y, mwindow->theme->get_image_set("fitautos")) { @@ -1301,34 +858,19 @@ EditFitAutos::~EditFitAutos() } int EditFitAutos::keypress_event() { - if( !ctrl_down() && alt_down() && get_keypress() == 'f' ) { - mwindow->fit_autos(1); - return 1; - } - if( ctrl_down() && alt_down() && get_keypress() == 'f' ) { - mwindow->fit_autos(0); + if( get_keypress() == 'f' && alt_down() ) { + panel->panel_fit_autos(!ctrl_down() ? 1 : 0); return 1; } return 0; } int EditFitAutos::handle_event() { - mwindow->fit_autos(1); + panel->panel_fit_autos(1); return 1; } - - - - - - - - - - - - +//set_editing_mode ArrowButton::ArrowButton(MWindow *mwindow, EditPanel *panel, int x, int y) : BC_Toggle(x, y, mwindow->theme->get_image_set("arrow"), @@ -1344,13 +886,11 @@ int ArrowButton::handle_event() { update(1); panel->ibeam->update(0); - mwindow->set_editing_mode(EDITING_ARROW, - !panel->is_mwindow(), panel->is_mwindow()); + panel->panel_set_editing_mode(EDITING_ARROW); // Nothing after this return 1; } - IBeamButton::IBeamButton(MWindow *mwindow, EditPanel *panel, int x, int y) : BC_Toggle(x, y, mwindow->theme->get_image_set("ibeam"), @@ -1366,12 +906,12 @@ int IBeamButton::handle_event() { update(1); panel->arrow->update(0); - mwindow->set_editing_mode(EDITING_IBEAM, - !panel->is_mwindow(), panel->is_mwindow()); + panel->panel_set_editing_mode(EDITING_IBEAM); // Nothing after this return 1; } +//set_auto_keyframes KeyFrameButton::KeyFrameButton(MWindow *mwindow, EditPanel *panel, int x, int y) : BC_Toggle(x, y, mwindow->theme->get_image_set("autokeyframe"), @@ -1385,8 +925,7 @@ KeyFrameButton::KeyFrameButton(MWindow *mwindow, EditPanel *panel, int x, int y) int KeyFrameButton::handle_event() { - mwindow->set_auto_keyframes(get_value(), - !panel->is_mwindow(), panel->is_mwindow()); + panel->panel_set_auto_keyframes(get_value()); return 1; } @@ -1396,26 +935,174 @@ int KeyFrameButton::keypress_event() if( key == 'j' && !ctrl_down() && !shift_down() && !alt_down() ) { int value = get_value() ? 0 : 1; update(value); - mwindow->set_auto_keyframes(value, - !panel->is_mwindow(), panel->is_mwindow()); + panel->panel_set_auto_keyframes(value); return 1; } return 0; } -LockLabelsButton::LockLabelsButton(MWindow *mwindow, int x, int y) +//set_labels_follow_edits +LockLabelsButton::LockLabelsButton(MWindow *mwindow, EditPanel *panel, int x, int y) : BC_Toggle(x, y, mwindow->theme->get_image_set("locklabels"), mwindow->edl->session->labels_follow_edits, "", 0, 0, 0) { this->mwindow = mwindow; + this->panel = panel; set_tooltip(_("Lock labels from moving with edits")); } int LockLabelsButton::handle_event() { - mwindow->set_labels_follow_edits(get_value()); + panel->panel_set_labels_follow_edits(get_value()); + return 1; +} + + + +EditManualGoto::EditManualGoto(MWindow *mwindow, EditPanel *panel, int x, int y) + : BC_Button(x, y, mwindow->theme->get_image_set("goto")) +{ + this->mwindow = mwindow; + this->panel = panel; + mangoto = new ManualGoto(mwindow, panel); + set_tooltip(_("Manual goto ( g )")); +} +EditManualGoto::~EditManualGoto() +{ + delete mangoto; +} +int EditManualGoto::handle_event() +{ + mangoto->start(); + return 1; +} + +int EditManualGoto::keypress_event() +{ + if( get_keypress() == 'g' ) { + handle_event(); + return 1; + } + return 0; +} + + +EditClick2Play::EditClick2Play(MWindow *mwindow, EditPanel *panel, int x, int y) + : BC_Toggle(x, y, mwindow->theme->get_image_set("playpatch_data"), + !panel->is_vwindow() ? + mwindow->edl->session->cwindow_click2play : + mwindow->edl->session->vwindow_click2play) +{ + this->mwindow = mwindow; + this->panel = panel; + set_tooltip(_("Click to play (p)")); +} +int EditClick2Play::handle_event() +{ + int value = get_value(); + panel->set_click_to_play(value); + return 1; +} +int EditClick2Play::keypress_event() +{ + int key = get_keypress(); + if( key == 'p' && !ctrl_down() && !shift_down() && !alt_down() ) { + int value = get_value() ? 0 : 1; + update(value); + panel->set_click_to_play(value); + return 1; + } + return 0; +} + + +EditCommercial::EditCommercial(MWindow *mwindow, EditPanel *panel, int x, int y) + : BC_Button(x, y, mwindow->theme->get_image_set("commercial")) +{ + this->mwindow = mwindow; + this->panel = panel; + set_tooltip(_("Commercial ( shift A )")); +} +EditCommercial::~EditCommercial() +{ +} +int EditCommercial::keypress_event() +{ + if( ctrl_down() || !shift_down() || alt_down() ) + return 0; + if( get_keypress() == 'A' ) + return handle_event(); + return 0; +} + +int EditCommercial::handle_event() +{ + int have_mwindow_lock = mwindow->gui->get_window_lock(); + if( have_mwindow_lock ) + mwindow->gui->unlock_window(); + mwindow->commit_commercial(); + if( !mwindow->put_commercial() ) { + mwindow->gui->lock_window("EditCommercial::handle_event 1"); + mwindow->cut(); + if( !have_mwindow_lock ) + mwindow->gui->unlock_window(); + mwindow->activate_commercial(); + return 1; + } + mwindow->undo_commercial(); + if( have_mwindow_lock ) + mwindow->gui->lock_window("EditCommercial::handle_event 2"); + return 1; +} + + +EditUndo::EditUndo(MWindow *mwindow, EditPanel *panel, int x, int y) + : BC_Button(x, y, mwindow->theme->get_image_set("undo")) +{ + this->mwindow = mwindow; + this->panel = panel; + set_tooltip(_("Undo ( z )")); +} +EditUndo::~EditUndo() +{ +} +int EditUndo::keypress_event() +{ + if( ctrl_down() || shift_down() || alt_down() ) + return 0; + if( get_keypress() == 'z' ) + return handle_event(); + return 0; +} +int EditUndo::handle_event() +{ + mwindow->undo_entry(panel->subwindow); + return 1; +} + +EditRedo::EditRedo(MWindow *mwindow, EditPanel *panel, int x, int y) + : BC_Button(x, y, mwindow->theme->get_image_set("redo")) +{ + this->mwindow = mwindow; + this->panel = panel; + set_tooltip(_("Redo ( shift Z )")); +} +EditRedo::~EditRedo() +{ +} +int EditRedo::keypress_event() +{ + if( ctrl_down() || !shift_down() || alt_down() ) + return 0; + if( get_keypress() == 'Z' ) + return handle_event(); + return 0; +} +int EditRedo::handle_event() +{ + mwindow->redo_entry(panel->subwindow); return 1; }