upgrade dmp output
[goodguy/history.git] / cinelerra-5.1 / cinelerra / awindowgui.C
index 57d9356923a60b18ca011ba48d7d6ed9fe4a004a..0a8fcf26566b8ec8417e9d91f85bff069fae5287 100644 (file)
@@ -536,25 +536,19 @@ SET_TRACE
 SET_TRACE
 
 // Mandatory folders
-       folders.append(picon = new AssetPicon(mwindow,
-               this,
-               AEFFECT_FOLDER));
+       folders.append(picon = new AssetPicon(mwindow, this, AEFFECT_FOLDER));
        picon->persistent = 1;
-       folders.append(picon = new AssetPicon(mwindow,
-               this,
-               VEFFECT_FOLDER));
+       folders.append(picon = new AssetPicon(mwindow, this, VEFFECT_FOLDER));
        picon->persistent = 1;
-       folders.append(picon = new AssetPicon(mwindow,
-               this,
-               ATRANSITION_FOLDER));
+       folders.append(picon = new AssetPicon(mwindow, this, ATRANSITION_FOLDER));
        picon->persistent = 1;
-       folders.append(picon = new AssetPicon(mwindow,
-               this,
-               VTRANSITION_FOLDER));
+       folders.append(picon = new AssetPicon(mwindow, this, VTRANSITION_FOLDER));
        picon->persistent = 1;
-       folders.append(picon = new AssetPicon(mwindow,
-               this,
-               LABEL_FOLDER));
+       folders.append(picon = new AssetPicon(mwindow, this, LABEL_FOLDER));
+       picon->persistent = 1;
+       folders.append(picon = new AssetPicon(mwindow, this, CLIP_FOLDER));
+       picon->persistent = 1;
+       folders.append(picon = new AssetPicon(mwindow, this, MEDIA_FOLDER));
        picon->persistent = 1;
 
        create_label_folder();
@@ -678,9 +672,6 @@ int AWindowGUI::translation_event()
 
 void AWindowGUI::reposition_objects()
 {
-       divider->reposition_window(
-               mwindow->theme->adivider_x, mwindow->theme->adivider_y,
-               mwindow->theme->adivider_w, mwindow->theme->adivider_h);
        asset_list->reposition_window(
                mwindow->theme->alist_x, mwindow->theme->alist_y,
                mwindow->theme->alist_w, mwindow->theme->alist_h);
@@ -1586,54 +1577,31 @@ int AWindowAssets::button_release_event()
 int AWindowAssets::handle_event()
 {
 //printf("AWindowAssets::handle_event 1 %d %d\n", get_buttonpress(), get_selection(0, 0));
-       if(get_selection(0, 0))
-       {
-               if(!strcasecmp(mwindow->edl->session->current_folder, AEFFECT_FOLDER)) {}
-               else if(!strcasecmp(mwindow->edl->session->current_folder, VEFFECT_FOLDER)) {}
-               else if(!strcasecmp(mwindow->edl->session->current_folder, ATRANSITION_FOLDER)) {}
-               else if(!strcasecmp(mwindow->edl->session->current_folder, VTRANSITION_FOLDER)) {}
-               else if(mwindow->vwindows.size()) {
+       AssetPicon *asset_picon = (AssetPicon *)get_selection(0, 0);
+       if( !asset_picon ) return 0;
+       const char *folder = mwindow->edl->session->current_folder;
+       if( !strcasecmp(folder, AEFFECT_FOLDER) ) return 1;
+       if( !strcasecmp(folder, VEFFECT_FOLDER) ) return 1;
+       if( !strcasecmp(folder, ATRANSITION_FOLDER) ) return 1;
+       if( !strcasecmp(folder, VTRANSITION_FOLDER) ) return 1;
+       VWindow *vwindow = mwindow->vwindows.size() > DEFAULT_VWINDOW ?
+               mwindow->vwindows.get(DEFAULT_VWINDOW) : 0;
+       if( !vwindow || !vwindow->is_running() ) return 1;
 //printf("AWindowAssets::handle_event 2 %d %d\n", get_buttonpress(), get_selection(0, 0));
-                       mwindow->vwindows.get(DEFAULT_VWINDOW)->gui->lock_window("AWindowAssets::handle_event");
-
-                       if(((AssetPicon*)get_selection(0, 0))->indexable)
-                               mwindow->vwindows.get(DEFAULT_VWINDOW)->change_source(((AssetPicon*)get_selection(0, 0))->indexable);
-                       else
-                       if(((AssetPicon*)get_selection(0, 0))->edl)
-                               mwindow->vwindows.get(DEFAULT_VWINDOW)->change_source(((AssetPicon*)get_selection(0, 0))->edl);
-
-                       mwindow->vwindows.get(DEFAULT_VWINDOW)->gui->unlock_window();
-               }
-               return 1;
-       }
 
-       return 0;
+       vwindow->gui->lock_window("AWindowAssets::handle_event");
+       if( asset_picon->indexable )
+               vwindow->change_source(asset_picon->indexable);
+       else if( asset_picon->edl )
+               vwindow->change_source(asset_picon->edl);
+       vwindow->gui->unlock_window();
+       return 1;
 }
 
 int AWindowAssets::selection_changed()
 {
 // Show popup window
-       if(get_button_down() && get_buttonpress() == 3 && get_selection(0, 0))
-       {
-               if(!strcasecmp(mwindow->edl->session->current_folder, AEFFECT_FOLDER) ||
-                       !strcasecmp(mwindow->edl->session->current_folder, VEFFECT_FOLDER) ||
-                       !strcasecmp(mwindow->edl->session->current_folder, ATRANSITION_FOLDER) ||
-                       !strcasecmp(mwindow->edl->session->current_folder, VTRANSITION_FOLDER))
-               {
-                       gui->assetlist_menu->update_titles();
-                       gui->assetlist_menu->activate_menu();
-               }
-               else
-                if (!strcasecmp(mwindow->edl->session->current_folder, LABEL_FOLDER))
-               {
-                       if(((AssetPicon*)get_selection(0, 0))->label)
-                               gui->label_menu->activate_menu();
-               }
-
-               BC_ListBox::deactivate_selection();
-               return 1;
-       }
-       else if( get_button_down() && get_buttonpress() == 1 && get_selection(0, 0) ) {
+       if( get_button_down() && get_buttonpress() == 1 && get_selection(0, 0) ) {
                VIcon *vicon = 0;
                if( !gui->vicon_thread->viewing ) {
                        AssetPicon *picon = (AssetPicon*)get_selection(0, 0);
@@ -1735,6 +1703,7 @@ int AWindowAssets::drag_motion_event()
        for(int i = 0; i < mwindow->vwindows.size(); i++)
        {
                VWindow *vwindow = mwindow->vwindows.get(i);
+               if( !vwindow->is_running() ) continue;
                vwindow->gui->lock_window("AWindowAssets::drag_motion_event");
                vwindow->gui->drag_motion();
                vwindow->gui->unlock_window();
@@ -1768,6 +1737,7 @@ int AWindowAssets::drag_stop_event()
                for(int i = 0; i < mwindow->vwindows.size(); i++)
                {
                        VWindow *vwindow = mwindow->vwindows.get(i);
+                       if( !vwindow->is_running() ) continue;
                        vwindow->gui->lock_window("AWindowAssets::drag_stop_event");
                        result = vwindow->gui->drag_stop();
                        vwindow->gui->unlock_window();