clipboard rework, C41/titler fixes, displayinfo tweak
[goodguy/history.git] / cinelerra-5.1 / cinelerra / clippopup.C
index b8a235a5cedfbaff4b8ca8b4eb3087a0444f011c..4fd6af6975e6139c42d4965f31d16f43b604151a 100644 (file)
@@ -58,7 +58,7 @@ void ClipPopup::create_objects()
        BC_MenuItem *menu_item;
        BC_SubMenu *submenu;
        add_item(info = new ClipPopupInfo(mwindow, this));
-       add_item(format = new AWindowListFormat(mwindow));
+       add_item(format = new AWindowListFormat(mwindow, gui));
        add_item(new ClipPopupSort(mwindow, this));
        add_item(view = new ClipPopupView(mwindow, this));
        add_item(view_window = new ClipPopupViewWindow(mwindow, this));
@@ -137,16 +137,17 @@ ClipPopupInfo::~ClipPopupInfo()
 
 int ClipPopupInfo::handle_event()
 {
-       if(mwindow->session->drag_assets->total)
-       {
+       int cur_x, cur_y;
+       popup->gui->get_abs_cursor_xy(cur_x, cur_y, 0);
+
+       if( mwindow->session->drag_assets->total ) {
                mwindow->awindow->asset_edit->edit_asset(
-                       mwindow->session->drag_assets->values[0]);
+                       mwindow->session->drag_assets->values[0], cur_x, cur_y);
        }
        else
-       if(mwindow->session->drag_clips->total)
-       {
+       if( mwindow->session->drag_clips->total ) {
                popup->gui->awindow->clip_edit->edit_clip(
-                       mwindow->session->drag_clips->values[0]);
+                       mwindow->session->drag_clips->values[0], cur_x, cur_y);
        }
        return 1;
 }
@@ -186,11 +187,11 @@ int ClipPopupView::handle_event()
        VWindow *vwindow = mwindow->get_viewer(1, DEFAULT_VWINDOW);
        vwindow->gui->lock_window("ClipPopupView::handle_event");
 
-       if(mwindow->session->drag_assets->total)
+       if( mwindow->session->drag_assets->total )
                vwindow->change_source(
                        mwindow->session->drag_assets->values[0]);
        else
-       if(mwindow->session->drag_clips->total)
+       if( mwindow->session->drag_clips->total )
                vwindow->change_source(
                        mwindow->session->drag_clips->values[0]);
 
@@ -218,11 +219,11 @@ int ClipPopupViewWindow::handle_event()
 // TODO: create new vwindow or change current vwindow
        vwindow->gui->lock_window("ClipPopupView::handle_event");
 
-       if(mwindow->session->drag_assets->total)
+       if( mwindow->session->drag_assets->total )
                vwindow->change_source(
                        mwindow->session->drag_assets->values[0]);
        else
-       if(mwindow->session->drag_clips->total)
+       if( mwindow->session->drag_clips->total )
                vwindow->change_source(
                        mwindow->session->drag_clips->values[0]);
 
@@ -252,10 +253,8 @@ int ClipPopupCopy::handle_event()
                edl->copy(start, end, 1, 0, 0, &file, "", 1);
                const char *file_string = file.string();
                long file_length = strlen(file_string);
-               gui->get_clipboard()->to_clipboard(file_string, file_length,
-                       SECONDARY_SELECTION);
-               gui->get_clipboard()->to_clipboard(file_string, file_length,
-                       BC_PRIMARY_SELECTION);
+               gui->to_clipboard(file_string, file_length, SECONDARY_SELECTION);
+               gui->to_clipboard(file_string, file_length, BC_PRIMARY_SELECTION);
        }
        gui->unlock_window(); 
        return 1;
@@ -353,10 +352,10 @@ int ClipPasteToFolder::handle_event()
 {
        MWindowGUI *gui = mwindow->gui;
        gui->lock_window("ClipPasteToFolder::handle_event 1");
-       int64_t len = gui->get_clipboard()->clipboard_len(SECONDARY_SELECTION);
+       int64_t len = gui->clipboard_len(BC_PRIMARY_SELECTION);
        if( len ) {
                char *string = new char[len + 1];
-               gui->get_clipboard()->from_clipboard(string, len, BC_PRIMARY_SELECTION);
+               gui->from_clipboard(string, len, BC_PRIMARY_SELECTION);
                const char *clip_header = "<EDL VERSION=";
                if( !strncmp(clip_header, string, strlen(clip_header)) ) {
                        FileXML file;
@@ -397,8 +396,8 @@ ClipListMenu::~ClipListMenu()
 
 void ClipListMenu::create_objects()
 {
-       add_item(format = new AWindowListFormat(mwindow));
-       add_item(new AWindowListSort(mwindow));
+       add_item(format = new AWindowListFormat(mwindow, gui));
+       add_item(new AWindowListSort(mwindow, gui));
        add_item(new ClipPasteToFolder(mwindow));
        update();
 }