d6c3136e5a3c9e873ba85115b2f02c2f23081cf8
[goodguy/history.git] / cinelerra-5.1 / cinelerra / assetpopup.h
1
2 /*
3  * CINELERRA
4  * Copyright (C) 2008 Adam Williams <broadcast at earthling dot net>
5  *
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.
10  *
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.
15  *
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
19  *
20  */
21
22 #ifndef ASSETPOPUP_H
23 #define ASSETPOPUP_H
24
25 #include "assetedit.inc"
26 #include "assetpopup.inc"
27 #include "awindowgui.inc"
28 #include "edl.inc"
29 #include "guicast.h"
30 #include "assets.inc"
31 #include "mwindow.inc"
32
33
34
35 class AssetPopup : public BC_PopupMenu
36 {
37 public:
38         AssetPopup(MWindow *mwindow, AWindowGUI *gui);
39         ~AssetPopup();
40
41         void create_objects();
42 // Set mainsession with the current selections
43         int update();
44         void paste_assets();
45         void match_size();
46         void match_rate();
47         void match_all();
48
49         MWindow *mwindow;
50         AWindowGUI *gui;
51
52
53         AssetPopupInfo *info;
54         AssetPopupBuildIndex *index;
55         AssetPopupView *view;
56         AssetPopupViewWindow *view_window;
57         AWindowListFormat *format;
58 };
59
60 class AssetPopupInfo : public BC_MenuItem
61 {
62 public:
63         AssetPopupInfo(MWindow *mwindow, AssetPopup *popup);
64         ~AssetPopupInfo();
65
66         int handle_event();
67         int button_press_event();
68
69         MWindow *mwindow;
70         AssetPopup *popup;
71 };
72
73 class AssetPopupSort : public BC_MenuItem
74 {
75 public:
76         AssetPopupSort(MWindow *mwindow, AssetPopup *popup);
77         ~AssetPopupSort();
78
79         int handle_event();
80
81         MWindow *mwindow;
82         AssetPopup *popup;
83 };
84
85 class AssetPopupBuildIndex : public BC_MenuItem
86 {
87 public:
88         AssetPopupBuildIndex(MWindow *mwindow, AssetPopup *popup);
89         ~AssetPopupBuildIndex();
90
91         int handle_event();
92
93         MWindow *mwindow;
94         AssetPopup *popup;
95 };
96
97
98 class AssetPopupView : public BC_MenuItem
99 {
100 public:
101         AssetPopupView(MWindow *mwindow, AssetPopup *popup);
102         ~AssetPopupView();
103
104         int handle_event();
105
106         MWindow *mwindow;
107         AssetPopup *popup;
108 };
109
110
111 class AssetPopupViewWindow : public BC_MenuItem
112 {
113 public:
114         AssetPopupViewWindow(MWindow *mwindow, AssetPopup *popup);
115         ~AssetPopupViewWindow();
116
117         int handle_event();
118
119         MWindow *mwindow;
120         AssetPopup *popup;
121 };
122
123 class AssetPopupPaste : public BC_MenuItem
124 {
125 public:
126         AssetPopupPaste(MWindow *mwindow, AssetPopup *popup);
127         ~AssetPopupPaste();
128
129         int handle_event();
130
131         MWindow *mwindow;
132         AssetPopup *popup;
133 };
134
135 class AssetMatchSize : public BC_MenuItem
136 {
137 public:
138         AssetMatchSize(MWindow *mwindow, AssetPopup *popup);
139
140         int handle_event();
141
142         MWindow *mwindow;
143         AssetPopup *popup;
144 };
145
146 class AssetMatchRate : public BC_MenuItem
147 {
148 public:
149         AssetMatchRate(MWindow *mwindow, AssetPopup *popup);
150
151         int handle_event();
152
153         MWindow *mwindow;
154         AssetPopup *popup;
155 };
156
157 class AssetMatchAll : public BC_MenuItem
158 {
159 public:
160         AssetMatchAll(MWindow *mwindow, AssetPopup *popup);
161
162         int handle_event();
163
164         MWindow *mwindow;
165         AssetPopup *popup;
166 };
167
168 class AssetPopupProjectRemove : public BC_MenuItem
169 {
170 public:
171         AssetPopupProjectRemove(MWindow *mwindow, AssetPopup *popup);
172         ~AssetPopupProjectRemove();
173
174         int handle_event();
175
176         MWindow *mwindow;
177         AssetPopup *popup;
178 };
179
180 class AssetPopupDiskRemove : public BC_MenuItem
181 {
182 public:
183         AssetPopupDiskRemove(MWindow *mwindow, AssetPopup *popup);
184         ~AssetPopupDiskRemove();
185
186         int handle_event();
187
188         MWindow *mwindow;
189         AssetPopup *popup;
190 };
191
192 class AssetListMenu : public BC_PopupMenu
193 {
194 public:
195         AssetListMenu(MWindow *mwindow, AWindowGUI *gui);
196         ~AssetListMenu();
197
198         void create_objects();
199         void update_titles();
200
201         MWindow *mwindow;
202         AWindowGUI *gui;
203         AWindowListFormat *format;
204 };
205
206 class AssetListCopy : public BC_MenuItem
207 {
208 public:
209         AssetListCopy(MWindow *mwindow, AWindowGUI *gui);
210         ~AssetListCopy();
211
212         int handle_event();
213
214         MWindow *mwindow;
215         AWindowGUI *gui;
216         AssetCopyDialog *copy_dialog;
217 };
218
219 class AssetCopyDialog : public BC_DialogThread
220 {
221 public:
222         AssetCopyDialog(AssetListCopy *copy);
223         ~AssetCopyDialog();
224
225         void start(char *text, int x, int y);
226         BC_Window* new_gui();
227         void handle_done_event(int result);
228         void handle_close_event(int result);
229
230         char *text;
231         int x, y;
232         AssetListCopy *copy;
233         AssetCopyWindow *copy_window;
234 };
235
236 class AssetCopyWindow : public BC_Window
237 {
238 public:
239         AssetCopyWindow(AssetCopyDialog *copy_dialog);
240         ~AssetCopyWindow();
241
242         void create_objects();
243         int resize_event(int w, int h);
244
245         AssetCopyDialog *copy_dialog;
246         BC_ScrollTextBox *file_list;
247 };
248
249 class AssetListPaste : public BC_MenuItem
250 {
251 public:
252         AssetListPaste(MWindow *mwindow, AWindowGUI *gui);
253         ~AssetListPaste();
254
255         int handle_event();
256
257         MWindow *mwindow;
258         AWindowGUI *gui;
259         AssetPasteDialog *paste_dialog;
260 };
261
262 class AssetPasteDialog : public BC_DialogThread
263 {
264 public:
265         AssetPasteDialog(AssetListPaste *paste);
266         ~AssetPasteDialog();
267
268         BC_Window* new_gui();
269         void handle_done_event(int result);
270         void handle_close_event(int result);
271         void start(int x, int y);
272
273         AssetListPaste *paste;
274         AssetPasteWindow *paste_window;
275         int x, y;
276 };
277
278 class AssetPasteWindow : public BC_Window
279 {
280 public:
281         AssetPasteWindow(AssetPasteDialog *paste_dialog);
282         ~AssetPasteWindow();
283
284         void create_objects();
285         int resize_event(int w, int h);
286
287         AssetPasteDialog *paste_dialog;
288         BC_ScrollTextBox *file_list;
289 };
290
291 #endif