diff --git a/libs/openFrameworks/types/ofParameter.h b/libs/openFrameworks/types/ofParameter.h index 0869cc7b1d1..a1275d8ddb4 100644 --- a/libs/openFrameworks/types/ofParameter.h +++ b/libs/openFrameworks/types/ofParameter.h @@ -113,6 +113,7 @@ class ofParameterGroup : public ofAbstractParameter { add(parameters...); } + void add(std::shared_ptr param); void add(ofAbstractParameter & param); std::string valueType() const; diff --git a/libs/openFrameworks/types/ofParameterGroup.cpp b/libs/openFrameworks/types/ofParameterGroup.cpp index 63e60d341ff..0edb69ff8a0 100644 --- a/libs/openFrameworks/types/ofParameterGroup.cpp +++ b/libs/openFrameworks/types/ofParameterGroup.cpp @@ -5,20 +5,23 @@ ofParameterGroup::ofParameterGroup() : obj(new Value) { } -void ofParameterGroup::add(ofAbstractParameter & parameter) { - auto param = parameter.newReference(); - auto escaped_name = param->getEscapedName(); +void ofParameterGroup::add(std::shared_ptr parameter) { + auto escaped_name = parameter->getEscapedName(); if (contains(escaped_name)) { - ofLogWarning() << "Adding another parameter with same name '" << param->getName() << "' to group '" << getName() << "'"; + ofLogWarning() << "Adding another parameter with same name '" << parameter->getName() << "' to group '" << getName() << "'"; } - obj->parameters.push_back(param); + obj->parameters.push_back(parameter); obj->parametersIndex[escaped_name] = obj->parameters.size() - 1; - param->setParent(*this); + parameter->setParent(*this); } -void ofParameterGroup::remove(ofAbstractParameter & param) { - for (auto & p : obj->parameters) { - if (p->isReferenceTo(param)) { +void ofParameterGroup::add(ofAbstractParameter & parameter){ + add(parameter.newReference()); +} + +void ofParameterGroup::remove(ofAbstractParameter ¶m){ + for(auto & p: obj->parameters){ + if(p->isReferenceTo(param)){ remove(param.getName()); return; }