refresh frame fix, dblclk proxy viewer fix, vicon refresh fix for awdw resize, fix...
[goodguy/history.git] / cinelerra-5.1 / cinelerra / assetpopup.h
index e0611ecf8ba81d9c5d46b6a7d07388daec49f9c5..129cd335f0ff29e44c67db6098b4577512c90195 100644 (file)
@@ -54,6 +54,7 @@ public:
        AssetPopupBuildIndex *index;
        AssetPopupView *view;
        AssetPopupViewWindow *view_window;
+       AssetPopupMixer *mixer;
        AWindowListFormat *format;
 };
 
@@ -120,6 +121,18 @@ public:
        AssetPopup *popup;
 };
 
+class AssetPopupMixer : public BC_MenuItem
+{
+public:
+       AssetPopupMixer(MWindow *mwindow, AssetPopup *popup);
+       ~AssetPopupMixer();
+
+       int handle_event();
+
+       MWindow *mwindow;
+       AssetPopup *popup;
+};
+
 class AssetPopupPaste : public BC_MenuItem
 {
 public:
@@ -196,22 +209,39 @@ public:
        ~AssetListMenu();
 
        void create_objects();
-       void update_titles();
+       void update_titles(int shots);
 
        MWindow *mwindow;
        AWindowGUI *gui;
+       AssetPopupLoadFile *load_file;
        AWindowListFormat *format;
+       AssetSnapshot *asset_snapshot;
+       AssetGrabshot *asset_grabshot;
+       int shots_displayed;
+};
+
+class AssetPopupLoadFile : public BC_MenuItem
+{
+public:
+       AssetPopupLoadFile(MWindow *mwindow, AWindowGUI *gui);
+       ~AssetPopupLoadFile();
+
+       int handle_event();
+
+       MWindow *mwindow;
+       AWindowGUI *gui;
 };
 
 class AssetListCopy : public BC_MenuItem
 {
 public:
-       AssetListCopy(MWindow *mwindow);
+       AssetListCopy(MWindow *mwindow, AWindowGUI *gui);
        ~AssetListCopy();
 
        int handle_event();
 
        MWindow *mwindow;
+       AWindowGUI *gui;
        AssetCopyDialog *copy_dialog;
 };
 
@@ -221,12 +251,13 @@ public:
        AssetCopyDialog(AssetListCopy *copy);
        ~AssetCopyDialog();
 
-       void start(char *text);
+       void start(char *text, int x, int y);
        BC_Window* new_gui();
        void handle_done_event(int result);
        void handle_close_event(int result);
 
        char *text;
+       int x, y;
        AssetListCopy *copy;
        AssetCopyWindow *copy_window;
 };
@@ -234,10 +265,11 @@ public:
 class AssetCopyWindow : public BC_Window
 {
 public:
-       AssetCopyWindow(AssetCopyDialog *copy_dialog, int x, int y);
+       AssetCopyWindow(AssetCopyDialog *copy_dialog);
        ~AssetCopyWindow();
 
        void create_objects();
+       int resize_event(int w, int h);
 
        AssetCopyDialog *copy_dialog;
        BC_ScrollTextBox *file_list;
@@ -246,12 +278,13 @@ public:
 class AssetListPaste : public BC_MenuItem
 {
 public:
-       AssetListPaste(MWindow *mwindow);
+       AssetListPaste(MWindow *mwindow, AWindowGUI *gui);
        ~AssetListPaste();
 
        int handle_event();
 
        MWindow *mwindow;
+       AWindowGUI *gui;
        AssetPasteDialog *paste_dialog;
 };
 
@@ -264,21 +297,118 @@ public:
        BC_Window* new_gui();
        void handle_done_event(int result);
        void handle_close_event(int result);
+       void start(int x, int y);
 
        AssetListPaste *paste;
        AssetPasteWindow *paste_window;
+       int x, y;
 };
 
 class AssetPasteWindow : public BC_Window
 {
 public:
-       AssetPasteWindow(AssetPasteDialog *paste_dialog, int x, int y);
+       AssetPasteWindow(AssetPasteDialog *paste_dialog);
        ~AssetPasteWindow();
 
        void create_objects();
+       int resize_event(int w, int h);
 
        AssetPasteDialog *paste_dialog;
        BC_ScrollTextBox *file_list;
 };
 
+class AssetSnapshot : public BC_MenuItem
+{
+public:
+       AssetSnapshot(MWindow *mwindow, AssetListMenu *asset_list_menu);
+       ~AssetSnapshot();
+
+       MWindow *mwindow;
+       AssetListMenu *asset_list_menu;
+};
+
+class SnapshotSubMenu : public BC_SubMenu
+{
+public:
+       SnapshotSubMenu(AssetSnapshot *asset_snapshot);
+       ~SnapshotSubMenu();
+
+       AssetSnapshot *asset_snapshot;
+};
+
+class SnapshotMenuItem : public BC_MenuItem
+{
+public:
+       SnapshotMenuItem(SnapshotSubMenu *submenu, const char *text, int mode);
+       ~SnapshotMenuItem();
+
+       int handle_event();
+       SnapshotSubMenu *submenu;
+       int mode;
+};
+
+
+class AssetGrabshot : public BC_MenuItem
+{
+public:
+       AssetGrabshot(MWindow *mwindow, AssetListMenu *asset_list_menu);
+       ~AssetGrabshot();
+
+       MWindow *mwindow;
+       AssetListMenu *asset_list_menu;
+};
+
+class GrabshotSubMenu : public BC_SubMenu
+{
+public:
+       GrabshotSubMenu(AssetGrabshot *asset_grabshot);
+       ~GrabshotSubMenu();
+
+       AssetGrabshot *asset_grabshot;
+};
+
+class GrabshotMenuItem : public BC_MenuItem
+{
+public:
+       GrabshotMenuItem(GrabshotSubMenu *submenu, const char *text, int mode);
+       ~GrabshotMenuItem();
+
+       int handle_event();
+       GrabshotSubMenu *submenu;
+       int mode;
+       GrabshotThread *grab_thread;
+};
+
+class GrabshotThread : public Thread
+{
+public:
+       GrabshotThread(MWindow* mwindow);
+       ~GrabshotThread();
+
+       MWindow *mwindow;
+       GrabshotPopup *popup;
+       BC_Popup *edge[4];
+       int done;
+
+       void start(GrabshotMenuItem *menu_item);
+       void run();
+};
+
+class GrabshotPopup : public BC_Popup
+{
+public:
+       GrabshotPopup(GrabshotThread *grab_thread, int mode);
+       ~GrabshotPopup();
+       int grab_event(XEvent *event);
+       void draw_selection(int invert);
+       void update();
+
+       GrabshotThread *grab_thread;
+       int mode;
+       int dragging;
+       int grab_color;
+       int x0, y0, x1, y1;
+       int lx0, ly0, lx1, ly1;
+};
+
 #endif