add resource wdw folder expanders, fix plugin close deadlock detect
[goodguy/history.git] / cinelerra-5.1 / cinelerra / awindowgui.h
index c26d4e87dc2e809a124e7fc23c4040c58fc4b6ea..6cab2a6d2c45bd3b432c44b86e436e7b0a6f0c9c 100644 (file)
 #include "samples.inc"
 #include "vicon.h"
 
 #include "samples.inc"
 #include "vicon.h"
 
-class AssetPicon : public BC_ListBoxItem
+class AWindowFolderItem : public BC_ListBoxItem
+{
+public:
+       AWindowFolderItem();
+       AWindowFolderItem(const char *text, int color = -1);
+       AWindowFolderItem(const char *text, BC_Pixmap *icon, int color = -1);
+
+       AssetPicon *get_picon();
+       int matches(const char *text);
+
+       AWindowFolderItem *parent;
+};
+
+class AssetPicon : public AWindowFolderItem
 {
 public:
        AssetPicon(MWindow *mwindow, AWindowGUI *gui, Indexable *indexable);
 {
 public:
        AssetPicon(MWindow *mwindow, AWindowGUI *gui, Indexable *indexable);
@@ -76,6 +89,9 @@ public:
        VFrame *icon_vframe;
        VFrame *vicon_frame;
        int foldernum;
        VFrame *icon_vframe;
        VFrame *vicon_frame;
        int foldernum;
+// sublist items if set
+       AWindowFolderSubItems *sub_items;
+
 // ID of thing pointed to
        int id;
 
 // ID of thing pointed to
        int id;
 
@@ -344,6 +360,22 @@ public:
        AWindowGUI *gui;
 };
 
        AWindowGUI *gui;
 };
 
+class AWindowSubFolderNames : public ArrayList<const char *>
+{
+public:
+       AWindowSubFolderNames() { set_array_delete(); }
+       ~AWindowSubFolderNames() { remove_all_objects(); }
+};
+
+class AWindowFolderSubItems : public AWindowFolderItem
+{
+public:
+       AWindowFolderSubItems(AWindowFolderItem *parent, const char *text);
+       int matches(const char *text);
+
+       AWindowSubFolderNames names;
+};
+
 class AWindowFolders : public BC_ListBox
 {
 public:
 class AWindowFolders : public BC_ListBox
 {
 public:
@@ -353,9 +385,12 @@ public:
        int selection_changed();
        int button_press_event();
        int drag_stop();
        int selection_changed();
        int button_press_event();
        int drag_stop();
+       int load_expanders();
 
        MWindow *mwindow;
        AWindowGUI *gui;
 
        MWindow *mwindow;
        AWindowGUI *gui;
+// last selection
+       AWindowFolderItem *last_item0, *last_item1;
 };
 
 class AWindowSearchTextBox : public BC_TextBox
 };
 
 class AWindowSearchTextBox : public BC_TextBox