Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members

plugindialog.h

Go to the documentation of this file.
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 // Set up parameters for a transition menu.
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 // Plugin being modified if there is one
00050         Plugin *plugin;
00051         Condition *completion;
00052         Mutex *window_lock;
00053         char window_title[BCTEXTLEN];
00054 
00055 
00056 // type of attached plugin
00057         int plugin_type;    // 0: none  1: plugin   2: shared plugin   3: module
00058 
00059 // location of attached plugin if shared
00060         SharedLocation shared_location;
00061 
00062 // Title of attached plugin if new
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; // locations of all shared plugins
00108         ArrayList<SharedLocation*> module_locations; // locations of all shared modules
00109         ArrayList<PluginServer*> plugindb;           // locations of all simple plugins, no need for memory freeing!
00110 
00111         int selected_available;
00112         int selected_shared;
00113         int selected_modules;
00114 
00115         int inoutthru;         // flag for button slide
00116         int new_value;         // value for button slide
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

Generated on Sun Jan 8 13:38:58 2006 for Cinelerra-svn by  doxygen 1.4.4