add 1:1 convert, add es.po: thx sergio, cwdw zoom tweak, add done beep pots, bd forma...
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / editpanel.C
index 4e80555e83222e6e6281dfedf0bab2fbba955084..2cb6b27fbbe073a6cf0b643145e80591848e1b11 100644 (file)
@@ -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,