transition icons, ru po, listbox sliderbar fixes, update xlat, xft wide char fixes...
[goodguy/history.git] / cinelerra-5.1 / cinelerra / awindowgui.C
index 6ae38bb2c90b7932910826dc385e9ae43e2bfdda..272bfea8ef56bbf71ca1b6526db45a68414fc5f8 100644 (file)
@@ -449,6 +449,7 @@ AWindowGUI::AWindowGUI(MWindow *mwindow, AWindow *awindow)
        remove_plugin = 0;
        vicon_thread = 0;
        vicon_drawing = 1;
+       displayed_folder = AW_NO_FOLDER;
 }
 
 AWindowGUI::~AWindowGUI()
@@ -835,9 +836,9 @@ void AWindowRemovePlugin::handle_close_event(int result)
                        mwindow->preferences->plugin_dir, PLUGIN_FILE);
                remove(index_path);
                char png_path[BCTEXTLEN];
-               if( plugin->get_theme_png_path(png_path, mwindow->preferences->theme) )
+               if( plugin->get_plugin_png_path(png_path, mwindow->preferences->plugin_icons) )
                        remove(png_path);
-               if( plugin->get_theme_png_path(png_path, "picon") )
+               if( plugin->get_plugin_png_path(png_path, DEFAULT_PICON) )
                        remove(png_path);
                delete plugin;  plugin = 0;
                awindow->gui->async_update_assets();
@@ -1301,27 +1302,27 @@ void AWindowGUI::update_assets()
 //printf("AWindowGUI::update_assets 3\n");
        filter_displayed_assets();
 
-//for( int i = 0; i < folders.total; i++ )
 //printf("AWindowGUI::update_assets 4\n");
-//     printf("AWindowGUI::update_assets %s\n", folders.values[i]->get_text());
-       if( mwindow->edl->session->folderlist_format != folder_list->get_format() )
+       if( mwindow->edl->session->folderlist_format != folder_list->get_format() ) {
                folder_list->update_format(mwindow->edl->session->folderlist_format, 0);
-       folder_list->update(&folders, 0, 0, 1,
-               folder_list->get_xposition(),
-               folder_list->get_yposition(),
-               -1);
-//printf("AWindowGUI::update_assets 5\n");
+       }
+       int folder_xposition = folder_list->get_xposition();
+       int folder_yposition = folder_list->get_yposition();
+       folder_list->update(&folders, 0, 0, 1, folder_xposition, folder_yposition, -1);
 
-       if( mwindow->edl->session->assetlist_format != asset_list->get_format() )
+//printf("AWindowGUI::update_assets 5\n");
+       if( mwindow->edl->session->assetlist_format != asset_list->get_format() ) {
                asset_list->update_format(mwindow->edl->session->assetlist_format, 0);
-
-
-//printf("AWindowGUI::update_assets 6 %d\n", displayed_assets[0].total);
+       }
+       int asset_xposition = asset_list->get_xposition();
+       int asset_yposition = asset_list->get_yposition();
+       if( displayed_folder != mwindow->edl->session->awindow_folder ) {
+               displayed_folder = mwindow->edl->session->awindow_folder;
+               asset_xposition = asset_yposition = 0;
+       }
        asset_list->update(displayed_assets, asset_titles,
                mwindow->edl->session->asset_columns, ASSET_COLUMNS,
-               asset_list->get_xposition(),
-               asset_list->get_yposition(),
-               -1, 0);
+               asset_xposition, asset_yposition, -1, 0);
        asset_list->center_selection();
 //printf("AWindowGUI::update_assets 7\n");
 
@@ -1440,21 +1441,18 @@ int AWindowDivider::button_release_event()
 
 
 AWindowFolders::AWindowFolders(MWindow *mwindow, AWindowGUI *gui, int x, int y, int w, int h)
- : BC_ListBox(x,
-               y,
-               w,
-               h,
+ : BC_ListBox(x, y, w, h,
                mwindow->edl->session->folderlist_format == ASSETS_ICONS ?
                        LISTBOX_ICONS : LISTBOX_TEXT,
-               &gui->folders, // Each column has an ArrayList of BC_ListBoxItems.
-               0,             // Titles for columns.  Set to 0 for no titles
+               &gui->folders,    // Each column has an ArrayList of BC_ListBoxItems.
+               0,                // Titles for columns.  Set to 0 for no titles
                0,                // width of each column
-               1,                      // Total columns.
-               0,                    // Pixel of top of window.
-               0,                        // If this listbox is a popup window
-               LISTBOX_SINGLE,  // Select one item or multiple items
-               ICON_TOP,        // Position of icon relative to text of each item
-               1)               // Allow drags
+               1,                // Total columns.
+               0,                // Pixel of top of window.
+               0,                // If this listbox is a popup window
+               LISTBOX_SINGLE,   // Select one item or multiple items
+               ICON_TOP,         // Position of icon relative to text of each item
+               1)                // Allow drags
 {
        this->mwindow = mwindow;
        this->gui = gui;
@@ -1515,18 +1513,19 @@ AWindowAssets::AWindowAssets(MWindow *mwindow, AWindowGUI *gui, int x, int y, in
                (mwindow->edl->session->assetlist_format == ASSETS_ICONS && gui->allow_iconlisting ) ?
                        LISTBOX_ICONS : LISTBOX_TEXT,
                &gui->assets,     // Each column has an ArrayList of BC_ListBoxItems.
-               gui->asset_titles,             // Titles for columns.  Set to 0 for no titles
-               mwindow->edl->session->asset_columns,                // width of each column
-               1,                      // Total columns.
-               0,                    // Pixel of top of window.
-               0,                        // If this listbox is a popup window
-               LISTBOX_MULTIPLE,  // Select one item or multiple items
-               ICON_TOP,        // Position of icon relative to text of each item
-               1)               // Allow drag
+               gui->asset_titles,// Titles for columns.  Set to 0 for no titles
+               mwindow->edl->session->asset_columns, // width of each column
+               1,                // Total columns.
+               0,                // Pixel of top of window.
+               0,                // If this listbox is a popup window
+               LISTBOX_MULTIPLE, // Select one item or multiple items
+               ICON_TOP,         // Position of icon relative to text of each item
+               1)                // Allow drag
 {
        this->mwindow = mwindow;
        this->gui = gui;
        set_drag_scroll(0);
+       set_scroll_stretch(1, 1);
 }
 
 AWindowAssets::~AWindowAssets()
@@ -1566,7 +1565,6 @@ int AWindowAssets::button_press_event()
                result = 1;
        }
 
-
        return result;
 }