r289: Merged the official release 1.2.0.
[cinelerra_cv/ct.git] / cinelerra / pluginpopup.C
blobd9be2a7a212d0f83691b3de33dae01ddb0c65fdf
1 #include "language.h"
2 #include "mainundo.h"
3 #include "mwindow.h"
4 #include "mwindowgui.h"
5 #include "plugin.h"
6 #include "plugindialog.h"
7 #include "pluginpopup.h"
8 #include "track.h"
12 PluginPopup::PluginPopup(MWindow *mwindow, MWindowGUI *gui)
13  : BC_PopupMenu(0, 
14                 0, 
15                 0, 
16                 "", 
17                 0)
19         this->mwindow = mwindow;
20         this->gui = gui;
23 PluginPopup::~PluginPopup()
27 void PluginPopup::create_objects()
29         add_item(attach = new PluginPopupAttach(mwindow, this));
30         add_item(detach = new PluginPopupDetach(mwindow, this));
31 //      add_item(in = new PluginPopupIn(mwindow, this));
32 //      add_item(out = new PluginPopupOut(mwindow, this));
33         add_item(show = new PluginPopupShow(mwindow, this));
34         add_item(on = new PluginPopupOn(mwindow, this));
35         add_item(new PluginPopupUp(mwindow, this));
36         add_item(new PluginPopupDown(mwindow, this));
39 int PluginPopup::update(Plugin *plugin)
41 //printf("PluginPopup::update %p\n", plugin);
42         on->set_checked(plugin->on);
43 //      in->set_checked(plugin->in);
44 //      out->set_checked(plugin->out);
45         show->set_checked(plugin->show);
46         this->plugin = plugin;
47         return 0;
58 PluginPopupAttach::PluginPopupAttach(MWindow *mwindow, PluginPopup *popup)
59  : BC_MenuItem(_("Attach..."))
61         this->mwindow = mwindow;
62         this->popup = popup;
63         dialog_thread = new PluginDialogThread(mwindow);
66 PluginPopupAttach::~PluginPopupAttach()
68         delete dialog_thread;
71 int PluginPopupAttach::handle_event()
73         dialog_thread->start_window(popup->plugin->track,
74                 popup->plugin, 
75                 PROGRAM_NAME ": Attach Effect");
84 PluginPopupDetach::PluginPopupDetach(MWindow *mwindow, PluginPopup *popup)
85  : BC_MenuItem(_("Detach"))
87         this->mwindow = mwindow;
88         this->popup = popup;
91 PluginPopupDetach::~PluginPopupDetach()
95 int PluginPopupDetach::handle_event()
97         mwindow->hide_plugin(popup->plugin, 1);
98         mwindow->undo->update_undo_before(_("detach effect"), LOAD_ALL);
99         popup->plugin->track->detach_effect(popup->plugin);
100         mwindow->save_backup();
101         mwindow->undo->update_undo_after();
102         mwindow->gui->update(0,
103                 1,
104                 0,
105                 0,
106                 0, 
107                 0,
108                 0);
109         mwindow->restart_brender();
110         mwindow->sync_parameters(CHANGE_EDL);
111         return 1;
120 PluginPopupIn::PluginPopupIn(MWindow *mwindow, PluginPopup *popup)
121  : BC_MenuItem(_("Send"))
123         this->mwindow = mwindow;
124         this->popup = popup;
127 PluginPopupIn::~PluginPopupIn()
131 int PluginPopupIn::handle_event()
133         popup->plugin->in = !get_checked();
134         mwindow->sync_parameters(CHANGE_EDL);
135         return 1;
142 PluginPopupOut::PluginPopupOut(MWindow *mwindow, PluginPopup *popup)
143  : BC_MenuItem(_("Receive"))
145         this->mwindow = mwindow;
146         this->popup = popup;
149 PluginPopupOut::~PluginPopupOut()
153 int PluginPopupOut::handle_event()
155         popup->plugin->out = !get_checked();
156         mwindow->sync_parameters(CHANGE_EDL);
157         return 1;
164 PluginPopupShow::PluginPopupShow(MWindow *mwindow, PluginPopup *popup)
165  : BC_MenuItem(_("Show"))
167         this->mwindow = mwindow;
168         this->popup = popup;
171 PluginPopupShow::~PluginPopupShow()
175 int PluginPopupShow::handle_event()
177         mwindow->show_plugin(popup->plugin);
178         return 1;
184 PluginPopupOn::PluginPopupOn(MWindow *mwindow, PluginPopup *popup)
185  : BC_MenuItem(_("On"))
187         this->mwindow = mwindow;
188         this->popup = popup;
191 PluginPopupOn::~PluginPopupOn()
195 int PluginPopupOn::handle_event()
197         popup->plugin->on = !get_checked();
198         mwindow->restart_brender();
199         mwindow->sync_parameters(CHANGE_EDL);
200         return 1;
204 PluginPopupUp::PluginPopupUp(MWindow *mwindow, PluginPopup *popup)
205  : BC_MenuItem(_("Move up"))
207         this->mwindow = mwindow;
208         this->popup = popup;
211 int PluginPopupUp::handle_event()
213         mwindow->move_plugins_up(popup->plugin->plugin_set);
214         return 1;
219 PluginPopupDown::PluginPopupDown(MWindow *mwindow, PluginPopup *popup)
220  : BC_MenuItem(_("Move down"))
222         this->mwindow = mwindow;
223         this->popup = popup;
226 int PluginPopupDown::handle_event()
228         mwindow->move_plugins_down(popup->plugin->plugin_set);
229         return 1;