X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fcwindowtool.C;h=ee1c1044f2e34cec1871b278196ae66026ba4799;hb=ed1cab1d6cbde6129bbd09b9609f7bba03ab610f;hp=64c9f4f38710e0305a63ed991828a71a695d285c;hpb=21b49090a36821cfe97bdfc573c7fbacc80653d1;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/cwindowtool.C b/cinelerra-5.1/cinelerra/cwindowtool.C index 64c9f4f3..ee1c1044 100644 --- a/cinelerra-5.1/cinelerra/cwindowtool.C +++ b/cinelerra-5.1/cinelerra/cwindowtool.C @@ -19,6 +19,9 @@ * */ +#include +#include + #include "automation.h" #include "cicolors.h" #include "clip.h" @@ -457,10 +460,6 @@ void CWindowCropGUI::update() } - - - - CWindowEyedropGUI::CWindowEyedropGUI(MWindow *mwindow, CWindowTool *thread) : CWindowToolGUI(mwindow, thread, @@ -590,28 +589,27 @@ const _CVD Camera_Crv_Smooth = { FloatAuto::SMOOTH, true, "tan_smooth", - _("\"smooth\" Curve on current Camera Keyframes") + N_("\"smooth\" Curve on current Camera Keyframes") }; const _CVD Camera_Crv_Linear = { FloatAuto::LINEAR, true, "tan_linear", - _("\"linear\" Curve on current Camera Keyframes") + N_("\"linear\" Curve on current Camera Keyframes") }; const _CVD Projector_Crv_Smooth = { FloatAuto::SMOOTH, false, "tan_smooth", - _("\"smooth\" Curve on current Projector Keyframes") + N_("\"smooth\" Curve on current Projector Keyframes") }; const _CVD Projector_Crv_Linear = { FloatAuto::LINEAR, false, "tan_linear", - _("\"linear\" Curve on current Projector Keyframes") + N_("\"linear\" Curve on current Projector Keyframes") }; - // Implementation Class für Keyframe Curve Mode buttons // // This button reflects the state of the "current" keyframe @@ -639,7 +637,7 @@ CWindowCurveToggle::CWindowCurveToggle(_CVD mode, MWindow *mwindow, CWindowToolG { this->gui = gui; this->mwindow = mwindow; - set_tooltip(cfg.tooltip); + set_tooltip(_(cfg.tooltip)); } void CWindowCurveToggle::check_toggle_state(FloatAuto *x, FloatAuto *y, FloatAuto *z) @@ -675,10 +673,6 @@ int CWindowCurveToggle::handle_event() } - - - - CWindowCameraGUI::CWindowCameraGUI(MWindow *mwindow, CWindowTool *thread) : CWindowToolGUI(mwindow, thread, @@ -818,9 +812,9 @@ void CWindowCameraGUI::handle_event() if(z_auto) { float zoom = atof(z->get_text()); - if(zoom > 10) zoom = 10; + if(zoom > 100.) zoom = 100.; else - if(zoom < 0) zoom = 0; + if(zoom < 0.01) zoom = 0.01; // Doesn't allow user to enter from scratch // if(zoom != atof(z->get_text())) // z->update(zoom); @@ -861,8 +855,11 @@ void CWindowCameraGUI::update() x->update(x_auto->get_value()); if(y_auto) y->update(y_auto->get_value()); - if(z_auto) - z->update(z_auto->get_value()); + if(z_auto) { + float value = z_auto->get_value(); + z->update(value); + thread->gui->composite_panel->cpanel_zoom->update(value); + } if( x_auto && y_auto && z_auto ) { @@ -1120,21 +1117,6 @@ int CWindowCameraBottom::handle_event() } - - - - - - - - - - - - - - - CWindowProjectorGUI::CWindowProjectorGUI(MWindow *mwindow, CWindowTool *thread) : CWindowToolGUI(mwindow, thread, @@ -1278,9 +1260,8 @@ void CWindowProjectorGUI::handle_event() if(z_auto) { float zoom = atof(z->get_text()); - if(zoom > 10000) zoom = 10000; - else - if(zoom < 0) zoom = 0; + if(zoom > 100.) zoom = 100.; + else if(zoom < 0.01) zoom = 0.01; // if (zoom != atof(z->get_text())) // z->update(zoom); z_auto->set_value(zoom); @@ -1320,8 +1301,11 @@ void CWindowProjectorGUI::update() x->update(x_auto->get_value()); if(y_auto) y->update(y_auto->get_value()); - if(z_auto) - z->update(z_auto->get_value()); + if(z_auto) { + float value = z_auto->get_value(); + z->update(value); + thread->gui->composite_panel->cpanel_zoom->update(value); + } if( x_auto && y_auto && z_auto ) { @@ -1330,44 +1314,6 @@ void CWindowProjectorGUI::update() } } - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CWindowProjectorLeft::CWindowProjectorLeft(MWindow *mwindow, CWindowProjectorGUI *gui, int x, int y) : BC_Button(x, y, mwindow->theme->get_image_set("left_justify")) { @@ -1576,12 +1522,6 @@ int CWindowProjectorBottom::handle_event() } - - - - - - CWindowMaskMode::CWindowMaskMode(MWindow *mwindow, CWindowToolGUI *gui, int x, int y, const char *text) : BC_PopupMenu(x, y, 220, text, 1) @@ -1943,7 +1883,7 @@ int CWindowMaskFeather::handle_event() mask, point, create_it); if(track) - { + { #ifdef USE_KEYFRAME_SPANNING // Create temp keyframe MaskAuto temp_keyframe(mwindow->edl, autos); @@ -1994,7 +1934,7 @@ int CWindowMaskValue::handle_event() #else int create_it = 1; #endif - + mwindow->undo->update_undo_before(_("mask value"), this); ((CWindowMaskGUI*)gui)->get_keyframe(track, autos, keyframe, mask, point, create_it); @@ -2046,6 +1986,30 @@ int CWindowMaskBeforePlugins::handle_event() } +CWindowDisableOpenGLMasking::CWindowDisableOpenGLMasking(CWindowToolGUI *gui, int x, int y) + : BC_CheckBox(x, y, 1, _("Disable OpenGL masking")) +{ + this->gui = gui; +} + +int CWindowDisableOpenGLMasking::handle_event() +{ + Track *track; + MaskAutos *autos; + MaskAuto *keyframe; + SubMask *mask; + MaskPoint *point; + ((CWindowMaskGUI*)gui)->get_keyframe(track, autos, keyframe, mask, point, 1); + + if (keyframe) { + keyframe->disable_opengl_masking = get_value(); + gui->update_preview(); + } + return 1; +} + + + @@ -2057,7 +2021,7 @@ CWindowMaskGUI::CWindowMaskGUI(MWindow *mwindow, CWindowTool *thread) thread, _(PROGRAM_NAME ": Mask"), 330, - 280) + 310) { this->mwindow = mwindow; this->thread = thread; @@ -2121,19 +2085,16 @@ void CWindowMaskGUI::create_objects() x = 10; y += this->y->get_h() + margin; - add_subwindow(title = new BC_Title(x, y, _("Press Ctrl to move a point"))); + add_subwindow(title = new BC_Title(x, y, _("Press Shift to move an end point"))); y += title->get_h() + margin; - add_subwindow(title = new BC_Title(x, y, _("Press Alt to translate the mask"))); + add_subwindow(title = new BC_Title(x, y, _("Press Ctrl to move a control point"))); y += title->get_h() + margin; - add_subwindow(title = new BC_Title(x, y, _("Press Shift to edit bezier curve"))); - + add_subwindow(title = new BC_Title(x, y, _("Press Alt to translate the mask"))); y += 30; -// add_subwindow(title = new BC_Title(x, y, _("Apply mask before plugins:"))); - add_subwindow(this->apply_before_plugins = new CWindowMaskBeforePlugins(this, - 10, - y)); -// this->apply_before_plugins->create_objects(); + add_subwindow(this->apply_before_plugins = new CWindowMaskBeforePlugins(this, 10, y)); + y += this->apply_before_plugins->get_h() + margin; + add_subwindow(this->disable_opengl_masking = new CWindowDisableOpenGLMasking(this, 10, y)); update(); unlock_window(); @@ -2201,6 +2162,7 @@ void CWindowMaskGUI::update() feather->update((int64_t)autos->get_feather(position_i, PLAY_FORWARD)); value->update((int64_t)autos->get_value(position_i, PLAY_FORWARD)); apply_before_plugins->update((int64_t)keyframe->apply_before_plugins); + disable_opengl_masking->update((int64_t)keyframe->disable_opengl_masking); } }