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
22 #ifndef TRANSITIONPOPUP_H
23 #define TRANSITIONPOPUP_H
27 #include "mwindowgui.inc"
29 #include "transition.inc"
30 #include "transitionpopup.inc"
32 class TransitionPopupOn;
33 class TransitionPopupShow;
34 class TransitionPopupAttach;
35 class TransitionPopupDetach;
36 class TransitionPopupLength;
37 class TransitionLengthText;
39 class TransitionLengthThread : public BC_DialogThread
42 TransitionLengthThread(MWindow *mwindow);
43 ~TransitionLengthThread();
45 void start(Transition *transition,
48 void handle_close_event(int result);
52 Transition *transition;
58 class TransitionLengthDialog : public BC_Window
61 TransitionLengthDialog(MWindow *mwindow,
62 TransitionLengthThread *thread,
65 ~TransitionLengthDialog();
67 void create_objects();
71 TransitionLengthThread *thread;
72 TransitionLengthText *text;
76 class TransitionLengthText : public BC_TumbleTextBox
79 TransitionLengthText(MWindow *mwindow,
80 TransitionLengthDialog *gui,
85 TransitionLengthDialog *gui;
89 class TransitionPopup : public BC_PopupMenu
92 TransitionPopup(MWindow *mwindow, MWindowGUI *gui);
95 void create_objects();
96 int update(Transition *transition);
98 // Acquired through the update command as the plugin currently being operated on
99 // Can't be dereferenced.
100 Transition *transition;
103 // Set when the user clicks a transition.
107 // Needed for loading updates
108 TransitionPopupOn *on;
109 TransitionPopupShow *show;
110 TransitionPopupAttach *attach;
111 TransitionPopupDetach *detach;
112 TransitionPopupLength *length_item;
113 TransitionLengthThread *length_thread;
117 class TransitionPopupAttach : public BC_MenuItem
120 TransitionPopupAttach(MWindow *mwindow, TransitionPopup *popup);
121 ~TransitionPopupAttach();
125 TransitionPopup *popup;
128 class TransitionPopupDetach : public BC_MenuItem
131 TransitionPopupDetach(MWindow *mwindow, TransitionPopup *popup);
132 ~TransitionPopupDetach();
136 TransitionPopup *popup;
139 class TransitionPopupShow : public BC_MenuItem
142 TransitionPopupShow(MWindow *mwindow, TransitionPopup *popup);
143 ~TransitionPopupShow();
147 TransitionPopup *popup;
150 class TransitionPopupOn : public BC_MenuItem
153 TransitionPopupOn(MWindow *mwindow, TransitionPopup *popup);
154 ~TransitionPopupOn();
158 TransitionPopup *popup;
161 class TransitionPopupLength : public BC_MenuItem
164 TransitionPopupLength(MWindow *mwindow, TransitionPopup *popup);
165 ~TransitionPopupLength();
169 TransitionPopup *popup;