/*
* CINELERRA
* Copyright (C) 2008 Adam Williams <broadcast at earthling dot net>
- *
+ *
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
+ *
*/
#ifndef ASSETPOPUP_H
#define ASSETPOPUP_H
-class AssetPopupInfo;
-class AssetPopupBuildIndex;
-class AssetPopupView;
-class AssetPopupViewWindow;
-
#include "assetedit.inc"
+#include "assetpopup.inc"
#include "awindowgui.inc"
-#include "awindowmenu.inc"
#include "edl.inc"
#include "guicast.h"
#include "assets.inc"
AssetPopupBuildIndex *index;
AssetPopupView *view;
AssetPopupViewWindow *view_window;
- AssetListFormat *format;
+ AssetPopupMixer *mixer;
+ AWindowListFormat *format;
};
class AssetPopupInfo : public BC_MenuItem
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();
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:
AssetPopup *popup;
};
+class AssetListMenu : public BC_PopupMenu
+{
+public:
+ AssetListMenu(MWindow *mwindow, AWindowGUI *gui);
+ ~AssetListMenu();
+
+ void create_objects();
+ void update_titles(int shots);
+
+ MWindow *mwindow;
+ AWindowGUI *gui;
+ AWindowListFormat *format;
+ AssetSnapshot *asset_snapshot;
+ AssetGrabshot *asset_grabshot;
+ int shots_displayed;
+};
+
+class AssetListCopy : public BC_MenuItem
+{
+public:
+ AssetListCopy(MWindow *mwindow, AWindowGUI *gui);
+ ~AssetListCopy();
+
+ int handle_event();
+
+ MWindow *mwindow;
+ AWindowGUI *gui;
+ AssetCopyDialog *copy_dialog;
+};
+
+class AssetCopyDialog : public BC_DialogThread
+{
+public:
+ AssetCopyDialog(AssetListCopy *copy);
+ ~AssetCopyDialog();
+
+ 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;
+};
+
+class AssetCopyWindow : public BC_Window
+{
+public:
+ AssetCopyWindow(AssetCopyDialog *copy_dialog);
+ ~AssetCopyWindow();
+
+ void create_objects();
+ int resize_event(int w, int h);
+
+ AssetCopyDialog *copy_dialog;
+ BC_ScrollTextBox *file_list;
+};
+
+class AssetListPaste : public BC_MenuItem
+{
+public:
+ AssetListPaste(MWindow *mwindow, AWindowGUI *gui);
+ ~AssetListPaste();
+
+ int handle_event();
+
+ MWindow *mwindow;
+ AWindowGUI *gui;
+ AssetPasteDialog *paste_dialog;
+};
+
+class AssetPasteDialog : public BC_DialogThread
+{
+public:
+ AssetPasteDialog(AssetListPaste *paste);
+ ~AssetPasteDialog();
+
+ 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);
+ ~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