r1006: configure: Use libx264_pic instead of libx264 if available.
[cinelerra_cv/mob.git] / cinelerra / plugindialog.h
bloba5223f57afea32ec77f1ec222b1e102ffc8865ca
1 #ifndef PLUGINDIALOG_H
2 #define PLUGINDIALOG_H
4 class PluginDialogTextBox;
5 class PluginDialogDetach;
6 class PluginDialogNew;
7 class PluginDialogShared;
8 class PluginDialogModules;
9 class PluginDialogAttachNew;
10 class PluginDialogAttachShared;
11 class PluginDialogAttachModule;
12 class PluginDialogChangeNew;
13 class PluginDialogChangeShared;
14 class PluginDialogChangeModule;
15 class PluginDialogIn;
16 class PluginDialogOut;
17 class PluginDialogThru;
18 class PluginDialog;
20 #include "condition.inc"
21 #include "guicast.h"
22 #include "mutex.inc"
23 #include "mwindow.inc"
24 #include "plugin.inc"
25 #include "sharedlocation.h"
26 #include "thread.h"
27 #include "transition.inc"
29 class PluginDialogThread : public Thread
31 public:
32 PluginDialogThread(MWindow *mwindow);
33 ~PluginDialogThread();
35 // Set up parameters for a transition menu.
36 void start_window(Track *track,
37 Plugin *plugin,
38 char *title);
39 int set_dialog(Transition *transition, char *title);
40 void run();
44 MWindow *mwindow;
45 Track *track;
46 int data_type;
47 Transition *transition;
48 PluginDialog *window;
49 // Plugin being modified if there is one
50 Plugin *plugin;
51 Condition *completion;
52 Mutex *window_lock;
53 char window_title[BCTEXTLEN];
56 // type of attached plugin
57 int plugin_type; // 0: none 1: plugin 2: shared plugin 3: module
59 // location of attached plugin if shared
60 SharedLocation shared_location;
62 // Title of attached plugin if new
63 char plugin_title[BCTEXTLEN];
66 class PluginDialog : public BC_Window
68 public:
69 PluginDialog(MWindow *mwindow,
70 PluginDialogThread *thread,
71 char *title,
72 int x,
73 int y);
74 ~PluginDialog();
76 int create_objects();
78 int attach_new(int number);
79 int attach_shared(int number);
80 int attach_module(int number);
81 int save_settings();
82 int resize_event(int w, int h);
84 BC_Title *standalone_title;
85 PluginDialogNew *standalone_list;
86 BC_Title *shared_title;
87 PluginDialogShared *shared_list;
88 BC_Title *module_title;
89 PluginDialogModules *module_list;
93 * PluginDialogAttachNew *standalone_attach;
94 * PluginDialogAttachShared *shared_attach;
95 * PluginDialogAttachModule *module_attach;
97 * PluginDialogChangeNew *standalone_change;
98 * PluginDialogChangeShared *shared_change;
99 * PluginDialogChangeModule *module_change;
102 PluginDialogThru *thru;
104 PluginDialogThread *thread;
106 ArrayList<BC_ListBoxItem*> standalone_data;
107 ArrayList<BC_ListBoxItem*> shared_data;
108 ArrayList<BC_ListBoxItem*> module_data;
109 ArrayList<SharedLocation*> plugin_locations; // locations of all shared plugins
110 ArrayList<SharedLocation*> module_locations; // locations of all shared modules
111 ArrayList<PluginServer*> plugindb; // locations of all simple plugins, no need for memory freeing!
113 int selected_available;
114 int selected_shared;
115 int selected_modules;
117 int inoutthru; // flag for button slide
118 int new_value; // value for button slide
119 MWindow *mwindow;
124 * class PluginDialogTextBox : public BC_TextBox
126 * public:
127 * PluginDialogTextBox(PluginDialog *dialog, char *text, int x, int y);
128 * ~PluginDialogTextBox();
130 * int handle_event();
131 * PluginDialog *dialog;
132 * };
136 * class PluginDialogDetach : public BC_GenericButton
138 * public:
139 * PluginDialogDetach(MWindow *mwindow, PluginDialog *dialog, int x, int y);
140 * ~PluginDialogDetach();
142 * int handle_event();
143 * PluginDialog *dialog;
144 * };
148 * class PluginDialogAttachNew : public BC_GenericButton
150 * public:
151 * PluginDialogAttachNew(MWindow *mwindow, PluginDialog *dialog, int x, int y);
152 * ~PluginDialogAttachNew();
154 * int handle_event();
155 * PluginDialog *dialog;
156 * };
158 * class PluginDialogChangeNew : public BC_GenericButton
160 * public:
161 * PluginDialogChangeNew(MWindow *mwindow, PluginDialog *dialog, int x, int y);
162 * ~PluginDialogChangeNew();
164 * int handle_event();
165 * PluginDialog *dialog;
166 * };
170 class PluginDialogNew : public BC_ListBox
172 public:
173 PluginDialogNew(PluginDialog *dialog,
174 ArrayList<BC_ListBoxItem*> *standalone_data,
175 int x,
176 int y,
177 int w,
178 int h);
179 ~PluginDialogNew();
181 int handle_event();
182 int selection_changed();
183 PluginDialog *dialog;
186 class PluginDialogShared : public BC_ListBox
188 public:
189 PluginDialogShared(PluginDialog *dialog,
190 ArrayList<BC_ListBoxItem*> *shared_data,
191 int x,
192 int y,
193 int w,
194 int h);
195 ~PluginDialogShared();
197 int handle_event();
198 int selection_changed();
199 PluginDialog *dialog;
202 class PluginDialogModules : public BC_ListBox
204 public:
205 PluginDialogModules(PluginDialog *dialog,
206 ArrayList<BC_ListBoxItem*> *module_data,
207 int x,
208 int y,
209 int w,
210 int h);
211 ~PluginDialogModules();
213 int handle_event();
214 int selection_changed();
215 PluginDialog *dialog;
219 * class PluginDialogAttachShared : public BC_GenericButton
221 * public:
222 * PluginDialogAttachShared(MWindow *mwindow, PluginDialog *dialog, int x, int y);
223 * ~PluginDialogAttachShared();
225 * int handle_event();
226 * PluginDialog *dialog;
227 * };
229 * class PluginDialogChangeShared : public BC_GenericButton
231 * public:
232 * PluginDialogChangeShared(MWindow *mwindow, PluginDialog *dialog, int x, int y);
233 * ~PluginDialogChangeShared();
235 * int handle_event();
236 * PluginDialog *dialog;
237 * };
240 * class PluginDialogAttachModule : public BC_GenericButton
242 * public:
243 * PluginDialogAttachModule(MWindow *mwindow, PluginDialog *dialog, int x, int y);
244 * ~PluginDialogAttachModule();
246 * int handle_event();
247 * PluginDialog *dialog;
248 * };
250 * class PluginDialogChangeModule : public BC_GenericButton
252 * public:
253 * PluginDialogChangeModule(MWindow *mwindow, PluginDialog *dialog, int x, int y);
254 * ~PluginDialogChangeModule();
256 * int handle_event();
257 * PluginDialog *dialog;
263 #endif