#include "mwindow.inc"
#include "mutex.inc"
#include "pluginserver.inc"
+#include "preferences.inc"
#include "proxypopup.inc"
#include "renderengine.inc"
#include "samples.inc"
// in percent view_h
#define VIEW_POPUP_BAR_H 15
-#define ASSET_DRAW_IMAGE 0
-#define ASSET_DRAW_MEDIA_MAP 1
+#define ASSET_VIEW_NONE 0
+#define ASSET_VIEW_ICON 1
+#define ASSET_VIEW_MEDIA 2
+#define ASSET_VIEW_MEDIA_MAP 3
+#define ASSET_VIEW_FULL 4
+
+#define AVICON_FULL_PLAY 0
+#define AVICON_MOUSE_OVER 1
+#define AVICON_SRC_TARGET 2
+#define AVICON_NO_PLAY 3
+#define AVICON_PLAY_MODES 4
class AWindowFolderItem : public BC_ListBoxItem
{
int in_use;
int persistent;
time_t comments_time;
+ int comments_ffmt;
+ double comments_rate;
+ const char *comments_type;
double sort_key;
PluginServer *plugin;
Label *label;
AssetPicon *picon;
VFrame *temp;
int64_t length;
+ int broken;
VFrame *frame();
int64_t set_seq_no(int64_t no);
{
public:
AssetViewPopup(VIconThread *vt, int draw_mode,
- VFrame *frame, int x, int y, int w, int h);
+ int x, int y, int w, int h);
~AssetViewPopup();
+ int reposition_window(int x, int y, int w, int h);
int button_press_event();
int button_release_event();
int cursor_motion_event();
+ int keypress_event();
void draw_vframe(VFrame *frame);
class AssetVIconThread : public VIconThread
{
public:
- AssetVIconThread(AWindowAssets *asset_list);
+ AssetVIconThread(AWindowGUI *gui, Preferences *preferences);
~AssetVIconThread();
- void set_view_popup(AssetVIcon *vicon, int draw_mode=-1);
- ViewPopup *new_view_window(VFrame *frame);
+ void set_view_popup(AssetVIcon *v, int draw_mode);
+ void set_view_popup(AssetVIcon *v);
+ ViewPopup *new_view_window(ViewPopup *popup);
+ void stop_vicon_drawing(int wait=0);
+ AWindowGUI *gui;
int draw_mode;
+ int vicon_cmodel;
};
int drag_stop();
// Collect items into the drag vectors of MainSession
void collect_assets(int proxy=0);
- EDL *collect_proxy(Indexable *indexable);
+ EDL *collect_proxy(Asset *asset);
void create_persistent_folder(ArrayList<BC_ListBoxItem*> *output,
int do_audio,
int do_video,
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();
+ int start_vicon_drawing();
+ int stop_vicon_drawing(int wait=0);
void update_picon(Indexable *indexable);
int cycle_assetlist_format();
+ void hide_tip_info();
VFrame *get_picon(const char *name, const char *plugin_icons);
VFrame *get_picon(const char *name);
AVIconDrawing *avicon_drawing;
int avicon_w, avicon_h;
- int vicon_drawing;
+ int vicon_drawing, play_off;
int allow_iconlisting;
+ int tip_info;
// Create custom atoms to be used for async messages between windows
int create_custom_xatoms();
int drag_stop_event();
int button_press_event();
int column_resize_event();
- int focus_in_event();
+ int cursor_enter_event();
+ int cursor_leave_event();
int focus_out_event();
void update_vicon_area();
int mouse_over_event(int no);
+ void show_tip_info(const char *info, int no);
+ void hide_tip_info();
MWindow *mwindow;
AWindowGUI *gui;
+ int info_tip;
};
class AWindowDivider : public BC_SubWindow
int idx;
};
-class AVIconDrawing : public BC_Toggle
+class AVIconDrawingItem : public BC_MenuItem
{
public:
- AWindowGUI *agui;
-
+ AVIconDrawingItem(AVIconDrawing *avicon, const char *text, int id);
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 *avicon;
+ int id;
+};
+
+class AVIconDrawing : public BC_PopupMenu
+{
+public:
+ AVIconDrawing(AWindowGUI *agui, int x, int y, int w, const char *text);
~AVIconDrawing();
+
+ static const char *avicon_names[];
+ void create_objects();
+ int button_press_event();
+ int draw_face(int dx, int color);
+
+ AWindowGUI *agui;
};