add resource wdw folder expanders, fix plugin close deadlock detect
[goodguy/history.git] / cinelerra-5.1 / cinelerra / awindowgui.h
index f768b586758138eada265f6786d94915b3cd1bac..6cab2a6d2c45bd3b432c44b86e436e7b0a6f0c9c 100644 (file)
 #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);
@@ -68,12 +81,17 @@ public:
        void close_render_engine();
        void render_video(int64_t pos, VFrame *vfrm);
        void render_audio(int64_t pos, Samples **samples, int len);
+       VFrame *get_vicon_frame();
 
        MWindow *mwindow;
        AWindowGUI *gui;
        BC_Pixmap *icon;
        VFrame *icon_vframe;
+       VFrame *vicon_frame;
        int foldernum;
+// sublist items if set
+       AWindowFolderSubItems *sub_items;
+
 // ID of thing pointed to
        int id;
 
@@ -319,6 +337,10 @@ public:
        int column_resize_event();
        int focus_in_event();
        int focus_out_event();
+       int cursor_enter_event();
+       int cursor_leave_event();
+       void update_vicon_area();
+       int mouse_over_event(int no);
 
        MWindow *mwindow;
        AWindowGUI *gui;
@@ -338,6 +360,22 @@ public:
        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:
@@ -347,9 +385,12 @@ public:
        int selection_changed();
        int button_press_event();
        int drag_stop();
+       int load_expanders();
 
        MWindow *mwindow;
        AWindowGUI *gui;
+// last selection
+       AWindowFolderItem *last_item0, *last_item1;
 };
 
 class AWindowSearchTextBox : public BC_TextBox