예제 #1
0
void ofxGuiFiles::draw()
{
    glPushMatrix();

    glTranslatef(mObjX, mObjY, 0.0f);

    if(mParamName != "")
        drawParamString(0.0, 0.0, mParamName + ": " + ofToString(mNumberOfFiles, 0) + "/" + ofToString(mSelected + 1, 0), false);

    ofFill();

    //  background
    glColor4f(mGlobals->mCoverColor.r, mGlobals->mCoverColor.g, mGlobals->mCoverColor.b, mGlobals->mCoverColor.a);
    ofRect(mCtrX, mCtrY, mCtrWidth, mCtrHeight);

    if(mValue != "")
        drawParamString(mCtrX + mGlobals->mFilesXText, mCtrY + mGlobals->mFilesYText, mValue, false);

    ofNoFill();

    //  frame
    glColor4f(mGlobals->mFrameColor.r, mGlobals->mFrameColor.g, mGlobals->mFrameColor.b, mGlobals->mFrameColor.a);
    ofRect(mCtrX, mCtrY, mCtrWidth, mCtrHeight);

    glPopMatrix();
}
예제 #2
0
void ofxGuiSlider::draw()
{
	glPushMatrix();

		glTranslatef(mObjX, mObjY, 0.0);

		if(mParamName != "")
			drawParamString(0.0, 0.0, mParamName + ": " + floatToString(mValue, mDisplay), false);

		float x = (mCtrWidth * valueToFraction(mValue));

		ofFill();

		//	background
		glColor4f(mGlobals->mCoverColor.r, mGlobals->mCoverColor.g, mGlobals->mCoverColor.b, mGlobals->mCoverColor.a);
		ofRect(mCtrX, mCtrY, mCtrWidth, mCtrHeight);

		//	action
		glColor4f(mGlobals->mSliderColor.r, mGlobals->mSliderColor.g, mGlobals->mSliderColor.b, mGlobals->mSliderColor.a);
		ofRect(mCtrX, mCtrY, x, mCtrHeight);

		//	handle
		glColor4f(mGlobals->mHandleColor.r, mGlobals->mHandleColor.g, mGlobals->mHandleColor.b, mGlobals->mHandleColor.a);
		ofRect(x, mCtrY, 1.0, mCtrHeight);

		ofNoFill();

		//	frame
		glColor4f(mGlobals->mFrameColor.r, mGlobals->mFrameColor.g, mGlobals->mFrameColor.b, mGlobals->mFrameColor.a);
		ofRect(mCtrX, mCtrY, mCtrWidth, mCtrHeight);

	glPopMatrix();
}
예제 #3
0
파일: ofxGuiButton.cpp 프로젝트: cyrta/cca
void ofxGuiButton::draw()
{
	glPushMatrix();
	
		glTranslatef(mObjX, mObjY, 0.0f);
		
		if(mParamName != "")
			drawParamString(mCtrWidth + mGlobals->mButtonXText, mGlobals->mButtonYText, mParamName, false);
		
		ofFill();
		
		//	background
		glColor4f(mGlobals->mCoverColor.r, mGlobals->mCoverColor.g, mGlobals->mCoverColor.b, mGlobals->mCoverColor.a);
		ofRect(mCtrX, mCtrY, mCtrWidth, mCtrHeight);
		
		if(mValue == 1)
		{
			//	handle
			glColor4f(mGlobals->mButtonColor.r, mGlobals->mButtonColor.g, mGlobals->mButtonColor.b, mGlobals->mButtonColor.a);
			ofRect(mCtrX , mCtrY, mCtrWidth, mCtrHeight);
		}
		
		ofNoFill();
		
		//	frame
		glColor4f(mGlobals->mFrameColor.r, mGlobals->mFrameColor.g, mGlobals->mFrameColor.b, mGlobals->mFrameColor.a);
		ofRect(mCtrX, mCtrY, mCtrWidth, mCtrHeight);
	
	glPopMatrix();
}
예제 #4
0
void ofxGuiGrid::draw() {
	selectedColor();

	glPushMatrix();
		glTranslatef( mObjX, mObjY, 0.0f );

		if ( bDblClickMode ) {
			this->dblClickImage->draw();
		} else {
			if ( mParamName != "" ) {
				drawParamString( 0.0, 0.0, mParamName, false );
			}

			ofFill();

			//! Background
			//glColor4f( mGlobals->mCoverColor.r, mGlobals->mCoverColor.g, mGlobals->mCoverColor.b, mGlobals->mCoverColor.a );

			ofNoFill();

			//! Grids
			for ( int j = 0; j < mYGrid; j++ ) {
				for ( int i = 0; i < mXGrid; i++ ) {
					int index = i + j * mXGrid;
					ofNoFill();

					if ( mSelectedId == index ) {
						drawSelectedRect( getGridX(i), getGridY(j), getGridWidth(), getGridHeight() );
					} else {
						glColor4f( mGlobals->mFrameColor.r, mGlobals->mFrameColor.g, mGlobals->mFrameColor.b, mGlobals->mFrameColor.a );
						//ofRect( mCtrX + mBorder + i * mSpacing + i * mGridWidth,
						//	mCtrY + mBorder + j * mSpacing + j * mGridHeight,
						//	mGridWidth, mGridHeight );
						ofRect( getGridX(i), getGridY(j), getGridWidth(), getGridHeight() );
					}

					if ( gridImages[index] != NULL ) {
						gridImages[index]->draw();
					}
				}
			}
		}

		ofNoFill();

		//! Frame
		glColor4f( mGlobals->mFrameColor.r, mGlobals->mFrameColor.g, mGlobals->mFrameColor.b, mGlobals->mFrameColor.a );

		ofRect( mCtrX, mCtrY, mCtrWidth, mCtrHeight );

	glPopMatrix();

	if ( !bDblClickMode ) {
		for ( int i = 0; i < mObjects.size(); ++i ) {
			mObjects[i]->draw();
		}
	}
}
예제 #5
0
void ofxGuiFiles::draw()
{
	glPushMatrix();
	
	glTranslatef(mObjX, mObjY, 0.0f);
	
		if(mParamName != "")
		{
			char buf[256];
			sprintf(buf, "%s: %f/%f", mParamName, mNumberOfFiles, mSelected+1);
			drawParamString(0.0, 0.0, buf, false);
		}

		ofFill();
		
		//	background
		//if( mSelected )
		//	glColor4f(mGlobals->mButtonColor.r, mGlobals->mButtonColor.g, mGlobals->mButtonColor.b, mGlobals->mButtonColor.a);
		//else
		//	glColor4f(mGlobals->mCoverColor.r, mGlobals->mCoverColor.g, mGlobals->mCoverColor.b, mGlobals->mCoverColor.a);
		if(mState == 0)
			glColor4f(mGlobals->mCoverColor.r, mGlobals->mCoverColor.g, mGlobals->mCoverColor.b, mGlobals->mCoverColor.a);
		else if(mState == 1)
			glColor4f(0, 255, 0, 255);
		else if(mState == 2)
			glColor4f(255, 0, 0, 255);
		ofRect(mCtrX, mCtrY, mCtrWidth, mCtrHeight);

		if(mValue != "")
			drawParamString(mCtrX + mGlobals->mFilesXText, mCtrY + mGlobals->mFilesYText, mValue, false);	

		ofNoFill();
		
		//	frame
		glColor4f(mGlobals->mFrameColor.r, mGlobals->mFrameColor.g, mGlobals->mFrameColor.b, mGlobals->mFrameColor.a);
		ofRect(mCtrX, mCtrY, mCtrWidth, mCtrHeight);
	
	glPopMatrix();
}
예제 #6
0
void ofxGuiColor::draw()
{
	glPushMatrix();
	
	glTranslatef(mObjX, mObjY, 0.0f);

	//	color
	glColor4f(1, 1, 1, 1);
	ofRect(mCtrX, mCtrY-17, mCtrWidth, 17);

	ofFill();
	
	glColor4f(0, 0, 0, 1);
	ofRect(mCtrX+1, mCtrY-16, mCtrWidth-2, 16);

	glColor4f(mValue.r, mValue.g, mValue.b, mValue.a);
	ofRect(mCtrX, mCtrY-16, mCtrWidth-1, 16);
	
	if(mParamName != ""){
		if((mValue.a) < 0.4){
			glColor4f(1, 1, 1, 1);
			mGlobals->mParamFont.drawString(mParamName + ": " + rgbaToString(mValue, mMode), 2+mGlobals->mParamFontXOffset, mGlobals->mParamFontYOffset);
		}
		else if((mValue.r+mValue.g+mValue.b+mValue.a) > 3.0){
			glColor4f(0, 0, 0, 1);
			mGlobals->mParamFont.drawString(mParamName + ": " + rgbaToString(mValue, mMode), 2+mGlobals->mParamFontXOffset, mGlobals->mParamFontYOffset);
		}
		else drawParamString(2.0, 0.0, mParamName + ": " + rgbaToString(mValue, mMode), false);
	}
	glColor4f(1, 1, 1, 1);
		

	
	//	background
	glColor4f(mGlobals->mCoverColor.r, mGlobals->mCoverColor.g, mGlobals->mCoverColor.b, mGlobals->mCoverColor.a);
	ofRect(mCtrX, mCtrY, mCtrWidth, mCtrHeight);

	

	float	height	= (mCtrHeight - 2.0 - mSize) / (float)mSize;
	float	posY	= mCtrY + 2.0;
	float	posX	= mCtrWidth * mValue.r;
	
	//	r
	glColor4f(1.0, 0.0, 0.0, 0.8);
	ofRect(mCtrX, posY, posX, height);
	glColor4f(mGlobals->mHandleColor.r, mGlobals->mHandleColor.g, mGlobals->mHandleColor.b, mGlobals->mHandleColor.a);
	ofRect(posX, posY, 1.0, height);
	
	posY	+= 1.0 + height;
	posX	 = mCtrWidth * mValue.g;
	
	//	g
	glColor4f(0.0, 1.0, 0.0, 0.8);
	ofRect(mCtrX, posY, posX, height);
	glColor4f(mGlobals->mHandleColor.r, mGlobals->mHandleColor.g, mGlobals->mHandleColor.b, mGlobals->mHandleColor.a);
	ofRect(posX, posY, 1.0, height);

	posY	+= 1.0 + height;
	posX	 = mCtrWidth * mValue.b;

	//	b
	glColor4f(0.0, 0.0, 1.0, 0.8);
	ofRect(mCtrX, posY, posX, height);
	glColor4f(mGlobals->mHandleColor.r, mGlobals->mHandleColor.g, mGlobals->mHandleColor.b, mGlobals->mHandleColor.a);
	ofRect(posX, posY, 1.0, height);
	
	if(mMode == kofxGui_Color_RGBA)
	{
		posY	+= 1.0 + height;
		posX	 = mCtrWidth * mValue.a;

		//	a
		glColor4f(1.0, 1.0, 1.0, 0.4);
		ofRect(mCtrX, posY, posX, height);
		glColor4f(mGlobals->mHandleColor.r, mGlobals->mHandleColor.g, mGlobals->mHandleColor.b, mGlobals->mHandleColor.a);
		ofRect(posX, posY, 1.0, height);
	}
	
	ofNoFill();
	
	//	frame
	glColor4f(mGlobals->mFrameColor.r, mGlobals->mFrameColor.g, mGlobals->mFrameColor.b, mGlobals->mFrameColor.a);
	ofRect(mCtrX, mCtrY, mCtrWidth, mCtrHeight);
	
	glPopMatrix();
}
예제 #7
0
void ofxGuiColor::draw()
{
	glPushMatrix();
	
	glTranslatef(mObjX, mObjY, 0.0f);
	
	if(mParamName != "")
		drawParamString(0.0, 0.0, mParamName + ": " + mValue.toString(mDisplay), false);
	
	ofFill();
	
	//	background
	glColor4f(mGlobals->mCoverColor.r, mGlobals->mCoverColor.g, mGlobals->mCoverColor.b, mGlobals->mCoverColor.a);
	ofRect(mCtrX, mCtrY, mCtrWidth, mCtrHeight);

	float	height	= (mCtrHeight - 2.0 - mSize) / (float)mSize;
	float	posY	= mCtrY + 2.0;
	float	posX	= mCtrWidth * mValue.r;
	
	//	r
	glColor4f(1.0, 0.0, 0.0, 0.8);
	ofRect(mCtrX, posY, posX, height);
	glColor4f(mGlobals->mHandleColor.r, mGlobals->mHandleColor.g, mGlobals->mHandleColor.b, mGlobals->mHandleColor.a);
	ofRect(posX, posY, 1.0, height);
	
	posY	+= 1.0 + height;
	posX	 = mCtrWidth * mValue.g;
	
	//	g
	glColor4f(0.0, 1.0, 0.0, 0.8);
	ofRect(mCtrX, posY, posX, height);
	glColor4f(mGlobals->mHandleColor.r, mGlobals->mHandleColor.g, mGlobals->mHandleColor.b, mGlobals->mHandleColor.a);
	ofRect(posX, posY, 1.0, height);

	posY	+= 1.0 + height;
	posX	 = mCtrWidth * mValue.b;

	//	b
	glColor4f(0.0, 0.0, 1.0, 0.8);
	ofRect(mCtrX, posY, posX, height);
	glColor4f(mGlobals->mHandleColor.r, mGlobals->mHandleColor.g, mGlobals->mHandleColor.b, mGlobals->mHandleColor.a);
	ofRect(posX, posY, 1.0, height);
	
	if(mDisplay == kofxGui_Color_RGBA)
	{
		posY	+= 1.0 + height;
		posX	 = mCtrWidth * mValue.a;

		//	a
		glColor4f(1.0, 1.0, 1.0, 0.4);
		ofRect(mCtrX, posY, posX, height);
		glColor4f(mGlobals->mHandleColor.r, mGlobals->mHandleColor.g, mGlobals->mHandleColor.b, mGlobals->mHandleColor.a);
		ofRect(posX, posY, 1.0, height);
	}
	
	ofNoFill();
	
	//	frame
	glColor4f(mGlobals->mFrameColor.r, mGlobals->mFrameColor.g, mGlobals->mFrameColor.b, mGlobals->mFrameColor.a);
	ofRect(mCtrX, mCtrY, mCtrWidth, mCtrHeight);
	
	glPopMatrix();
}
예제 #8
0
void ofxGuiMatrix::draw()
{
	glPushMatrix();
	
	glTranslatef(mObjX, mObjY, 0.0f);
	
	if(mParamName != "")
		drawParamString(0.0, 0.0, mParamName + ": " + ofToString(mValue), false);
	
	ofFill();
	
	//	background
	glColor4f(mGlobals->mCoverColor.r, mGlobals->mCoverColor.g, mGlobals->mCoverColor.b, mGlobals->mCoverColor.a);
	ofRect(mCtrX, mCtrY, mCtrWidth, mCtrHeight);
	
	ofNoFill();

	//	pads
	glColor4f(mGlobals->mFrameColor.r, mGlobals->mFrameColor.g, mGlobals->mFrameColor.b, mGlobals->mFrameColor.a);
	
	int		s	= mSpacing / 2;
	float	x	= mCtrX + s;
	float	y	= mCtrY + s;
	float	w	= (mCtrWidth - mSpacing) / mXGrid;
	float	h	= (mCtrHeight - mSpacing) / mYGrid;
	
	for(int i = 0; i < mYGrid; i++)
	{
		for(int j = 0; j < mXGrid; j++)
		{
			int index = j + (i * mXGrid);
			
			if((mBuffer[index] & kofxGui_Matrix_Set) == kofxGui_Matrix_Set)
			{
				ofFill();
				glColor4f(mGlobals->mButtonColor.r, mGlobals->mButtonColor.g, mGlobals->mButtonColor.b, mGlobals->mButtonColor.a);
				ofRect(x + s, y + s, w - mSpacing, h - mSpacing);
			}
			
			if((mBuffer[index] & kofxGui_Matrix_Selected) == kofxGui_Matrix_Selected)
			{
				ofNoFill();
				glColor4f(mGlobals->mMatrixColor.r, mGlobals->mMatrixColor.g, mGlobals->mMatrixColor.b, mGlobals->mMatrixColor.a);
				ofRect(x + s, y + s, w - mSpacing, h - mSpacing);
			}
			else if(mValue == index)
			{
				ofNoFill();
				glColor4f(mGlobals->mAxisColor.r, mGlobals->mAxisColor.g, mGlobals->mAxisColor.b, mGlobals->mAxisColor.a);
				ofRect(x + s, y + s, w - mSpacing, h - mSpacing);
			}
			else
			{
				ofNoFill();
				glColor4f(mGlobals->mFrameColor.r, mGlobals->mFrameColor.g, mGlobals->mFrameColor.b, mGlobals->mFrameColor.a);
				ofRect(x + s, y + s, w - mSpacing, h - mSpacing);
			}
			
			x += w;
		}
		
		y += h;
		x  = mCtrX + s;
	}
		
	//	frame
	glColor4f(mGlobals->mFrameColor.r, mGlobals->mFrameColor.g, mGlobals->mFrameColor.b, mGlobals->mFrameColor.a);
	ofRect(mCtrX, mCtrY, mCtrWidth, mCtrHeight);
	
	glPopMatrix();
}
예제 #9
0
void ofxGuiPoints::draw()
{
	glPushMatrix();

		glTranslatef(mObjX, mObjY, 0.0f);

		if(mParamName != "")
			drawParamString(0.0, 0.0, mParamName + ": " + pointToString(mList.activePoint != -1 ? mOutVal : mValue, mDisplay), false);

		ofxPoint2f	p	= fractionToLocal(valueToFraction(mValue));

		float		x	= mCtrWidth * p.x;
		float		y	= mCtrHeight * p.y;

		float		d	= mGlobals->mPointSize;
		float		r	= d / 2.0;

		ofFill();

		//	background
		glColor4f(mGlobals->mCoverColor.r, mGlobals->mCoverColor.g, mGlobals->mCoverColor.b, mGlobals->mCoverColor.a);
		ofRect(mCtrX, mCtrY, mCtrWidth, mCtrHeight);

		ofNoFill();

		//	lines
		glColor4f(mGlobals->mCurveColor.r, mGlobals->mCurveColor.g, mGlobals->mCurveColor.b, mGlobals->mCurveColor.a);
		/*
		ofBeginShape();
			for(int i = 0; i < mList.points.size(); i++)
			{
				ofxPoint2f p = fractionToLocal(valueToFraction(mList.points.at(i)));
				ofVertex(p.x, p.y);
			}
		ofEndShape(false);
		*/

			GLfloat* verts = new GLfloat[(int)mMaxVal.x*2];
			for (int i = 0; i < mMaxVal.x; i++)	{
						ofxPoint2f p = fractionToLocal(valueToFraction(bezier(mList.points, mList.points.size()-1, (float) i / (float) mMaxVal.x)));

						verts[i*2  ] = p.x;
						verts[i*2+1] = p.y;
			}

			glEnableClientState(GL_VERTEX_ARRAY);
			glVertexPointer(2, GL_FLOAT, 0, verts );
			glDrawArrays( GL_LINE_STRIP, 0, mMaxVal.x);
			glDisableClientState(GL_VERTEX_ARRAY);

		//	x-bar
		glColor4f(mGlobals->mAxisColor.r, mGlobals->mAxisColor.g, mGlobals->mAxisColor.b, mGlobals->mAxisColor.a);
		ofLine(p.x + 0.5, mCtrY, p.x + 0.5, mCtrBottom);

		if(mList.activePoint != -1)
		{
			//	y-bar
			glColor4f(mGlobals->mAxisColor.r, mGlobals->mAxisColor.g, mGlobals->mAxisColor.b,mGlobals->mAxisColor.a);
			ofLine(mCtrX, p.y + 0.5, mCtrRight, p.y + 0.5);
		}

		//	handles
		for(int i = 0; i < mList.points.size(); i++)
		{
			glColor4f(mGlobals->mHandleColor.r, mGlobals->mHandleColor.g, mGlobals->mHandleColor.b, mGlobals->mHandleColor.a);

			ofxPoint2f p	= fractionToLocal(valueToFraction(mList.points.at(i)));
			ofRect(p.x - r, p.y - r, d, d);
		}

		//	frame
		glColor4f(mGlobals->mFrameColor.r, mGlobals->mFrameColor.g, mGlobals->mFrameColor.b, mGlobals->mFrameColor.a);
		ofRect(mCtrX, mCtrY, mCtrWidth, mCtrHeight);

	glPopMatrix();
}
예제 #10
0
void ofxGuiKnob::draw()
{
	glPushMatrix();
	
	glTranslatef(mObjX, mObjY, 0.0);
	
	float	w	= mCtrWidth / 2;
	float	h	= mCtrHeight / 2;
	float	x	= mCtrX + w;
	float	y	= mCtrY + h;
	
	float	v1	= 130.0f;
	float	v2	= 280.0f;
	
	int		resolution = 22;
	
	float	angle, step, cosine, sine, xpos, ypos;
	
	if(mParamName != "")
		drawParamString(x, 0.0, mParamName, true);
	
	ofFill();
	
	//	background
	glColor4f(mGlobals->mCoverColor.r, mGlobals->mCoverColor.g, mGlobals->mCoverColor.b, mGlobals->mCoverColor.a);
	ofEllipse(x, y, w, h);
	
	//	action
	glColor4f(mGlobals->mSliderColor.r, mGlobals->mSliderColor.g, mGlobals->mSliderColor.b, mGlobals->mSliderColor.a);
	
	step	= (DEG_TO_RAD * valueToFraction(mValue) * v2) / (resolution - 1);
	angle	= DEG_TO_RAD * v1;
	
	glBegin(GL_TRIANGLE_STRIP);
		for(int i = 0; i < resolution; i++)
		{
			cosine	= cos(angle);
			sine	= sin(angle);
			
			xpos	= cosine * w;
			ypos	= sine * h;
			
			glVertex2f(x + xpos, y + ypos);
			
			xpos	= cosine * (w - mGlobals->mKnobSize);
			ypos	= sine * (h - mGlobals->mKnobSize);
			
			glVertex2f(x + xpos, y + ypos);
			
			angle += step;
		}
	glEnd();
	
	ofNoFill();
	
	//	handle
	glColor4f(mGlobals->mHandleColor.r, mGlobals->mHandleColor.g, mGlobals->mHandleColor.b, mGlobals->mHandleColor.a);
	
	angle	= DEG_TO_RAD * v1;
	cosine	= cos(angle);
	sine	= sin(angle);
	
	ofLine(x + cosine * w, y + sine * h, x + cosine * (w - mGlobals->mKnobSize), y + sine * (h - mGlobals->mKnobSize));
	
	angle	= DEG_TO_RAD * (v1 + valueToFraction(mValue) * v2);
	cosine	= cos(angle);
	sine	= sin(angle);
	
	ofLine(x + cosine * w, y + sine * h, x + cosine * (w - mGlobals->mKnobSize), y + sine * (h - mGlobals->mKnobSize));
	
	step	= (DEG_TO_RAD * valueToFraction(mValue) * v2) / (resolution - 1);
	angle	= DEG_TO_RAD * v1;
	
	glPushMatrix();	
	glTranslatef(x, y, 0.0);
	ofBeginShape();
	
	for(int i = 0; i < resolution; i++)
	{
		xpos	= cos(angle) * (w - mGlobals->mKnobSize);
		ypos	= sin(angle) * (h - mGlobals->mKnobSize);
		
		ofVertex(xpos, ypos);
		angle += step;
	}
	
	ofEndShape(false);
	glPopMatrix();
	
	//	frame
	glColor4f(mGlobals->mFrameColor.r, mGlobals->mFrameColor.g, mGlobals->mFrameColor.b, mGlobals->mFrameColor.a);
	ofEllipse(x, y, w, h);
	
	drawValueString(x, y, floatToString(mValue, mDisplay));
	
	glPopMatrix();
}