camera position fix, rework transportque locks again, camera drag tweaks, window...
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / cwindowtool.C
index f0f372a5aba2f82315f2ee38d7a232af060e21a8..e0e27e4d12d1dedb72c4d58531bd665862745b98 100644 (file)
@@ -696,16 +696,14 @@ void CWindowCurveToggle::check_toggle_state(FloatAuto *x, FloatAuto *y, FloatAut
 
 int CWindowCurveToggle::handle_event()
 {
-       FloatAuto *x=0, *y=0, *z=0;
        Track *track = mwindow->cwindow->calculate_affected_track();
-
-       if(track)
-       {       mwindow->cwindow->calculate_affected_autos(&x, &y, &z,
-                       track, cfg.use_camera, 0,0,0); // don't create new keyframe
-
-               if(x)   x->change_curve_mode(cfg.mode);
-               if(y)   y->change_curve_mode(cfg.mode);
-               if(z)   z->change_curve_mode(cfg.mode);
+       if(track) {
+               FloatAuto *x=0, *y=0, *z=0;
+               mwindow->cwindow->calculate_affected_autos(track,
+                       &x, &y, &z, cfg.use_camera, 0,0,0); // don't create new keyframe
+               if( x ) x->change_curve_mode(cfg.mode);
+               if( y ) y->change_curve_mode(cfg.mode);
+               if( z ) z->change_curve_mode(cfg.mode);
 
                gui->update();
                gui->update_preview();
@@ -748,17 +746,14 @@ void CWindowCameraGUI::create_objects()
 {
        int x = 10, y = 10, x1;
        Track *track = mwindow->cwindow->calculate_affected_track();
-       FloatAuto *x_auto = 0;
-       FloatAuto *y_auto = 0;
-       FloatAuto *z_auto = 0;
+       FloatAuto *x_auto = 0, *y_auto = 0, *z_auto = 0;
        BC_Title *title;
        BC_Button *button;
 
        lock_window("CWindowCameraGUI::create_objects");
-       if(track)
-       {
-               mwindow->cwindow->calculate_affected_autos(&x_auto,
-                       &y_auto, &z_auto, track, 1, 0, 0, 0);
+       if( track ) {
+               mwindow->cwindow->calculate_affected_autos(track,
+                       &x_auto, &y_auto, &z_auto, 1, 0, 0, 0);
        }
 
        add_subwindow(title = new BC_Title(x, y, "X:"));
@@ -812,15 +807,10 @@ void CWindowCameraGUI::create_objects()
 
 void CWindowCameraGUI::update_preview()
 {
-       mwindow->gui->lock_window("CWindowCameraGUI::update_preview");
-       mwindow->restart_brender();
-       mwindow->gui->draw_overlays(1);
-       mwindow->sync_parameters(CHANGE_PARAMS);
-       mwindow->gui->unlock_window();
-       mwindow->cwindow->refresh_frame(CHANGE_NONE);
-       mwindow->cwindow->gui->lock_window("CWindowCameraGUI::update_preview");
-       mwindow->cwindow->gui->canvas->draw_refresh();
-       mwindow->cwindow->gui->unlock_window();
+       CWindowGUI *cgui = mwindow->cwindow->gui;
+       cgui->lock_window("CWindowCameraGUI::update_preview");
+       cgui->sync_parameters(CHANGE_PARAMS, 0, 1);
+       cgui->unlock_window();
 }
 
 
@@ -893,17 +883,9 @@ void CWindowCameraGUI::update()
        FloatAuto *y_auto = 0;
        FloatAuto *z_auto = 0;
        Track *track = mwindow->cwindow->calculate_affected_track();
-
-       if(track)
-       {
-               mwindow->cwindow->calculate_affected_autos(&x_auto,
-                       &y_auto,
-                       &z_auto,
-                       track,
-                       1,
-                       0,
-                       0,
-                       0);
+       if( track ) {
+               mwindow->cwindow->calculate_affected_autos(track,
+                       &x_auto, &y_auto, &z_auto, 1, 0, 0, 0);
        }
 
        if(x_auto)
@@ -940,16 +922,9 @@ int CWindowCameraLeft::handle_event()
        FloatAuto *x_auto = 0;
        FloatAuto *z_auto = 0;
        Track *track = mwindow->cwindow->calculate_affected_track();
-       if(track)
-       {
-               mwindow->cwindow->calculate_affected_autos(&x_auto,
-                       0,
-                       &z_auto,
-                       track,
-                       1,
-                       1,
-                       0,
-                       0);
+       if( track ) {
+               mwindow->cwindow->calculate_affected_autos(track,
+                       &x_auto, 0, &z_auto, 1, 1, 0, 0);
        }
 
        if(x_auto && z_auto)
@@ -1017,16 +992,9 @@ int CWindowCameraRight::handle_event()
        FloatAuto *x_auto = 0;
        FloatAuto *z_auto = 0;
        Track *track = mwindow->cwindow->calculate_affected_track();
-       if(track)
-       {
-               mwindow->cwindow->calculate_affected_autos(&x_auto,
-                       0,
-                       &z_auto,
-                       track,
-                       1,
-                       1,
-                       0,
-                       0);
+       if( track ) {
+               mwindow->cwindow->calculate_affected_autos(track,
+                       &x_auto, 0, &z_auto, 1, 1, 0, 0);
        }
 
        if(x_auto && z_auto)
@@ -1064,16 +1032,9 @@ int CWindowCameraTop::handle_event()
        FloatAuto *y_auto = 0;
        FloatAuto *z_auto = 0;
        Track *track = mwindow->cwindow->calculate_affected_track();
-       if(track)
-       {
-               mwindow->cwindow->calculate_affected_autos(0,
-                       &y_auto,
-                       &z_auto,
-                       track,
-                       1,
-                       0,
-                       1,
-                       0);
+       if( track ) {
+               mwindow->cwindow->calculate_affected_autos(track,
+                       0, &y_auto, &z_auto, 1, 0, 1, 0);
        }
 
        if(y_auto && z_auto)
@@ -1139,16 +1100,9 @@ int CWindowCameraBottom::handle_event()
        FloatAuto *y_auto = 0;
        FloatAuto *z_auto = 0;
        Track *track = mwindow->cwindow->calculate_affected_track();
-       if(track)
-       {
-               mwindow->cwindow->calculate_affected_autos(0,
-                       &y_auto,
-                       &z_auto,
-                       track,
-                       1,
-                       0,
-                       1,
-                       0);
+       if( track ) {
+               mwindow->cwindow->calculate_affected_autos(track,
+                       0, &y_auto, &z_auto, 1, 0, 1, 0);
        }
 
        if(y_auto && z_auto)
@@ -1196,16 +1150,9 @@ void CWindowProjectorGUI::create_objects()
        BC_Button *button;
 
        lock_window("CWindowProjectorGUI::create_objects");
-       if(track)
-       {
-               mwindow->cwindow->calculate_affected_autos(&x_auto,
-                       &y_auto,
-                       &z_auto,
-                       track,
-                       0,
-                       0,
-                       0,
-                       0);
+       if( track ) {
+               mwindow->cwindow->calculate_affected_autos(track,
+                       &x_auto, &y_auto, &z_auto, 0, 0, 0, 0);
        }
 
        add_subwindow(title = new BC_Title(x, y, "X:"));
@@ -1258,15 +1205,10 @@ void CWindowProjectorGUI::create_objects()
 
 void CWindowProjectorGUI::update_preview()
 {
-       mwindow->gui->lock_window("CWindowProjectorGUI::update_preview");
-       mwindow->restart_brender();
-       mwindow->sync_parameters(CHANGE_PARAMS);
-       mwindow->gui->draw_overlays(1);
-       mwindow->gui->unlock_window();
-       mwindow->cwindow->refresh_frame(CHANGE_NONE);
-       mwindow->cwindow->gui->lock_window("CWindowProjectorGUI::update_preview");
-       mwindow->cwindow->gui->canvas->draw_refresh();
-       mwindow->cwindow->gui->unlock_window();
+       CWindowGUI *cgui = mwindow->cwindow->gui;
+       cgui->lock_window("CWindowProjectorGUI::update_preview");
+       cgui->sync_parameters(CHANGE_PARAMS, 0, 1);
+       cgui->unlock_window();
 }
 
 void CWindowProjectorGUI::handle_event()
@@ -1337,17 +1279,9 @@ void CWindowProjectorGUI::update()
        FloatAuto *y_auto = 0;
        FloatAuto *z_auto = 0;
        Track *track = mwindow->cwindow->calculate_affected_track();
-
-       if(track)
-       {
-               mwindow->cwindow->calculate_affected_autos(&x_auto,
-                       &y_auto,
-                       &z_auto,
-                       track,
-                       0,
-                       0,
-                       0,
-                       0);
+       if( track ) {
+               mwindow->cwindow->calculate_affected_autos(track,
+                       &x_auto, &y_auto, &z_auto, 0, 0, 0, 0);
        }
 
        if(x_auto)
@@ -1381,16 +1315,9 @@ int CWindowProjectorLeft::handle_event()
        FloatAuto *x_auto = 0;
        FloatAuto *z_auto = 0;
        Track *track = mwindow->cwindow->calculate_affected_track();
-       if(track)
-       {
-               mwindow->cwindow->calculate_affected_autos(&x_auto,
-                       0,
-                       &z_auto,
-                       track,
-                       0,
-                       1,
-                       0,
-                       0);
+       if( track ) {
+               mwindow->cwindow->calculate_affected_autos(track,
+                       &x_auto, 0, &z_auto, 0, 1, 0, 0);
        }
        if(x_auto && z_auto)
        {
@@ -1447,16 +1374,9 @@ int CWindowProjectorRight::handle_event()
        FloatAuto *x_auto = 0;
        FloatAuto *z_auto = 0;
        Track *track = mwindow->cwindow->calculate_affected_track();
-       if(track)
-       {
-               mwindow->cwindow->calculate_affected_autos(&x_auto,
-                       0,
-                       &z_auto,
-                       track,
-                       0,
-                       1,
-                       0,
-                       0);
+       if( track ) {
+               mwindow->cwindow->calculate_affected_autos(track,
+                       &x_auto, 0, &z_auto, 0, 1, 0, 0);
        }
 
        if(x_auto && z_auto)
@@ -1485,16 +1405,9 @@ int CWindowProjectorTop::handle_event()
        FloatAuto *y_auto = 0;
        FloatAuto *z_auto = 0;
        Track *track = mwindow->cwindow->calculate_affected_track();
-       if(track)
-       {
-               mwindow->cwindow->calculate_affected_autos(0,
-                       &y_auto,
-                       &z_auto,
-                       track,
-                       0,
-                       0,
-                       1,
-                       0);
+       if( track ) {
+               mwindow->cwindow->calculate_affected_autos(track,
+                       0, &y_auto, &z_auto, 0, 0, 1, 0);
        }
 
        if(y_auto && z_auto)
@@ -1551,16 +1464,9 @@ int CWindowProjectorBottom::handle_event()
        FloatAuto *y_auto = 0;
        FloatAuto *z_auto = 0;
        Track *track = mwindow->cwindow->calculate_affected_track();
-       if(track)
-       {
-               mwindow->cwindow->calculate_affected_autos(0,
-                       &y_auto,
-                       &z_auto,
-                       track,
-                       0,
-                       0,
-                       1,
-                       0);
+       if( track ) {
+               mwindow->cwindow->calculate_affected_autos(track,
+                       0, &y_auto, &z_auto, 0, 0, 1, 0);
        }
 
        if(y_auto && z_auto)
@@ -2287,15 +2193,10 @@ void CWindowMaskGUI::handle_event()
 
 void CWindowMaskGUI::update_preview()
 {
-       mwindow->gui->lock_window("CWindowMaskGUI::update_preview");
-       mwindow->restart_brender();
-       mwindow->sync_parameters(CHANGE_PARAMS);
-       mwindow->gui->draw_overlays(1);
-       mwindow->gui->unlock_window();
-       mwindow->cwindow->refresh_frame(CHANGE_NONE);
-       mwindow->cwindow->gui->lock_window("CWindowMaskGUI::update_preview");
-       mwindow->cwindow->gui->canvas->draw_refresh();
-       mwindow->cwindow->gui->unlock_window();
+       CWindowGUI *cgui = mwindow->cwindow->gui;
+       cgui->lock_window("CWindowMaskGUI::update_preview");
+       cgui->sync_parameters(CHANGE_PARAMS, 0, 1);
+       cgui->unlock_window();
 }