X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fawindowgui.h;h=6ba8d504cab7fa8e473e227dbfd0947be5791a54;hp=99db0753ceaa9e0f7eec56c016a9c73e68b574d3;hb=52bb84537e880ea41a6cca9f69bf8d7a8b5cc30f;hpb=debf38f78ae5ce154f54183b1638278bf8a24736 diff --git a/cinelerra-5.1/cinelerra/awindowgui.h b/cinelerra-5.1/cinelerra/awindowgui.h index 99db0753..6ba8d504 100644 --- a/cinelerra-5.1/cinelerra/awindowgui.h +++ b/cinelerra-5.1/cinelerra/awindowgui.h @@ -44,6 +44,7 @@ #include "mwindow.inc" #include "mutex.inc" #include "pluginserver.inc" +#include "preferences.inc" #include "proxypopup.inc" #include "renderengine.inc" #include "samples.inc" @@ -57,8 +58,17 @@ // 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 { @@ -121,6 +131,9 @@ public: 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; @@ -169,12 +182,14 @@ class AssetViewPopup : public ViewPopup { 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); @@ -186,13 +201,20 @@ public: 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 drawing_started(); + void drawing_stopped(); + void close_view_popup(); + AWindowGUI *gui; int draw_mode; + int vicon_cmodel; + Mutex *draw_lock; }; @@ -264,10 +286,12 @@ 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(); + int start_vicon_drawing(); + int stop_vicon_drawing(); + void close_view_popup(); 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); @@ -349,8 +373,9 @@ public: 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(); @@ -383,13 +408,17 @@ public: 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 @@ -558,16 +587,28 @@ public: 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; };