akirad fixups for splash, folders, icons
[goodguy/history.git] / cinelerra-5.0 / cinelerra / awindowgui.h
index 8958fbf7dd19698fd7ad84836415f4bd5bf088d2..e3486658adc53717a406cfdf331ebac52f71c8ab 100644 (file)
@@ -35,6 +35,7 @@
 #include "mwindow.inc"
 #include "newfolder.inc"
 #include "pluginserver.inc"
+#include "vicon.h"
 
 class AWindowAssets;
 class AWindowFolders;
@@ -52,7 +53,10 @@ class AWindowView;
 class AddTools;
 class AddPluginsMenu;
 class AddPluginItem;
+class AVIconDrawing;
 
+class AssetPicon;
+class AssetVIcon;
 class AWindowGUI;
 
 class AssetPicon : public BC_ListBoxItem
@@ -85,6 +89,22 @@ public:
 
        int persistent;
        PluginServer *plugin;
+       VIcon *vicon;
+};
+
+class AssetVIcon : public VIcon {
+public:
+       AssetPicon *picon;
+       VFrame *temp;
+       int64_t length;
+
+       VFrame *frame();
+       int64_t set_seq_no(int64_t no);
+       int get_vx();
+       int get_vy();
+
+       AssetVIcon(AssetPicon *picon, int w, int h, double framerate, int64_t length);
+       ~AssetVIcon();
 };
 
 class AWindowRemovePlugin;
@@ -156,6 +176,8 @@ public:
        bool protected_pixmap(BC_Pixmap *pixmap);
        int save_defaults(BC_Hash *defaults);
        int load_defaults(BC_Hash *defaults);
+       void start_vicon_drawing();
+       void stop_vicon_drawing();
 
        MWindow *mwindow;
        AWindow *awindow;
@@ -203,9 +225,13 @@ public:
        AddTools *add_tools;
 // Temporary for reading picons from files
        VFrame *temp_picon;
+       VIconThread *vicon_thread;
 
        int64_t plugin_visibility;
        AWindowRemovePlugin *remove_plugin;
+
+       AVIconDrawing *avicon_drawing;
+       int avicon_w, avicon_h, vicon_drawing;
 private:
        void update_folder_list();
        void update_asset_list();
@@ -226,6 +252,8 @@ public:
        int drag_stop_event();
        int button_press_event();
        int column_resize_event();
+       int cursor_enter_event();
+       int cursor_leave_event();
 
        MWindow *mwindow;
        AWindowGUI *gui;
@@ -358,10 +386,10 @@ public:
        int x, y;
 };
 
-class AddTools : public BC_MenuBar
+class AddTools : public BC_PopupMenu
 {
 public:
-       AddTools(MWindow *mwindow, AWindowGUI *gui, int x, int y, int w);
+       AddTools(MWindow *mwindow, AWindowGUI *gui, int x, int y, const char *title);
        void create_objects();
 
        MWindow *mwindow;
@@ -369,24 +397,26 @@ public:
        AddPluginsMenu *add_plugins;
 };
 
-class AddPluginsMenu : public BC_Menu
+class AddPluginItem : public BC_MenuItem
 {
 public:
-       AddPluginsMenu(MWindow *mwindow, AWindowGUI *gui);
-       void create_objects();
+       AddPluginItem(AddTools *menu, const char *text, int idx);
+       int handle_event();
 
-       MWindow *mwindow;
-       AWindowGUI *gui;
+       AddTools *menu;
+       int idx;
 };
 
-class AddPluginItem : public BC_MenuItem
+class AVIconDrawing : public BC_Toggle
 {
 public:
-       AddPluginItem(AddPluginsMenu *menu, const char *text, int idx);
+       AWindowGUI *agui;
+
        int handle_event();
+       static void calculate_geometry(AWindowGUI *agui, VFrame **images, int *ww, int *hh);
 
-       AddPluginsMenu *menu;
-       int idx;
+       AVIconDrawing(AWindowGUI *agui, int x, int y, VFrame **images);
+       ~AVIconDrawing();
 };
 
 #endif