compositor f1-f10/j/p shortcuts, opencv upgrade, new stylize,puzzle opencv plugins
[goodguy/history.git] / cinelerra-5.1 / cinelerra / cwindowtool.C
index 73f1f23254a5925e7d1e4e28a8f647e4f25bd2fd..cb3a1d7e4f7cf4d0187a8ce82e631d34d6702451 100644 (file)
@@ -289,9 +289,28 @@ int CWindowToolGUI::close_event()
 
 int CWindowToolGUI::keypress_event()
 {
-       if(get_keypress() == 'w' || get_keypress() == 'W')
+       int result = 0;
+       int cwindow_operation = CWINDOW_NONE;
+
+       switch( get_keypress() ) {
+       case 'w':
+       case 'W':
                return close_event();
-       return 0;
+       case KEY_F1:
+       case KEY_F2:
+       case KEY_F3:
+       case KEY_F4:
+       case KEY_F5:
+       case KEY_F6:
+       case KEY_F7:
+       case KEY_F8:
+       case KEY_F9:
+       case KEY_F10:
+               resend_event(thread->gui);
+               result = 1;
+       }
+
+       return result;
 }
 
 int CWindowToolGUI::translation_event()
@@ -546,7 +565,7 @@ void CWindowEyedropGUI::update()
        rgb_hex->update(rgb_text);
        
        float y, u, v;
-       YUV::rgb_to_yuv_f(r, g, b, y, u, v);
+       YUV::yuv.rgb_to_yuv_f(r, g, b, y, u, v);
        this->y->update(y);
        this->u->update(u);  u += 0.5;
        this->v->update(v);  v += 0.5;
@@ -789,16 +808,12 @@ void CWindowCameraGUI::create_objects()
 
 void CWindowCameraGUI::update_preview()
 {
-       mwindow->restart_brender();
-       mwindow->sync_parameters(CHANGE_PARAMS);
-
-       mwindow->cwindow->playback_engine->que->send_command(CURRENT_FRAME,
-                       CHANGE_NONE,
-                       mwindow->edl,
-                       1);
        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();
@@ -1237,16 +1252,12 @@ void CWindowProjectorGUI::create_objects()
 
 void CWindowProjectorGUI::update_preview()
 {
+       mwindow->gui->lock_window("CWindowProjectorGUI::update_preview");
        mwindow->restart_brender();
        mwindow->sync_parameters(CHANGE_PARAMS);
-       mwindow->cwindow->playback_engine->que->send_command(CURRENT_FRAME,
-                       CHANGE_NONE,
-                       mwindow->edl,
-                       1);
-       // TODO: really need to lock the main window??
-       mwindow->gui->lock_window("CWindowProjectorGUI::update_preview");
        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();
@@ -1670,6 +1681,9 @@ int CWindowMaskDelete::handle_event()
                temp_keyframe.copy_data(keyframe);
 // Update parameter
                SubMask *submask = temp_keyframe.get_submask(mwindow->edl->session->cwindow_mask);
+               if( shift_down() )
+                       submask->points.remove_all_objects();
+
                for(int i = mwindow->cwindow->gui->affected_point;
                        i < submask->points.total - 1;
                        i++)
@@ -1691,6 +1705,8 @@ int CWindowMaskDelete::handle_event()
                        current; )
                {
                        SubMask *submask = current->get_submask(mwindow->edl->session->cwindow_mask);
+                       if( shift_down() )
+                               submask->points.remove_all_objects();
 
                        for(int i = mwindow->cwindow->gui->affected_point;
                                i < submask->points.total - 1;
@@ -2053,11 +2069,8 @@ int CWindowDisableOpenGLMasking::handle_event()
 
 
 CWindowMaskGUI::CWindowMaskGUI(MWindow *mwindow, CWindowTool *thread)
- : CWindowToolGUI(mwindow,
-       thread,
-       _(PROGRAM_NAME ": Mask"),
-       330,
-       310)
+ : CWindowToolGUI(mwindow, thread,
+       _(PROGRAM_NAME ": Mask"), 330, 320)
 {
        this->mwindow = mwindow;
        this->thread = thread;
@@ -2125,6 +2138,8 @@ void CWindowMaskGUI::create_objects()
        y += title->get_h() + margin;
        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, _("Shift+click Delete to delete the mask")));
+       y += title->get_h() + margin;
        add_subwindow(title = new BC_Title(x, y, _("Press Alt to translate the mask")));
        y += 30;
 
@@ -2264,12 +2279,12 @@ void CWindowMaskGUI::handle_event()
 
 void CWindowMaskGUI::update_preview()
 {
+       mwindow->gui->lock_window("CWindowMaskGUI::update_preview");
        mwindow->restart_brender();
        mwindow->sync_parameters(CHANGE_PARAMS);
-       mwindow->cwindow->playback_engine->que->send_command(CURRENT_FRAME,
-                       CHANGE_NONE,
-                       mwindow->edl,
-                       1);
+       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();