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
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102 PluginDialogThru *thru;
00103
00104 PluginDialogThread *thread;
00105
00106 ArrayList<BC_ListBoxItem*> standalone_data;
00107 ArrayList<BC_ListBoxItem*> shared_data;
00108 ArrayList<BC_ListBoxItem*> module_data;
00109 ArrayList<SharedLocation*> plugin_locations;
00110 ArrayList<SharedLocation*> module_locations;
00111 ArrayList<PluginServer*> plugindb;
00112
00113 int selected_available;
00114 int selected_shared;
00115 int selected_modules;
00116
00117 int inoutthru;
00118 int new_value;
00119 MWindow *mwindow;
00120 };
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149
00150
00151
00152
00153
00154
00155
00156
00157
00158
00159
00160
00161
00162
00163
00164
00165
00166
00167
00168
00169
00170 class PluginDialogNew : public BC_ListBox
00171 {
00172 public:
00173 PluginDialogNew(PluginDialog *dialog,
00174 ArrayList<BC_ListBoxItem*> *standalone_data,
00175 int x,
00176 int y,
00177 int w,
00178 int h);
00179 ~PluginDialogNew();
00180
00181 int handle_event();
00182 int selection_changed();
00183 PluginDialog *dialog;
00184 };
00185
00186 class PluginDialogShared : public BC_ListBox
00187 {
00188 public:
00189 PluginDialogShared(PluginDialog *dialog,
00190 ArrayList<BC_ListBoxItem*> *shared_data,
00191 int x,
00192 int y,
00193 int w,
00194 int h);
00195 ~PluginDialogShared();
00196
00197 int handle_event();
00198 int selection_changed();
00199 PluginDialog *dialog;
00200 };
00201
00202 class PluginDialogModules : public BC_ListBox
00203 {
00204 public:
00205 PluginDialogModules(PluginDialog *dialog,
00206 ArrayList<BC_ListBoxItem*> *module_data,
00207 int x,
00208 int y,
00209 int w,
00210 int h);
00211 ~PluginDialogModules();
00212
00213 int handle_event();
00214 int selection_changed();
00215 PluginDialog *dialog;
00216 };
00217
00218
00219
00220
00221
00222
00223
00224
00225
00226
00227
00228
00229
00230
00231
00232
00233
00234
00235
00236
00237
00238
00239
00240
00241
00242
00243
00244
00245
00246
00247
00248
00249
00250
00251
00252
00253
00254
00255
00256
00257
00258
00259
00260
00261
00262
00263 #endif