void ofxGuiGroup::add(ofxBaseGui * element){ collection.push_back( element ); element->setPosition(b.x, b.y + b.height + spacing); b.height += element->getHeight() + spacing; //if(b.width<element->getWidth()) b.width = element->getWidth(); element->unregisterMouseEvents(); ofxGuiGroup * subgroup = dynamic_cast<ofxGuiGroup*>(element); if(subgroup!=NULL){ subgroup->filename = filename; subgroup->parent = this; subgroup->setWidthElements(b.width*.98); }else{ if(parent!=NULL){ element->setSize(b.width*.98,element->getHeight()); element->setPosition(b.x + b.width-element->getWidth(),element->getPosition().y); } } parameters.add(element->getParameter()); generateDraw(); }
nsUISpacer* nsUISpacer::setup(){ p_lt_local=p_lt; p_lt_local.x+=space; updatePos(stroke_width); generateDraw(); return this; }
ofxGuiGroup * ofxGuiGroup::setup(const ofParameterGroup & _parameters, string _filename, float x, float y){ b.x = x; b.y = y; header = defaultHeight; spacing = 1; spacingNextElement = 3; if(parent!=NULL){ b.width = parent->getWidth(); }else{ b.width = defaultWidth; } clear(); filename = _filename; bGuiActive = false; for(int i=0;i<_parameters.size();i++){ string type = _parameters.getType(i); if(type==typeid(ofParameter<int>).name()){ ofParameter<int> p = _parameters.getInt(i); add(p); }else if(type==typeid(ofParameter<float>).name()){ ofParameter<float> p = _parameters.getFloat(i); add(p); }else if(type==typeid(ofParameter<bool>).name()){ ofParameter<bool> p = _parameters.getBool(i); add(p); }else if(type==typeid(ofParameter<ofVec2f>).name()){ ofParameter<ofVec2f> p = _parameters.getVec2f(i); add(p); }else if(type==typeid(ofParameter<ofVec3f>).name()){ ofParameter<ofVec3f> p = _parameters.getVec3f(i); add(p); }else if(type==typeid(ofParameter<ofVec4f>).name()){ ofParameter<ofVec4f> p = _parameters.getVec4f(i); add(p); }else if(type==typeid(ofParameter<ofColor>).name()){ ofParameter<ofColor> p = _parameters.getColor(i); add(p); }else if(type==typeid(ofParameter<ofShortColor>).name()){ ofParameter<ofShortColor> p = _parameters.getShortColor(i); add(p); }else if(type==typeid(ofParameter<ofFloatColor>).name()){ ofParameter<ofFloatColor> p = _parameters.getFloatColor(i); add(p); }else if(type==typeid(ofParameterGroup).name()){ ofParameterGroup p = _parameters.getGroup(i); ofxGuiGroup * panel = new ofxGuiGroup(p); add(panel); }else{ ofLogError() << "ofxBaseGroup; can't add control of type " << type; } } parameters = _parameters; ofRegisterMouseEvents(this,OF_EVENT_ORDER_BEFORE_APP); generateDraw(); return this; }
void ofxGuiGroup::add(ofxBaseGui * element){ collection.push_back( element ); element->setPosition(b.x, b.y + b.height + spacing); b.height += element->getHeight() + spacing; //if(b.width<element->getWidth()) b.width = element->getWidth(); //cout << "adding element " << element->getName() <<endl; ofUnregisterMouseEvents(element); ofxGuiGroup * subgroup = dynamic_cast<ofxGuiGroup*>(element); if(subgroup!=NULL){ //cout << "subgroup" << endl; subgroup->filename = filename; subgroup->parent = this; subgroup->setSize(b.width*defaultElementIndentation,element->getHeight()); subgroup->setWidthElements(b.width*defaultElementIndentation); }else{ //cout << "no subgroup" << endl; if(parent!=NULL){ //cout << "parent" << endl; element->setSize(b.width*defaultElementIndentation,element->getHeight()); element->setPosition(b.x + b.width-element->getWidth(),element->getPosition().y); } } //cout << "adding element " << element->getName() <<" width : " << element->getWidth() << " " <<b.width << endl; parameters.add(element->getParameter()); generateDraw(); initFbo(); }
void ofxGuiGroup::maximize(){ minimized=false; for(int i=0;i<(int)collection.size();i++){ b.height += collection[i]->getHeight() + spacing; } if(parent) parent->sizeChangedCB(); generateDraw(); }
void ofxParamToggle::render() { if(ref_ && value != *ref_) { value = *ref_; generateDraw(); } ofxToggle::render(); }
void ofxGuiGroup::setPosition(ofPoint p){ ofVec2f diff = p - b.getPosition(); for(int i=0;i<(int)collection.size();i++){ collection[i]->setPosition(collection[i]->getPosition()+diff); } b.setPosition(p); generateDraw(); }
void ofxGuiGroup::setWidthElements(float w){ for(int i=0;i<(int)collection.size();i++){ collection[i]->setSize(w,collection[i]->getHeight()); collection[i]->setPosition(b.x + b.width-w,collection[i]->getPosition().y); ofxGuiGroup * subgroup = dynamic_cast<ofxGuiGroup*>(collection[i]); if(subgroup!=NULL){ subgroup->setWidthElements(w*.98); } } sizeChangedCB(); generateDraw(); }
ofxSlider<Type>* ofxSlider<Type>::setup(ofParameter<Type> _val, float width, float height){ bUpdateOnReleaseOnly = false; value.makeReferenceTo(_val); b.x = 0; b.y = 0; b.width = width; b.height = height; bGuiActive = false; value.addListener(this,&ofxSlider::valueChanged); ofRegisterMouseEvents(this,OF_EVENT_ORDER_BEFORE_APP); generateDraw(); return this; }
void ofxGuiGroup::sizeChangedCB(){ float y; if(parent){ y = b.y + header + spacing + spacingNextElement; }else{ y = b.y + header + spacing; } for(int i=0;i<(int)collection.size();i++){ collection[i]->setPosition(collection[i]->getPosition().x,y + spacing); y += collection[i]->getHeight() + spacing; } b.height = y - b.y; if(parent) parent->sizeChangedCB(); generateDraw(); }
void ofxBaseGui::setBorderColor(const ofColor & color){ generateDraw(); thisBorderColor = color; }
void ofxBaseGui::setShape(float x, float y, float w, float h){ b.set(x,y,w,h); generateDraw(); }
void ofxBaseGui::setBackgroundColor(const ofColor & color){ generateDraw(); thisBackgroundColor = color; }
void ofxBaseGui::setShape(ofRectangle r){ b = r; generateDraw(); }
void ofxBaseGui::setSize(float w, float h){ b.width = w; b.height = h; generateDraw(); }
void ofxBaseGui::setPosition(float x, float y){ b.x = x; b.y = y; generateDraw(); }
void ofxGuiGroup::minimize(){ minimized=true; b.height = header + spacing + spacingNextElement + 1 /*border*/; if(parent) parent->sizeChangedCB(); generateDraw(); }
void ofxBaseGui::setTextColor(const ofColor & color){ generateDraw(); thisTextColor = color; }
void ofxBaseGui::setFillColor(const ofColor & color){ generateDraw(); thisFillColor = color; }
void ofxSlider<Type>::valueChanged(Type & value){ generateDraw(); }