XML Feeds

.

[javascript-dev] Re: Re: Re: Re: screentoworld misunderstanding

gusanomaxlist gusanomaxlist at googlemail.com
Fri Nov 9 16:20:17 MST 2007


sorry, I miswrote it.
I am sure that it's something really stupid but I just can't find it.
The js is attached.
Thanx.
-------------- next part --------------
/*
gusano at altern.org . 11/2007
horizontal slider with label
(this is my first jsui ever...)
adapted from jsui_simpleslider and jsui_textbutton 
*/

autowatch = 1;
inspector =1;

setinletassist(0,"value");
setoutletassist(0,"value");

sketch.default2d();
var mytext = "slider";
var myfont = "Sans Serif";
var myfontsize = 0.6;	// relative to height
var val = 0;
var vbrgb = [0.94,0.94,0.94];
var vfrgb = [0.55,0.76,1];
var vfrgb2 = [0.39,0.39,0.39];
var width = box.rect[2] - box.rect[0];
var height = box.rect[3] - box.rect[1];
var aspect = width/height;
var last_x = 0;


draw();

function draw()
{

	with (sketch) {
		//scale everything to box size
		glmatrixmode("modelview");
		glpushmatrix();
		glscale(aspect,1,1);
		glenable("line_smooth");

		// erase background
		glclearcolor(vbrgb);
		glclear();			

		// draw value
		glcolor(vfrgb);
		shapeslice(1,1);		
		moveto(val-1,0); //relative left	
		plane(val,1); 

		//write text
		glcolor(vfrgb2);
		moveto( 0, 0);
		font(myfont);
		fontsize(myfontsize*height);          
		textalign("center","center");		
		text(mytext);	

		//reset transformation matrix
		glmatrixmode("modelview");
		glpopmatrix();
	}
}

function bang()
{
	draw();
	refresh();
	outlet(0,val);
}

function text(v)
{
	mytext = v.toString();
	bang();
}

function font(v)
{
	myfont = v.toString();
	bang();
}

function fontsize(f)
{
	myfontsize = f;
	bang();
}

function msg_float(v)
{
	val = Math.min(Math.max(0,v),1);
	notifyclients();
	bang();
}

function fsaa(v)
{
	sketch.fsaa = v;
	bang();
}

function frgb(r,g,b)
{
	vfrgb[0] = r/255.;
	vfrgb[1] = g/255.;
	vfrgb[2] = b/255.;
	draw();
	refresh();
}

function frgb2(r,g,b)
{
	vfrgb2[0] = r/255.;
	vfrgb2[1] = g/255.;
	vfrgb2[2] = b/255.;
	draw();
	refresh();
}

function brgb(r,g,b)
{
	vbrgb[0] = r/255.;
	vbrgb[1] = g/255.;
	vbrgb[2] = b/255.;
	draw();
	refresh();
}

function setvalueof(v)
{
	msg_float(v);
}

function getvalueof()
{
	return val;
}

function onclick(x,y,but,cmd,shift,capslock,option,ctrl)
{
	ondrag(x,y,but,cmd,shift,capslock,option,ctrl)
}
onclick.local = 1; //private

function ondrag(x,y,but,cmd,shift,capslock,option,ctrl)
{

	var f,a,v,dx;

	a = sketch.screentoworld(x,y);
	v = (a[0]+aspect)/aspect*0.5;
	dx = v - last_x;

	if (shift) {
	dx *= 0.2; 
	f = v - dx;

	} else {
	f = v;
	}
	msg_float(f); 
	last_x = v;

}
ondrag.local = 1; //private

function onresize(w,h)
{
	draw();
	refresh();
}
onresize.local = 1; //private

function save()
{
	embedmessage("brgb", Math.floor(vbrgb[0]*255), Math.floor(vbrgb[1]*255), Math.floor(vbrgb[2]*255));
	embedmessage("frgb2", Math.floor(vfrgb2[0]*255), Math.floor(vfrgb2[1]*255), Math.floor(vfrgb2[2]*255));
	embedmessage("frgb", Math.floor(vfrgb[0]*255), Math.floor(vfrgb[1]*255), Math.floor(vfrgb[2]*255));
	embedmessage("text", mytext);
	embedmessage("fontsize", myfontsize);
	embedmessage("notifyclients");
}



More information about the javascript-dev mailing list