bsd lang segv fix, enable bsd lv2, lv2 gui enable fix, proxy/ffmpeg toggle resize...
[goodguy/history.git] / cinelerra-5.1 / cinelerra / assetpopup.h
index c070f124eb857fa4360f8c410070670df19e538a..0720d9d2b57d5143e546ed00121cbf5312fbaef1 100644 (file)
@@ -54,6 +54,7 @@ public:
        AssetPopupBuildIndex *index;
        AssetPopupView *view;
        AssetPopupViewWindow *view_window;
+       AssetPopupMixer *mixer;
        AWindowListFormat *format;
 };
 
@@ -70,11 +71,23 @@ public:
        AssetPopup *popup;
 };
 
-class AssetPopupSort : public BC_MenuItem
+class AssetPopupSortNames : public BC_MenuItem
 {
 public:
-       AssetPopupSort(MWindow *mwindow, AssetPopup *popup);
-       ~AssetPopupSort();
+       AssetPopupSortNames(MWindow *mwindow, AssetPopup *popup);
+       ~AssetPopupSortNames();
+
+       int handle_event();
+
+       MWindow *mwindow;
+       AssetPopup *popup;
+};
+
+class AssetPopupSortTimes : public BC_MenuItem
+{
+public:
+       AssetPopupSortTimes(MWindow *mwindow, AssetPopup *popup);
+       ~AssetPopupSortTimes();
 
        int handle_event();
 
@@ -120,6 +133,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,11 +221,27 @@ 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
@@ -240,6 +281,7 @@ public:
        ~AssetCopyWindow();
 
        void create_objects();
+       int resize_event(int w, int h);
 
        AssetCopyDialog *copy_dialog;
        BC_ScrollTextBox *file_list;
@@ -281,9 +323,104 @@ public:
        ~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