#include "mwindow.inc"
#include "newfolder.inc"
#include "pluginserver.inc"
+#include "vicon.h"
class AWindowAssets;
class AWindowFolders;
class AddTools;
class AddPluginsMenu;
class AddPluginItem;
+class AVIconDrawing;
+class AssetPicon;
+class AssetVIcon;
class AWindowGUI;
class AssetPicon : public BC_ListBoxItem
int persistent;
PluginServer *plugin;
+ VIcon *vicon;
+};
+
+class AssetVIcon : public VIcon {
+public:
+ AssetPicon *picon;
+ int64_t length;
+
+ VFrame *frame();
+ int64_t next_frame(int n);
+ int get_vx();
+ int get_vy();
+
+ AssetVIcon(AssetPicon *picon, int w, int h, double framerate, int64_t length);
+ ~AssetVIcon();
};
class AWindowRemovePlugin;
PluginServer* selected_plugin();
AssetPicon* selected_folder();
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;
AWindowAssets *asset_list;
AWindowFolders *folder_list;
AWindowDivider *divider;
- uint32_t plugin_visibility;
// Store data to speed up responses
// Persistant data for listboxes
const char *asset_titles[ASSET_COLUMNS];
+ BC_Hash *defaults;
// Persistent icons
BC_Pixmap *folder_icon;
BC_Pixmap *file_icon;
BC_Pixmap *vtransition_icon; VFrame *vtransition_vframe;
BC_Pixmap *aeffect_icon; VFrame *aeffect_vframe;
BC_Pixmap *ladspa_icon; VFrame *ladspa_vframe;
+ BC_Pixmap *ff_aud_icon; VFrame *ff_aud_vframe;
+ BC_Pixmap *ff_vid_icon; VFrame *ff_vid_vframe;
BC_Pixmap *veffect_icon; VFrame *veffect_vframe;
NewFolderThread *newfolder_thread;
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();
int drag_stop_event();
int button_press_event();
int column_resize_event();
+ int cursor_enter_event();
+ int cursor_leave_event();
MWindow *mwindow;
AWindowGUI *gui;
int idx;
};
+class AVIconDrawing : public BC_Toggle
+{
+public:
+ AWindowGUI *agui;
+
+ int handle_event();
+ static void calculate_geometry(AWindowGUI *agui, VFrame **images, int *ww, int *hh);
+
+ AVIconDrawing(AWindowGUI *agui, int x, int y, VFrame **images);
+ ~AVIconDrawing();
+};
+
#endif