fix segv for plugin render_gui when plugin moved up/dn, opencv build fixes, opts...
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / clippopup.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 CLIPPOPUP_H
23 #define CLIPPOPUP_H
24
25 #include "assetedit.inc"
26 #include "awindowgui.inc"
27 #include "clippopup.inc"
28 #include "edl.inc"
29 #include "guicast.h"
30 #include "assets.inc"
31 #include "mwindow.inc"
32
33
34
35 class ClipPopup : public BC_PopupMenu
36 {
37 public:
38         ClipPopup(MWindow *mwindow, AWindowGUI *gui);
39         ~ClipPopup();
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         ClipPopupInfo *info;
54         ClipPopupView *view;
55         ClipPopupViewWindow *view_window;
56         AWindowListFormat *format;
57 };
58
59 class ClipPopupInfo : public BC_MenuItem
60 {
61 public:
62         ClipPopupInfo(MWindow *mwindow, ClipPopup *popup);
63         ~ClipPopupInfo();
64
65         int handle_event();
66         int button_press_event();
67
68         MWindow *mwindow;
69         ClipPopup *popup;
70 };
71
72 class ClipPopupSort : public BC_MenuItem
73 {
74 public:
75         ClipPopupSort(MWindow *mwindow, ClipPopup *popup);
76         ~ClipPopupSort();
77
78         int handle_event();
79
80         MWindow *mwindow;
81         ClipPopup *popup;
82 };
83
84 class ClipPopupView : public BC_MenuItem
85 {
86 public:
87         ClipPopupView(MWindow *mwindow, ClipPopup *popup);
88         ~ClipPopupView();
89
90         int handle_event();
91
92         MWindow *mwindow;
93         ClipPopup *popup;
94 };
95
96
97 class ClipPopupViewWindow : public BC_MenuItem
98 {
99 public:
100         ClipPopupViewWindow(MWindow *mwindow, ClipPopup *popup);
101         ~ClipPopupViewWindow();
102
103         int handle_event();
104
105         MWindow *mwindow;
106         ClipPopup *popup;
107 };
108
109 class ClipPopupCopy : public BC_MenuItem
110 {
111 public:
112         ClipPopupCopy(MWindow *mwindow, ClipPopup *popup);
113         ~ClipPopupCopy();
114
115         int handle_event();
116
117         MWindow *mwindow;
118         ClipPopup *popup;
119 };
120
121 class ClipPopupPaste : public BC_MenuItem
122 {
123 public:
124         ClipPopupPaste(MWindow *mwindow, ClipPopup *popup);
125         ~ClipPopupPaste();
126
127         int handle_event();
128
129         MWindow *mwindow;
130         ClipPopup *popup;
131 };
132
133 class ClipMatchSize : public BC_MenuItem
134 {
135 public:
136         ClipMatchSize(MWindow *mwindow, ClipPopup *popup);
137
138         int handle_event();
139
140         MWindow *mwindow;
141         ClipPopup *popup;
142 };
143
144 class ClipMatchRate : public BC_MenuItem
145 {
146 public:
147         ClipMatchRate(MWindow *mwindow, ClipPopup *popup);
148
149         int handle_event();
150
151         MWindow *mwindow;
152         ClipPopup *popup;
153 };
154
155 class ClipMatchAll : public BC_MenuItem
156 {
157 public:
158         ClipMatchAll(MWindow *mwindow, ClipPopup *popup);
159
160         int handle_event();
161
162         MWindow *mwindow;
163         ClipPopup *popup;
164 };
165
166 class ClipPopupDelete : public BC_MenuItem
167 {
168 public:
169         ClipPopupDelete(MWindow *mwindow, ClipPopup *popup);
170         ~ClipPopupDelete();
171
172         int handle_event();
173
174         MWindow *mwindow;
175         ClipPopup *popup;
176 };
177
178
179 class ClipPasteToFolder : public BC_MenuItem
180 {
181 public:
182         ClipPasteToFolder(MWindow *mwindow);
183
184         int handle_event();
185         MWindow *mwindow;
186 };
187
188 class ClipListFormat : public BC_MenuItem
189 {
190 public:
191         ClipListFormat(MWindow *mwindow, ClipListMenu *menu);
192
193         int handle_event();
194         MWindow *mwindow;
195         ClipListMenu *menu;
196 };
197
198 class ClipListMenu : public BC_PopupMenu
199 {
200 public:
201         ClipListMenu(MWindow *mwindow, AWindowGUI *gui);
202         ~ClipListMenu();
203
204         void create_objects();
205         void update();
206         AWindowListFormat *format;
207         MWindow *mwindow;
208         AWindowGUI *gui;
209 };
210
211 class ClipPopupNest : public BC_MenuItem
212 {
213 public:
214         ClipPopupNest(MWindow *mwindow, ClipPopup *popup);
215         ~ClipPopupNest();
216
217         int handle_event();
218
219         MWindow *mwindow;
220         ClipPopup *popup;
221 };
222
223 class ClipPopupUnNest : public BC_MenuItem
224 {
225 public:
226         ClipPopupUnNest(MWindow *mwindow, ClipPopup *popup);
227         ~ClipPopupUnNest();
228
229         int handle_event();
230
231         MWindow *mwindow;
232         ClipPopup *popup;
233 };
234
235 #endif