X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Feditpanel.C;h=2cb6b27fbbe073a6cf0b643145e80591848e1b11;hb=87a3d09b0344fd6b60851161cbf250111301a63f;hp=4e80555e83222e6e6281dfedf0bab2fbba955084;hpb=0c7b0aebb5e9f85f4eb7abb69b800d8d37b30b0f;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/editpanel.C b/cinelerra-5.1/cinelerra/editpanel.C index 4e80555e..2cb6b27f 100644 --- a/cinelerra-5.1/cinelerra/editpanel.C +++ b/cinelerra-5.1/cinelerra/editpanel.C @@ -118,6 +118,7 @@ EditPanel::EditPanel(MWindow *mwindow, this->arrow = 0; this->ibeam = 0; this->keyframe = 0; + this->span_keyframe = 0; this->mangoto = 0; this->click2play = 0; locklabels = 0; @@ -139,6 +140,7 @@ void EditPanel::update() if( arrow ) arrow->update(new_editing_mode == EDITING_ARROW); if( ibeam ) ibeam->update(new_editing_mode == EDITING_IBEAM); if( keyframe ) keyframe->update(mwindow->edl->session->auto_keyframes); + if( span_keyframe ) span_keyframe->update(mwindow->edl->session->span_keyframes); if( locklabels ) locklabels->set_value(mwindow->edl->session->labels_follow_edits); if( click2play ) { int value = !is_vwindow() ? @@ -163,7 +165,7 @@ int EditPanel::calculate_w(MWindow *mwindow, int use_keyframe, int total_buttons int result = 0; int button_w = mwindow->theme->get_image_set("ibeam")[0]->get_w(); if( use_keyframe ) { - result += button_w + mwindow->theme->toggle_margin; + result += 2*(button_w + mwindow->theme->toggle_margin); } result += button_w * total_buttons; @@ -193,6 +195,9 @@ void EditPanel::create_buttons() keyframe = new KeyFrameButton(mwindow, this, x1, y1); subwindow->add_subwindow(keyframe); x1 += keyframe->get_w(); + span_keyframe = new SpanKeyFrameButton(mwindow, this, x1, y1); + subwindow->add_subwindow(span_keyframe); + x1 += span_keyframe->get_w(); } if( use_locklabels ) { @@ -334,6 +339,8 @@ void EditPanel::reposition_buttons(int x, int y) if( use_keyframe ) { keyframe->reposition_window(x1, y1); x1 += keyframe->get_w(); + span_keyframe->reposition_window(x1, y1); + x1 += span_keyframe->get_w(); } if( use_locklabels ) { @@ -941,6 +948,24 @@ int KeyFrameButton::keypress_event() return 0; } +//set_span_keyframes +SpanKeyFrameButton::SpanKeyFrameButton(MWindow *mwindow, EditPanel *panel, int x, int y) + : BC_Toggle(x, y, + mwindow->theme->get_image_set("spankeyframe"), + mwindow->edl->session->span_keyframes, + "", 0, 0, 0) +{ + this->mwindow = mwindow; + this->panel = panel; + set_tooltip(_("Allow keyframe spanning")); +} + +int SpanKeyFrameButton::handle_event() +{ + panel->panel_set_span_keyframes(get_value()); + return 1; +} + //set_labels_follow_edits LockLabelsButton::LockLabelsButton(MWindow *mwindow, EditPanel *panel, int x, int y) : BC_Toggle(x, y,