コード例 #1
0
ファイル: ofxGuiGroup.cpp プロジェクト: AsmaM/openFrameworks
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();
}
コード例 #2
0
ファイル: nsUISpacer.cpp プロジェクト: YosukeSawano/nsUI_dev2
nsUISpacer* nsUISpacer::setup(){
	p_lt_local=p_lt;
	p_lt_local.x+=space;
	updatePos(stroke_width);
	generateDraw();
	return this;
}
コード例 #3
0
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;
}
コード例 #4
0
ファイル: ofxGuiGroup.cpp プロジェクト: imclab/LaserShow
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();
}
コード例 #5
0
ファイル: ofxGuiGroup.cpp プロジェクト: AsmaM/openFrameworks
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();
}
コード例 #6
0
void ofxParamToggle::render()
{
	if(ref_ && value != *ref_) {
		value = *ref_;
		generateDraw();
	}
	ofxToggle::render();
}
コード例 #7
0
ファイル: ofxGuiGroup.cpp プロジェクト: AsmaM/openFrameworks
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();
}
コード例 #8
0
ファイル: ofxGuiGroup.cpp プロジェクト: AsmaM/openFrameworks
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();
}
コード例 #9
0
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;
}
コード例 #10
0
ファイル: ofxGuiGroup.cpp プロジェクト: AsmaM/openFrameworks
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();
}
コード例 #11
0
ファイル: ofxBaseGui.cpp プロジェクト: imclab/LaserShow
void ofxBaseGui::setBorderColor(const ofColor & color){
	generateDraw();
	thisBorderColor = color;
}
コード例 #12
0
ファイル: ofxBaseGui.cpp プロジェクト: imclab/LaserShow
void ofxBaseGui::setShape(float x, float y, float w, float h){
	b.set(x,y,w,h);
	generateDraw();
}
コード例 #13
0
ファイル: ofxBaseGui.cpp プロジェクト: imclab/LaserShow
void ofxBaseGui::setBackgroundColor(const ofColor & color){
	generateDraw();
	thisBackgroundColor = color;
}
コード例 #14
0
ファイル: ofxBaseGui.cpp プロジェクト: imclab/LaserShow
void ofxBaseGui::setShape(ofRectangle r){
	b = r;
	generateDraw();
}
コード例 #15
0
ファイル: ofxBaseGui.cpp プロジェクト: imclab/LaserShow
void ofxBaseGui::setSize(float w, float h){
	b.width = w;
	b.height = h;
	generateDraw();
}
コード例 #16
0
ファイル: ofxBaseGui.cpp プロジェクト: imclab/LaserShow
void ofxBaseGui::setPosition(float x, float y){
	b.x = x;
	b.y = y;
	generateDraw();
}
コード例 #17
0
ファイル: ofxGuiGroup.cpp プロジェクト: AsmaM/openFrameworks
void ofxGuiGroup::minimize(){
	minimized=true;
	b.height = header + spacing + spacingNextElement + 1 /*border*/;
	if(parent) parent->sizeChangedCB();
	generateDraw();
}
コード例 #18
0
ファイル: ofxBaseGui.cpp プロジェクト: imclab/LaserShow
void ofxBaseGui::setTextColor(const ofColor & color){
	generateDraw();
	thisTextColor = color;
}
コード例 #19
0
ファイル: ofxBaseGui.cpp プロジェクト: imclab/LaserShow
void ofxBaseGui::setFillColor(const ofColor & color){
	generateDraw();
	thisFillColor = color;
}
コード例 #20
0
void ofxSlider<Type>::valueChanged(Type & value){
	generateDraw();
}