#include "edl.h"
#include "edlsession.h"
#include "filesystem.h"
+#include "filexml.h"
#include "keyframepopup.h"
#include "keys.h"
#include "language.h"
if(debug) printf("MWindowGUI::create_objects %d\n", __LINE__);
- int x = get_w() - MainShBtns::calculate_w(0);
+ int x = get_w() - MainShBtns::calculate_w(-1, 0, -1);
add_subwindow(mainmenu = new MainMenu(mwindow, this, x));
mainmenu->create_objects();
add_subwindow(mainshbtns = new MainShBtns(mwindow, x, -1));
//printf("MWindowGUI::resize_event %d\n", __LINE__);
mwindow->session->mwindow_w = w;
mwindow->session->mwindow_h = h;
- int x = w - MainShBtns::calculate_w(0);
+ int x = w - MainShBtns::calculate_w(-1, 0, -1);
mainmenu->resize_event(x, mainmenu->get_h());
mainshbtns->reposition_window(x, -1);
mwindow->theme->get_mwindow_sizes(this, w, h);
}
-void MWindowGUI::show_message(const char *message, int color)
+void MWindowGUI::show_message(const char *message, int msg_color, int bar_color)
{
- statusbar->show_message(message, color);
+ statusbar->show_message(message, msg_color, bar_color);
}
void MWindowGUI::update_default_message()
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 )
{
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, plugins = 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;
result = 1;
break;
+ case 'C':
+ packed = 1;
case 'c':
if( !ctrl_down() || alt_down() ) break;
- mwindow->selected_to_clipboard();
+ mwindow->selected_edits_to_clipboard(packed);
+ result = 1;
break;
+ case 'P':
+ plugins = 1;
+ case 'b':
+ overwrite = -1; // fall thru
case 'v':
if( !ctrl_down() || alt_down() ) break;
- mwindow->paste();
+ 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_no<TOTAL_PANES; ++pane_no ) {
+ if( !pane[pane_no] ) continue;
+ first_track = pane[pane_no]->over_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();
+ if( !plugins )
+ mwindow->paste(position, first_track, 0, overwrite);
+ else
+ mwindow->paste_clipboard(first_track, position, 1, 0, 1, 1, 1);
+ 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(get_keypress()=='x' ? 1 : 0);
- break;
- case 'm':
- case DELETE:
- if( !ctrl_down() || alt_down() ) break;
- mwindow->delete_edits(get_keypress()==DELETE ? 1 : 0);
+ 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':
+ case '1' ... '8':
if( !alt_down() || shift_down() ) break;
if( !mwindow->select_asset(get_keypress()-'1',1) )
result = 1;
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;
}
{
if( !mbuttons->transport->is_stopped() ) {
if( lock_msg ) unlock_window();
- mbuttons->transport->handle_transport(STOP, 1, 0, 0);
+ mbuttons->transport->handle_transport(STOP, 1);
if( lock_msg ) lock_window(lock_msg);
}
}