00001 #ifndef PLUGINDIALOG_H
00002 #define PLUGINDIALOG_H
00003
00004 class PluginDialogTextBox;
00005 class PluginDialogDetach;
00006 class PluginDialogNew;
00007 class PluginDialogShared;
00008 class PluginDialogModules;
00009 class PluginDialogAttachNew;
00010 class PluginDialogAttachShared;
00011 class PluginDialogAttachModule;
00012 class PluginDialogChangeNew;
00013 class PluginDialogChangeShared;
00014 class PluginDialogChangeModule;
00015 class PluginDialogIn;
00016 class PluginDialogOut;
00017 class PluginDialogThru;
00018 class PluginDialog;
00019
00020 #include "condition.inc"
00021 #include "guicast.h"
00022 #include "mutex.inc"
00023 #include "mwindow.inc"
00024 #include "plugin.inc"
00025 #include "sharedlocation.h"
00026 #include "thread.h"
00027 #include "transition.inc"
00028
00029 class PluginDialogThread : public Thread
00030 {
00031 public:
00032 PluginDialogThread(MWindow *mwindow);
00033 ~PluginDialogThread();
00034
00035
00036 void start_window(Track *track,
00037 Plugin *plugin,
00038 char *title);
00039 int set_dialog(Transition *transition, char *title);
00040 void run();
00041
00042
00043
00044 MWindow *mwindow;
00045 Track *track;
00046 int data_type;
00047 Transition *transition;
00048 PluginDialog *window;
00049
00050 Plugin *plugin;
00051 Condition *completion;
00052 Mutex *window_lock;
00053 char window_title[BCTEXTLEN];
00054
00055
00056
00057 int plugin_type;
00058
00059
00060 SharedLocation shared_location;
00061
00062
00063 char plugin_title[BCTEXTLEN];
00064 };
00065
00066 class PluginDialog : public BC_Window
00067 {
00068 public:
00069 PluginDialog(MWindow *mwindow,
00070 PluginDialogThread *thread,
00071 char *title,
00072 int x,
00073 int y);
00074 ~PluginDialog();
00075
00076 int create_objects();
00077
00078 int attach_new(int number);
00079 int attach_shared(int number);
00080 int attach_module(int number);
00081 int save_settings();
00082 int resize_event(int w, int h);
00083
00084 BC_Title *standalone_title;
00085 PluginDialogNew *standalone_list;
00086 BC_Title *shared_title;
00087 PluginDialogShared *shared_list;
00088 BC_Title *module_title;
00089 PluginDialogModules *module_list;
00090
00091
00092 PluginDialogAttachNew *standalone_attach;
00093 PluginDialogAttachShared *shared_attach;
00094 PluginDialogAttachModule *module_attach;
00095
00096 PluginDialogChangeNew *standalone_change;
00097 PluginDialogChangeShared *shared_change;
00098 PluginDialogChangeModule *module_change;
00099
00100 PluginDialogThru *thru;
00101
00102 PluginDialogThread *thread;
00103
00104 ArrayList<BC_ListBoxItem*> standalone_data;
00105 ArrayList<BC_ListBoxItem*> shared_data;
00106 ArrayList<BC_ListBoxItem*> module_data;
00107 ArrayList<SharedLocation*> plugin_locations;
00108 ArrayList<SharedLocation*> module_locations;
00109 ArrayList<PluginServer*> plugindb;
00110
00111 int selected_available;
00112 int selected_shared;
00113 int selected_modules;
00114
00115 int inoutthru;
00116 int new_value;
00117 MWindow *mwindow;
00118 };
00119
00120
00121 class PluginDialogTextBox : public BC_TextBox
00122 {
00123 public:
00124 PluginDialogTextBox(PluginDialog *dialog, char *text, int x, int y);
00125 ~PluginDialogTextBox();
00126
00127 int handle_event();
00128 PluginDialog *dialog;
00129 };
00130
00131 class PluginDialogDetach : public BC_GenericButton
00132 {
00133 public:
00134 PluginDialogDetach(MWindow *mwindow, PluginDialog *dialog, int x, int y);
00135 ~PluginDialogDetach();
00136
00137 int handle_event();
00138 PluginDialog *dialog;
00139 };
00140
00141 class PluginDialogAttachNew : public BC_GenericButton
00142 {
00143 public:
00144 PluginDialogAttachNew(MWindow *mwindow, PluginDialog *dialog, int x, int y);
00145 ~PluginDialogAttachNew();
00146
00147 int handle_event();
00148 PluginDialog *dialog;
00149 };
00150
00151 class PluginDialogChangeNew : public BC_GenericButton
00152 {
00153 public:
00154 PluginDialogChangeNew(MWindow *mwindow, PluginDialog *dialog, int x, int y);
00155 ~PluginDialogChangeNew();
00156
00157 int handle_event();
00158 PluginDialog *dialog;
00159 };
00160
00161
00162 class PluginDialogNew : public BC_ListBox
00163 {
00164 public:
00165 PluginDialogNew(PluginDialog *dialog,
00166 ArrayList<BC_ListBoxItem*> *standalone_data,
00167 int x,
00168 int y,
00169 int w,
00170 int h);
00171 ~PluginDialogNew();
00172
00173 int handle_event();
00174 int selection_changed();
00175 PluginDialog *dialog;
00176 };
00177
00178 class PluginDialogShared : public BC_ListBox
00179 {
00180 public:
00181 PluginDialogShared(PluginDialog *dialog,
00182 ArrayList<BC_ListBoxItem*> *shared_data,
00183 int x,
00184 int y,
00185 int w,
00186 int h);
00187 ~PluginDialogShared();
00188
00189 int handle_event();
00190 int selection_changed();
00191 PluginDialog *dialog;
00192 };
00193
00194 class PluginDialogModules : public BC_ListBox
00195 {
00196 public:
00197 PluginDialogModules(PluginDialog *dialog,
00198 ArrayList<BC_ListBoxItem*> *module_data,
00199 int x,
00200 int y,
00201 int w,
00202 int h);
00203 ~PluginDialogModules();
00204
00205 int handle_event();
00206 int selection_changed();
00207 PluginDialog *dialog;
00208 };
00209
00210 class PluginDialogAttachShared : public BC_GenericButton
00211 {
00212 public:
00213 PluginDialogAttachShared(MWindow *mwindow, PluginDialog *dialog, int x, int y);
00214 ~PluginDialogAttachShared();
00215
00216 int handle_event();
00217 PluginDialog *dialog;
00218 };
00219
00220 class PluginDialogChangeShared : public BC_GenericButton
00221 {
00222 public:
00223 PluginDialogChangeShared(MWindow *mwindow, PluginDialog *dialog, int x, int y);
00224 ~PluginDialogChangeShared();
00225
00226 int handle_event();
00227 PluginDialog *dialog;
00228 };
00229
00230
00231 class PluginDialogAttachModule : public BC_GenericButton
00232 {
00233 public:
00234 PluginDialogAttachModule(MWindow *mwindow, PluginDialog *dialog, int x, int y);
00235 ~PluginDialogAttachModule();
00236
00237 int handle_event();
00238 PluginDialog *dialog;
00239 };
00240
00241 class PluginDialogChangeModule : public BC_GenericButton
00242 {
00243 public:
00244 PluginDialogChangeModule(MWindow *mwindow, PluginDialog *dialog, int x, int y);
00245 ~PluginDialogChangeModule();
00246
00247 int handle_event();
00248 PluginDialog *dialog;
00249 };
00250
00251
00252 class PluginDialogIn : public BC_CheckBox
00253 {
00254 public:
00255 PluginDialogIn(PluginDialog *dialog, int setting, int x, int y);
00256 ~PluginDialogIn();
00257
00258 int button_press();
00259 int button_release();
00260 int cursor_moved_over();
00261 int handle_event();
00262 PluginDialog *dialog;
00263 };
00264
00265 class PluginDialogOut : public BC_CheckBox
00266 {
00267 public:
00268 PluginDialogOut(PluginDialog *dialog, int setting, int x, int y);
00269 ~PluginDialogOut();
00270
00271 int button_press();
00272 int button_release();
00273 int cursor_moved_over();
00274 int handle_event();
00275 PluginDialog *dialog;
00276 };
00277
00278 class PluginDialogThru : public BC_CheckBox
00279 {
00280 public:
00281 PluginDialogThru(PluginDialog *dialog, int setting);
00282 ~PluginDialogThru();
00283
00284 int button_press();
00285 int button_release();
00286 int cursor_moved_over();
00287 int handle_event();
00288 PluginDialog *dialog;
00289 };
00290
00291 #endif