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 AssetPopupBuildIndex *index;
56 AssetPopupViewWindow *view_window;
57 AssetPopupOpenMixer *open_mixer;
58 AssetPopupInsertMixer *insert_mixer;
59 AWindowListFormat *format;
62 class AssetPopupInfo : public BC_MenuItem
65 AssetPopupInfo(MWindow *mwindow, AssetPopup *popup);
69 int button_press_event();
75 class AssetPopupSort : public BC_MenuItem
78 AssetPopupSort(MWindow *mwindow, AssetPopup *popup);
87 class AssetPopupBuildIndex : public BC_MenuItem
90 AssetPopupBuildIndex(MWindow *mwindow, AssetPopup *popup);
91 ~AssetPopupBuildIndex();
100 class AssetPopupView : public BC_MenuItem
103 AssetPopupView(MWindow *mwindow, AssetPopup *popup);
113 class AssetPopupViewWindow : public BC_MenuItem
116 AssetPopupViewWindow(MWindow *mwindow, AssetPopup *popup);
117 ~AssetPopupViewWindow();
125 class AssetPopupOpenMixer : public BC_MenuItem
128 AssetPopupOpenMixer(MWindow *mwindow, AssetPopup *popup);
129 ~AssetPopupOpenMixer();
137 class AssetPopupInsertMixer : public BC_MenuItem
140 AssetPopupInsertMixer(MWindow *mwindow, AssetPopup *popup);
141 ~AssetPopupInsertMixer();
149 class AssetPopupPaste : public BC_MenuItem
152 AssetPopupPaste(MWindow *mwindow, AssetPopup *popup);
161 class AssetMatchSize : public BC_MenuItem
164 AssetMatchSize(MWindow *mwindow, AssetPopup *popup);
172 class AssetMatchRate : public BC_MenuItem
175 AssetMatchRate(MWindow *mwindow, AssetPopup *popup);
183 class AssetMatchAll : public BC_MenuItem
186 AssetMatchAll(MWindow *mwindow, AssetPopup *popup);
194 class AssetPopupProjectRemove : public BC_MenuItem
197 AssetPopupProjectRemove(MWindow *mwindow, AssetPopup *popup);
198 ~AssetPopupProjectRemove();
206 class AssetPopupDiskRemove : public BC_MenuItem
209 AssetPopupDiskRemove(MWindow *mwindow, AssetPopup *popup);
210 ~AssetPopupDiskRemove();
218 class AssetListMenu : public BC_PopupMenu
221 AssetListMenu(MWindow *mwindow, AWindowGUI *gui);
224 void create_objects();
225 void update_titles(int shots);
229 AssetPopupLoadFile *load_file;
230 AWindowListFormat *format;
231 AssetSnapshot *asset_snapshot;
232 AssetGrabshot *asset_grabshot;
233 AssetSelectUsed *select_used;
237 class AssetPopupLoadFile : public BC_MenuItem
240 AssetPopupLoadFile(MWindow *mwindow, AWindowGUI *gui);
241 ~AssetPopupLoadFile();
249 class AssetListCopy : public BC_MenuItem
252 AssetListCopy(MWindow *mwindow, AWindowGUI *gui);
259 AssetCopyDialog *copy_dialog;
262 class AssetCopyDialog : public BC_DialogThread
265 AssetCopyDialog(AssetListCopy *copy);
268 void start(char *text, int x, int y);
269 BC_Window* new_gui();
270 void handle_done_event(int result);
271 void handle_close_event(int result);
276 AssetCopyWindow *copy_window;
279 class AssetCopyWindow : public BC_Window
282 AssetCopyWindow(AssetCopyDialog *copy_dialog);
285 void create_objects();
286 int resize_event(int w, int h);
288 AssetCopyDialog *copy_dialog;
289 BC_ScrollTextBox *file_list;
292 class AssetListPaste : public BC_MenuItem
295 AssetListPaste(MWindow *mwindow, AWindowGUI *gui);
302 AssetPasteDialog *paste_dialog;
305 class AssetPasteDialog : public BC_DialogThread
308 AssetPasteDialog(AssetListPaste *paste);
311 BC_Window* new_gui();
312 void handle_done_event(int result);
313 void handle_close_event(int result);
314 void start(int x, int y);
316 AssetListPaste *paste;
317 AssetPasteWindow *paste_window;
321 class AssetPasteWindow : public BC_Window
324 AssetPasteWindow(AssetPasteDialog *paste_dialog);
327 void create_objects();
328 int resize_event(int w, int h);
330 AssetPasteDialog *paste_dialog;
331 BC_ScrollTextBox *file_list;
334 class AssetSnapshot : public BC_MenuItem
337 AssetSnapshot(MWindow *mwindow, AssetListMenu *asset_list_menu);
341 AssetListMenu *asset_list_menu;
344 class SnapshotSubMenu : public BC_SubMenu
347 SnapshotSubMenu(AssetSnapshot *asset_snapshot);
350 AssetSnapshot *asset_snapshot;
353 class SnapshotMenuItem : public BC_MenuItem
356 SnapshotMenuItem(SnapshotSubMenu *submenu, const char *text, int mode);
360 SnapshotSubMenu *submenu;
365 class AssetGrabshot : public BC_MenuItem
368 AssetGrabshot(MWindow *mwindow, AssetListMenu *asset_list_menu);
372 AssetListMenu *asset_list_menu;
375 class GrabshotSubMenu : public BC_SubMenu
378 GrabshotSubMenu(AssetGrabshot *asset_grabshot);
381 AssetGrabshot *asset_grabshot;
384 class GrabshotMenuItem : public BC_MenuItem
387 GrabshotMenuItem(GrabshotSubMenu *submenu, const char *text, int mode);
391 GrabshotSubMenu *submenu;
393 GrabshotThread *grab_thread;
396 class GrabshotThread : public Thread
399 GrabshotThread(MWindow* mwindow);
403 GrabshotPopup *popup;
407 void start(GrabshotMenuItem *menu_item);
411 class GrabshotPopup : public BC_Popup
414 GrabshotPopup(GrabshotThread *grab_thread, int mode);
416 int grab_event(XEvent *event);
417 void draw_selection(int invert);
420 GrabshotThread *grab_thread;
425 int lx0, ly0, lx1, ly1;