- c->set_active (!_lsp[i]->optional); // also if default ??
- c->set_sensitive (_lsp[i]->optional);
- e->set_text (_lsp[i]->dflt);
- e->set_sensitive (c->get_active ());
+ if (_lsp[i]->optional) {
+ CheckButton* c = manage (new CheckButton (_lsp[i]->title));
+ c->set_active (!_lsp[i]->dflt.empty());
+ c->signal_toggled().connect (sigc::bind (sigc::mem_fun (*this, &ScriptParameterDialog::active_changed), i, c, e));
+ t->attach (*c, 0, 1, ty, ty+1);
+ } else {
+ Label* l = manage (new Label (_lsp[i]->title, Gtk::ALIGN_LEFT));
+ t->attach (*l, 0, 1, ty, ty+1);
+ }