4 * Copyright (C) 2008 Adam Williams <broadcast at earthling dot net>
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
25 #include "assetedit.inc"
26 #include "assetpopup.inc"
27 #include "awindowgui.inc"
31 #include "mwindow.inc"
35 class AssetPopup : public BC_PopupMenu
38 AssetPopup(MWindow *mwindow, AWindowGUI *gui);
41 void create_objects();
42 // Set mainsession with the current selections
54 AWindowListFormat *format;
55 AssetPopupOpenEDL *open_edl;
56 AssetPopupToClip *to_clip;
58 AssetPopupBuildIndex *index;
60 AssetPopupViewWindow *view_window;
61 AssetPopupOpenMixer *open_mixer;
62 AssetPopupInsertMixer *insert_mixer;
63 AssetPopupPaste *paste;
66 class AssetPopupInfo : public BC_MenuItem
69 AssetPopupInfo(MWindow *mwindow, AssetPopup *popup);
73 int button_press_event();
79 class AssetPopupOpenEDL : public BC_MenuItem
82 AssetPopupOpenEDL(MWindow *mwindow, AssetPopup *popup);
91 class AssetPopupToClip : public BC_MenuItem
94 AssetPopupToClip(MWindow *mwindow, AssetPopup *popup);
103 class AssetPopupSort : public BC_MenuItem
106 AssetPopupSort(MWindow *mwindow, AssetPopup *popup);
115 class AssetPopupBuildIndex : public BC_MenuItem
118 AssetPopupBuildIndex(MWindow *mwindow, AssetPopup *popup);
119 ~AssetPopupBuildIndex();
128 class AssetPopupView : public BC_MenuItem
131 AssetPopupView(MWindow *mwindow, AssetPopup *popup);
141 class AssetPopupViewWindow : public BC_MenuItem
144 AssetPopupViewWindow(MWindow *mwindow, AssetPopup *popup);
145 ~AssetPopupViewWindow();
153 class AssetPopupOpenMixer : public BC_MenuItem
156 AssetPopupOpenMixer(MWindow *mwindow, AssetPopup *popup);
157 ~AssetPopupOpenMixer();
165 class AssetPopupInsertMixer : public BC_MenuItem
168 AssetPopupInsertMixer(MWindow *mwindow, AssetPopup *popup);
169 ~AssetPopupInsertMixer();
177 class AssetPopupPaste : public BC_MenuItem
180 AssetPopupPaste(MWindow *mwindow, AssetPopup *popup);
189 class AssetMatchSize : public BC_MenuItem
192 AssetMatchSize(MWindow *mwindow, AssetPopup *popup);
200 class AssetMatchRate : public BC_MenuItem
203 AssetMatchRate(MWindow *mwindow, AssetPopup *popup);
211 class AssetMatchAll : public BC_MenuItem
214 AssetMatchAll(MWindow *mwindow, AssetPopup *popup);
222 class AssetPopupProjectRemove : public BC_MenuItem
225 AssetPopupProjectRemove(MWindow *mwindow, AssetPopup *popup);
226 ~AssetPopupProjectRemove();
234 class AssetPopupDiskRemove : public BC_MenuItem
237 AssetPopupDiskRemove(MWindow *mwindow, AssetPopup *popup);
238 ~AssetPopupDiskRemove();
246 class AssetListMenu : public BC_PopupMenu
249 AssetListMenu(MWindow *mwindow, AWindowGUI *gui);
252 void create_objects();
253 void update_titles(int shots);
257 AssetPopupLoadFile *load_file;
258 AWindowListFormat *format;
259 AssetSnapshot *asset_snapshot;
260 AssetGrabshot *asset_grabshot;
261 AssetSelectUsed *select_used;
265 class AssetPopupLoadFile : public BC_MenuItem
268 AssetPopupLoadFile(MWindow *mwindow, AWindowGUI *gui);
269 ~AssetPopupLoadFile();
277 class AssetListCopy : public BC_MenuItem
280 AssetListCopy(MWindow *mwindow, AWindowGUI *gui);
287 AssetCopyDialog *copy_dialog;
290 class AssetCopyDialog : public BC_DialogThread
293 AssetCopyDialog(AssetListCopy *copy);
296 void start(char *text, int x, int y);
297 BC_Window* new_gui();
298 void handle_done_event(int result);
299 void handle_close_event(int result);
304 AssetCopyWindow *copy_window;
307 class AssetCopyWindow : public BC_Window
310 AssetCopyWindow(AssetCopyDialog *copy_dialog);
313 void create_objects();
314 int resize_event(int w, int h);
316 AssetCopyDialog *copy_dialog;
317 BC_ScrollTextBox *file_list;
320 class AssetListPaste : public BC_MenuItem
323 AssetListPaste(MWindow *mwindow, AWindowGUI *gui);
330 AssetPasteDialog *paste_dialog;
333 class AssetPasteDialog : public BC_DialogThread
336 AssetPasteDialog(AssetListPaste *paste);
339 BC_Window* new_gui();
340 void handle_done_event(int result);
341 void handle_close_event(int result);
342 void start(int x, int y);
344 AssetListPaste *paste;
345 AssetPasteWindow *paste_window;
349 class AssetPasteWindow : public BC_Window
352 AssetPasteWindow(AssetPasteDialog *paste_dialog);
355 void create_objects();
356 int resize_event(int w, int h);
358 AssetPasteDialog *paste_dialog;
359 BC_ScrollTextBox *file_list;
362 class AssetSnapshot : public BC_MenuItem
365 AssetSnapshot(MWindow *mwindow, AssetListMenu *asset_list_menu);
369 AssetListMenu *asset_list_menu;
372 class SnapshotSubMenu : public BC_SubMenu
375 SnapshotSubMenu(AssetSnapshot *asset_snapshot);
378 AssetSnapshot *asset_snapshot;
381 class SnapshotMenuItem : public BC_MenuItem
384 SnapshotMenuItem(SnapshotSubMenu *submenu, const char *text, int mode);
388 SnapshotSubMenu *submenu;
393 class AssetGrabshot : public BC_MenuItem
396 AssetGrabshot(MWindow *mwindow, AssetListMenu *asset_list_menu);
400 AssetListMenu *asset_list_menu;
403 class GrabshotSubMenu : public BC_SubMenu
406 GrabshotSubMenu(AssetGrabshot *asset_grabshot);
409 AssetGrabshot *asset_grabshot;
412 class GrabshotMenuItem : public BC_MenuItem
415 GrabshotMenuItem(GrabshotSubMenu *submenu, const char *text, int mode);
419 GrabshotSubMenu *submenu;
421 GrabshotThread *grab_thread;
424 class GrabshotThread : public Thread
427 GrabshotThread(MWindow* mwindow);
431 GrabshotPopup *popup;
435 void start(GrabshotMenuItem *menu_item);
439 class GrabshotPopup : public BC_Popup
442 GrabshotPopup(GrabshotThread *grab_thread, int mode);
444 int grab_event(XEvent *event);
445 void draw_selection(int invert);
448 GrabshotThread *grab_thread;
453 int lx0, ly0, lx1, ly1;