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
26 #include "mwindow.inc"
27 #include "mwindowgui.inc"
29 #include "plugindialog.inc"
30 #include "resizetrackthread.inc"
33 class EditPopupMatchSize;
34 class EditPopupResize;
35 class EditPopupDeleteTrack;
36 class EditPopupAddTrack;
37 class EditPopupFindAsset;
38 class EditAttachEffect;
39 class EditMoveTrackUp;
40 class EditMoveTrackDown;
42 class EditTitleDialogThread;
43 class EditPopupTitleText;
44 class EditPopupTitleWindow;
46 class EditShowDialogThread;
47 class EditPopupShowText;
48 class EditPopupShowWindow;
50 class EditPopup : public BC_PopupMenu
53 EditPopup(MWindow *mwindow, MWindowGUI *gui);
56 void create_objects();
57 int update(Track *track, Edit *edit);
61 // Acquired through the update command as the edit currently being operated on
64 EditPopupResize *resize_option;
65 EditPopupMatchSize *matchsize_option;
68 class EditPopupMatchSize : public BC_MenuItem
71 EditPopupMatchSize(MWindow *mwindow, EditPopup *popup);
72 ~EditPopupMatchSize();
78 class EditPopupResize : public BC_MenuItem
81 EditPopupResize(MWindow *mwindow, EditPopup *popup);
86 ResizeTrackThread *dialog_thread;
89 class EditPopupDeleteTrack : public BC_MenuItem
92 EditPopupDeleteTrack(MWindow *mwindow, EditPopup *popup);
98 class EditPopupAddTrack : public BC_MenuItem
101 EditPopupAddTrack(MWindow *mwindow, EditPopup *popup);
107 class EditPopupFindAsset : public BC_MenuItem
110 EditPopupFindAsset(MWindow *mwindow, EditPopup *popup);
117 class EditAttachEffect : public BC_MenuItem
120 EditAttachEffect(MWindow *mwindow, EditPopup *popup);
127 PluginDialogThread *dialog_thread;
130 class EditMoveTrackUp : public BC_MenuItem
133 EditMoveTrackUp(MWindow *mwindow, EditPopup *popup);
142 class EditMoveTrackDown : public BC_MenuItem
145 EditMoveTrackDown(MWindow *mwindow, EditPopup *popup);
146 ~EditMoveTrackDown();
155 class EditPopupTitle : public BC_MenuItem
158 EditPopupTitle(MWindow *mwindow, EditPopup *popup);
165 EditTitleDialogThread *dialog_thread;
168 class EditTitleDialogThread : public BC_DialogThread
171 EditTitleDialogThread(EditPopupTitle *edit_title);
172 ~EditTitleDialogThread();
173 BC_Window* new_gui();
174 void start(int wx, int wy);
175 void handle_close_event(int result);
176 void handle_done_event(int result);
179 EditPopupTitle *edit_title;
180 EditPopupTitleWindow *window;
183 class EditPopupTitleText : public BC_TextBox
186 EditPopupTitleText(EditPopupTitleWindow *window,
187 MWindow *mwindow, int x, int y, const char *text);
188 ~EditPopupTitleText();
192 EditPopupTitleWindow *window;
195 class EditPopupTitleWindow : public BC_Window
198 EditPopupTitleWindow(MWindow *mwindow, EditPopup *popup, int wx, int wy);
199 ~EditPopupTitleWindow();
201 void create_objects();
202 void handle_close_event(int result);
204 EditPopupTitleText *title_text;
207 char new_text[BCTEXTLEN];
211 class EditPopupShow : public BC_MenuItem
214 EditPopupShow(MWindow *mwindow, EditPopup *popup);
221 EditShowDialogThread *dialog_thread;
224 class EditShowDialogThread : public BC_DialogThread
227 EditShowDialogThread(EditPopupShow *edit_show);
228 ~EditShowDialogThread();
229 BC_Window* new_gui();
230 void start(int wx, int wy);
231 void handle_close_event(int result);
234 EditPopupShow *edit_show;
235 EditPopupShowWindow *window;
238 class EditPopupShowText : public BC_TextBox
241 EditPopupShowText(EditPopupShowWindow *window,
242 MWindow *mwindow, int x, int y, const char *text);
243 ~EditPopupShowText();
245 EditPopupShowWindow *window;
249 class EditPopupShowWindow : public BC_Window
252 EditPopupShowWindow(MWindow *mwindow, EditPopup *popup, int wx, int wy);
253 ~EditPopupShowWindow();
255 void create_objects();
257 EditPopupShowText *show_text;