| 60 | } |
| 61 | |
| 62 | app::ModuleWidget* createModuleWidget(engine::Module* const m) override |
| 63 | { |
| 64 | TModule* tm = nullptr; |
| 65 | if (m) |
| 66 | { |
| 67 | DISTRHO_SAFE_ASSERT_RETURN(m->model == this, nullptr); |
| 68 | if (widgets.find(m) != widgets.end()) |
| 69 | { |
| 70 | widgetNeedsDeletion[m] = false; |
| 71 | return widgets[m]; |
| 72 | } |
| 73 | tm = dynamic_cast<TModule*>(m); |
| 74 | } |
| 75 | app::ModuleWidget* const tmw = new TModuleWidget(tm); |
| 76 | DISTRHO_CUSTOM_SAFE_ASSERT_RETURN(m != nullptr ? m->model->name.c_str() : "null", tmw->module == m, nullptr); |
| 77 | tmw->setModel(this); |
| 78 | return tmw; |
| 79 | } |
| 80 | |
| 81 | app::ModuleWidget* createModuleWidgetFromEngineLoad(engine::Module* const m) override |
| 82 | { |