X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fmwindow.C;h=e4e6f8370f243202d344d00d6292e37fda23d0ff;hp=b074950fedebadebe8415114cd2985a2e4593221;hb=076da20a596fe698e1152ce2f3f2d75d2daddec8;hpb=0df48ad2d876409c5beeae2e21933a728ea76c33 diff --git a/cinelerra-5.1/cinelerra/mwindow.C b/cinelerra-5.1/cinelerra/mwindow.C index b074950f..e4e6f837 100644 --- a/cinelerra-5.1/cinelerra/mwindow.C +++ b/cinelerra-5.1/cinelerra/mwindow.C @@ -2635,7 +2635,7 @@ void MWindow::create_objects(int want_gui, if(debug) printf("MWindow::create_objects %d total_time=%d\n", __LINE__, (int)timer.get_difference()); - plugin_guis = new ArrayList; + plugin_guis = new PluginGUIs(this); dead_plugins = new ArrayList; keyframe_threads = new ArrayList; @@ -3171,9 +3171,6 @@ void MWindow::show_keyframe_gui(Plugin *plugin) } - - - void MWindow::show_plugin(Plugin *plugin) { int done = 0; @@ -3429,7 +3426,6 @@ void MWindow::update_plugin_guis(int do_keyframe_guis) } if(!got_it) plugin->show = 0; - plugin = (Plugin*)plugin->next; } } @@ -3445,45 +3441,34 @@ void MWindow::update_plugin_guis(int do_keyframe_guis) int MWindow::plugin_gui_open(Plugin *plugin) { - int result = 0; + int gui_id = plugin->gui_id; + if( gui_id < 0 ) return 0; plugin_gui_lock->lock("MWindow::plugin_gui_open"); - for(int i = 0; i < plugin_guis->total; i++) - { - if(plugin_guis->get(i)->plugin->identical_location(plugin)) - { - result = 1; - break; - } - } + PluginServer *plugin_server = plugin_guis->gui_server(gui_id); + int result = plugin_server ? 1 : 0; plugin_gui_lock->unlock(); return result; } void MWindow::render_plugin_gui(void *data, Plugin *plugin) { + int gui_id = plugin->gui_id; + if( gui_id < 0 ) return; plugin_gui_lock->lock("MWindow::render_plugin_gui"); - for(int i = 0; i < plugin_guis->total; i++) - { - if(plugin_guis->get(i)->plugin->identical_location(plugin)) - { - plugin_guis->get(i)->render_gui(data); - break; - } - } + PluginServer *plugin_server = plugin_guis->gui_server(gui_id); + if( plugin_server ) + plugin_server->render_gui(data); plugin_gui_lock->unlock(); } void MWindow::render_plugin_gui(void *data, int size, Plugin *plugin) { + int gui_id = plugin->gui_id; + if( gui_id < 0 ) return; plugin_gui_lock->lock("MWindow::render_plugin_gui"); - for(int i = 0; i < plugin_guis->total; i++) - { - if(plugin_guis->get(i)->plugin->identical_location(plugin)) - { - plugin_guis->get(i)->render_gui(data, size); - break; - } - } + PluginServer *plugin_server = plugin_guis->gui_server(gui_id); + if( plugin_server ) + plugin_server->render_gui(data, size); plugin_gui_lock->unlock(); }