X-Git-Url: https://cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fmwindowgui.C;h=743c721cf2fcd6f6cc1aba24d3e11348556df200;hb=e23393f4ff9f772ac8f47926cf490dc87a630ed4;hp=36532ac7da51752a2b1cdd9d3f52bc2bd93d49d4;hpb=3fc547b01e919d3044bacf2a78baddeaed04e3a0;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/mwindowgui.C b/cinelerra-5.1/cinelerra/mwindowgui.C index 36532ac7..743c721c 100644 --- a/cinelerra-5.1/cinelerra/mwindowgui.C +++ b/cinelerra-5.1/cinelerra/mwindowgui.C @@ -65,6 +65,7 @@ #include "swindow.h" #include "theme.h" #include "trackcanvas.h" +#include "trackpopup.h" #include "trackscroll.h" #include "tracks.h" #include "transitionpopup.h" @@ -116,6 +117,7 @@ MWindowGUI::MWindowGUI(MWindow *mwindow) statusbar = 0; zoombar = 0; mainclock = 0; + track_menu = 0; edit_menu = 0; plugin_menu = 0; keyframe_menu = 0; @@ -336,6 +338,9 @@ void MWindowGUI::create_objects() // cursor->create_objects(); + if(debug) printf("MWindowGUI::create_objects %d\n", __LINE__); + add_subwindow(track_menu = new TrackPopup(mwindow, this)); + track_menu->create_objects(); if(debug) printf("MWindowGUI::create_objects %d\n", __LINE__); add_subwindow(edit_menu = new EditPopup(mwindow, this)); edit_menu->create_objects(); @@ -1002,6 +1007,7 @@ int MWindowGUI::drag_motion() if( mwindow->session->current_operation == DRAG_ASSET || mwindow->session->current_operation == DRAG_EDIT || + mwindow->session->current_operation == DRAG_GROUP || mwindow->session->current_operation == DRAG_AEFFECT_COPY || mwindow->session->current_operation == DRAG_VEFFECT_COPY ) { @@ -1165,9 +1171,17 @@ int MWindowGUI::keypress_event() int result = mbuttons->keypress_event(); if( result ) return result; - Track *this_track = 0; + Track *this_track = 0, *first_track = 0; + int collapse = 0, packed = 0, overwrite = 0; + double position = 0; - switch(get_keypress()) { + switch( get_keypress() ) { + case 'A': + if( !ctrl_down() || !shift_down() || alt_down() ) break; + mwindow->edl->tracks->clear_selected_edits(); + draw_overlays(1); + result = 1; + break; case 'e': mwindow->toggle_editing_mode(); result = 1; @@ -1181,6 +1195,52 @@ int MWindowGUI::keypress_event() result = 1; break; + case 'C': + packed = 1; + case 'c': + if( !ctrl_down() || alt_down() ) break; + mwindow->selected_edits_to_clipboard(packed); + result = 1; + break; + case 'b': + overwrite = -1; // fall thru + case 'v': + if( !ctrl_down() || alt_down() ) break; + if( mwindow->session->current_operation == DROP_TARGETING ) { + mwindow->session->current_operation = NO_OPERATION; + mwindow->gui->set_editing_mode(1); + int pane_no = 0; + for( ; pane_noover_track(); + if( first_track ) break; + } + if( first_track ) { + int cursor_x = pane[pane_no]->canvas->get_relative_cursor_x(); + position = mwindow->edl->get_cursor_position(cursor_x, pane_no); + } + } + else + position = mwindow->edl->local_session->get_selectionstart(); + mwindow->paste(position, first_track, 0, overwrite); + mwindow->edl->tracks->clear_selected_edits(); + draw_overlays(1); + result = 1; + break; + case 'M': + collapse = 1; + case 'm': + mwindow->cut_selected_edits(0, collapse); + result = 1; + break; + case 'z': + collapse = 1; + case 'x': + if( !ctrl_down() || alt_down() ) break; + mwindow->cut_selected_edits(1, collapse); + result = 1; + break; + case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': if( !alt_down() || shift_down() ) break; @@ -1296,18 +1356,7 @@ int MWindowGUI::keypress_event() result = 1; break; - 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: - case KEY_F11: - case KEY_F12: + case KEY_F1 ... KEY_F12: resend_event(mwindow->cwindow->gui); return 1; } @@ -2404,10 +2453,12 @@ ProxyToggle::~ProxyToggle() int ProxyToggle::handle_event() { int disabled = get_value(); + mwindow->gui->unlock_window(); if( disabled ) mwindow->disable_proxy(); else mwindow->enable_proxy(); + mwindow->gui->lock_window("ProxyToggle::handle_event"); set_tooltip(!disabled ? _("Disable proxy") : _("Enable proxy")); return 1; }