X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fvwindowgui.C;h=9b7f6ca8cafced412de405ac6e856b3600ab6bde;hb=172ef8e133b80572d7d81b06f6658ce89bf709a3;hp=7fcd19ad43aaef52ae292114a7b0cd2fa5e78c0a;hpb=b5bfe3e40a7255ae60a21d885587ada6e145e3d5;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/vwindowgui.C b/cinelerra-5.1/cinelerra/vwindowgui.C index 7fcd19ad..9b7f6ca8 100644 --- a/cinelerra-5.1/cinelerra/vwindowgui.C +++ b/cinelerra-5.1/cinelerra/vwindowgui.C @@ -79,6 +79,8 @@ VWindowGUI::VWindowGUI(MWindow *mwindow, VWindow *vwindow) // source = 0; strcpy(loaded_title, ""); highlighted = 0; +// *** CONTEXT_HELP *** + context_help_set_keyword("Viewer Window"); } VWindowGUI::~VWindowGUI() @@ -95,7 +97,7 @@ VWindowGUI::~VWindowGUI() void VWindowGUI::draw_wave() { - TransportCommand command; + TransportCommand command(mwindow->preferences); command.command = NORMAL_FWD; command.get_edl()->copy_all(vwindow->get_edl()); command.change_type = CHANGE_ALL; @@ -129,7 +131,7 @@ void VWindowGUI::draw_wave() for( int i=channels; --i>=0; ) delete samples[i]; delete render_engine; - delete cache; + cache->remove_user(); delete canvas->refresh_frame; canvas->refresh_frame = vframe; canvas->refresh(1); @@ -227,6 +229,7 @@ void VWindowGUI::create_objects() mwindow->theme->vtransport_x, mwindow->theme->vtransport_y); transport->create_objects(); + transport->set_transport(LOOP_MODE); //printf("VWindowGUI::create_objects 1\n"); // add_subwindow(fps_title = new BC_Title(mwindow->theme->vedit_x, y, "")); @@ -381,6 +384,8 @@ int VWindowGUI::keypress_event() } if( !result ) result = transport->keypress_event(); + if( !result ) + result = context_help_check_and_show(); return result; } @@ -558,7 +563,9 @@ VWindowEditing::VWindowEditing(MWindow *mwindow, VWindow *vwindow) 0, // use_commerical 0, // use_goto 1, // use_clk2play - 1) // use_scope + 1, // use_scope + 0, // use_gang_tracks + 0) // use_timecode { this->mwindow = mwindow; this->vwindow = vwindow; @@ -703,6 +710,7 @@ void VWindowEditing::panel_set_editing_mode(int mode) {} void VWindowEditing::panel_set_auto_keyframes(int v) {} void VWindowEditing::panel_set_span_keyframes(int v) {} void VWindowEditing::panel_set_labels_follow_edits(int v) {} +void VWindowEditing::panel_set_gang_tracks(int v) {} VWindowSource::VWindowSource(MWindow *mwindow, VWindowGUI *vwindow, int x, int y) @@ -829,14 +837,29 @@ void VWindowCanvas::close_source() int VWindowCanvas::scope_on() { - return !gui->edit_panel->scope_dialog ? 0 : - gui->edit_panel->scope_dialog->running(); + EditPanelScopeDialog *scope_dialog = gui->edit_panel->scope_dialog; + if( !scope_dialog || !scope_dialog->scope_gui ) return 0; + if( scope_dialog->scope_gui->use_refresh ) return 0; + if( scope_dialog->scope_gui->use_release ) return 0; + return scope_dialog->running(); +} + +void VWindowCanvas::draw_scope(VFrame *output, int refresh) +{ + if( !output ) return; + EditPanelScopeDialog *scope_dialog = gui->edit_panel->scope_dialog; + if( !scope_dialog || !scope_dialog->scope_gui ) return; + if( scope_dialog->scope_gui->use_refresh && !refresh ) return; + if( scope_dialog->scope_gui->use_release && refresh >= 0 ) return; + scope_dialog->process(output); } -void VWindowCanvas::draw_scope(VFrame *output) +int VWindowCanvas::button_release_event() { - if( gui->edit_panel->scope_dialog ) - gui->edit_panel->scope_dialog->process(output); + BC_WindowBase *window = get_canvas(); + if( window && !window->get_video_on() ) + draw_scope(refresh_frame, -1); + return Canvas::button_release_event(); } void VWindowCanvas::draw_refresh(int flush)