Rev 15654 | Rev 15657 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 15654 | Rev 15655 | ||
---|---|---|---|
Line 4416... | Line 4416... | ||
4416 | reset(); |
4416 | reset(); |
4417 | break; |
4417 | break; |
4418 | case SLIDER: |
4418 | case SLIDER: |
4419 | /* |
4419 | /* |
4420 | @ slider start_value,end_value,width px,height px,type,label |
4420 | @ slider start_value,end_value,width px,height px,type,label |
4421 | @ type may be: |
4421 | @ type may be: ''x,y,angle`` |
4422 | @ if a slider value display is desired, use for argument ''type``: |
4422 | @ if a slider value display is desired, use for argument ''type``: ''x display``, ''y display``, ''angle radian``, ''angle degree`` |
4423 | @ is the slider is used for animation, add keyword ''anim`` or ''animate`` to ''type``; for now only one animated slider may be used... |
4423 | @ is the slider is used for animation, add keyword ''anim`` or ''animate`` to ''type``; for now only one animated slider may be used... |
4424 | @ default behaviour is: click on an object to use its slider(s)<br/>to use sliders without clicking on an object, use for ''type`` keyword ''active``<br />eg: <code>slider -2*pi,2*pi,300,30,angle degree active,Rotate</code> |
4424 | @ default behaviour is: click on an object to use its slider(s)<br/>to use sliders without clicking on an object, use for ''type`` keyword ''active``<br />eg: <code>slider -2*pi,2*pi,300,30,angle degree active,Rotate</code> |
4425 | @ if a unit (or something like that...) for x/y-value display is needed, use commands ''xunit`` and / or ''yunit`` |
4425 | @ if a unit (or something like that...) for x/y-value display is needed, use commands ''xunit`` and / or ''yunit`` |
4426 | @ if the translation should be performed using a function, use for type: |
4426 | @ if the translation should be performed using a function, use for type: ''x function``, ''y function``<br />use commands ''sliderfunction_x`` and/or ''sliderfunction_y`` before the slider command to define the functions. Example:<code>sliderfunction_x x^2<br />sliderfunction_y y^2<br />slider -5,5,100,100,xy function,Some_Text<br />...some stuff to slide<br />killslider<br />sliderfunction_x x^2-2<br />slider -15,15,100,10,x function,Some_Other_Text<br />...more stuff to slide<br />killslider... etc</code> |
4427 | @ use command ''slider`` before draggable/clickable objects. |
4427 | @ use command ''slider`` before draggable/clickable objects. |
4428 | @ drag and drop may be combined with rotation slider<br />for example an arrow rotated by a slider may be placed anywhere (drag&drop)<br /><code>size 300,300<br />xrange -5,5<br />yrange -5,5<br />grid 1,1,grey<br />linewidth 3<br />drag xy<br />fillcolor orange<br />strokecolor blue<br />slider 0,2*pi,250,30,angle degrees,Rotate arrow<br />arrow 2,2,5,5,8,red</code><br />note: except a combination 'drag' and 'slider' for command 'latex, katex, mathml, html, obabel' |
4428 | @ drag and drop may be combined with rotation slider<br />for example an arrow rotated by a slider may be placed anywhere (drag&drop)<br /><code>size 300,300<br />xrange -5,5<br />yrange -5,5<br />grid 1,1,grey<br />linewidth 3<br />drag xy<br />fillcolor orange<br />strokecolor blue<br />slider 0,2*pi,250,30,angle degrees,Rotate arrow<br />arrow 2,2,5,5,8,red</code><br />note: except a combination 'drag' and 'slider' for command 'latex, katex, mathml, html, obabel' |
4429 | @ no slider for a math function, these can be traced using command ''trace_jscurve some_function_in_x`` |
4429 | @ no slider for a math function, these can be traced using command ''trace_jscurve some_function_in_x`` |
4430 | @ a slider will affect all draggable objects after the ''slider`` command...<br />and can be used to group translate / rotate several objects...<br />until a next ''slider`` or keyword ''killslider`` |
4430 | @ a slider will affect all draggable objects after the ''slider`` command...<br />and can be used to group translate / rotate several objects...<br />until a next ''slider`` or keyword ''killslider`` |
4431 | @ amount of sliders is not limited. |
4431 | @ amount of sliders is not limited. |
4432 | @ a slider can not be set ''snaptogrid`` or other ''snapto*`` : you may always use 'drag xy' in combination with the slider objects |
4432 | @ a slider can not be set ''snaptogrid`` or other ''snapto*`` : you may always use 'drag xy' in combination with the slider objects |
4433 | @ <code>javascript:read_dragdrop();</code> will return an array with ''object_number:slider_value`` |
4433 | @ <code>javascript:read_dragdrop();</code> will return an array with ''object_number:slider_value`` |
4434 | @ type=xy: will produce a 2D ''slider`` [rectangle width x heigh px] in your web page |
- | |
4435 | @ every draggable object may have its own slider (no limit in amount of sliders) |
4434 | @ every draggable object may have its own slider (no limit in amount of sliders) |
4436 | @ label: some slider text |
4435 | @ label: some slider text. LaTeX produced by wims command ''mathmlmath`` is allowed. |
4437 | @ use fillcolor for slider controlkey |
4436 | @ use fillcolor for slider controlkey |
4438 | @ use strokecolor for slider bar |
4437 | @ use strokecolor for slider bar |
4439 | @ use fontfamily / fontcolor to set used fonts |
4438 | @ use fontfamily / fontcolor to set used fonts |
4440 | @ use opacity (only fill opacity will be used) to set transparency |
4439 | @ use opacity (only fill opacity will be used) to set transparency |
4441 | @ the slider canvas will be added to the ''tooltip div``: so incompatible with command tooltip ; setlimits etc |
4440 | @ the slider canvas will be added to the ''tooltip div``: so incompatible with command tooltip ; setlimits etc |
4442 | |
4441 | @%slider_x_y_angle%%size 300,300%xrange -5,5%yrange -5,5%grid 1,1,grey%linewidth 3%fillcolor orange%strokecolor blue%slider 0,2*pi,300,30,angle active degrees,Rotate arrow%arrow 0,0,4.5,0,8,red%killslider%opacity 200,100%slider -2,2,300,30,x active,move blue rectangle%frect -4,4,1,-1,blue%killslider%linewidth 2%slider -2,2,300,30,y,move green rectangle%frect -4,4,1,-1,green |
4443 | @%slider_click%%size 300,300%xrange -6,6%yrange -6,6%grid 1,1,grey%linewidth 2%slider 0,2*pi,300,28,angle degree, name%fillcolor lightgreen%#CLICK ON THE OBJECTS TO ACTIVATE%opacity 255,30%ftriangle 2,2,-2,2,0,0,red%ftriangle -2,2,-2,-2,0,0,blue%ftriangle -2,-2,2,-2,0,0,green%ftriangle 2,-2,2,2,0,0,orange%rotationcenter 0,0%frect -2,2,2,-2,black |
4442 | @%slider_click%%size 300,300%xrange -6,6%yrange -6,6%grid 1,1,grey%linewidth 2%slider 0,2*pi,300,28,angle degree, name%fillcolor lightgreen%#CLICK ON THE OBJECTS TO ACTIVATE%opacity 255,30%ftriangle 2,2,-2,2,0,0,red%ftriangle -2,2,-2,-2,0,0,blue%ftriangle -2,-2,2,-2,0,0,green%ftriangle 2,-2,2,2,0,0,orange%rotationcenter 0,0%frect -2,2,2,-2,black |
4444 | @%slider_active%%size 300,300%xrange -6,6%yrange -6,6%grid 1,1,grey%linewidth 1%slider 0,2*pi,300,28,angle degree active, name%fillcolor lightgreen%opacity 255,30%ftriangle 2,2,-2,2,0,0,red%ftriangle -2,2,-2,-2,0,0,blue%ftriangle -2,-2,2,-2,0,0,green%ftriangle 2,-2,2,2,0,0,orange%rotationcenter 0,0%frect -2,2,2,-2,black |
4443 | @%slider_active%%size 300,300%xrange -6,6%yrange -6,6%grid 1,1,grey%linewidth 1%slider 0,2*pi,300,28,angle degree active, name%fillcolor lightgreen%opacity 255,30%ftriangle 2,2,-2,2,0,0,red%ftriangle -2,2,-2,-2,0,0,blue%ftriangle -2,-2,2,-2,0,0,green%ftriangle 2,-2,2,2,0,0,orange%rotationcenter 0,0%frect -2,2,2,-2,black |
4445 | @%slider_animate%%size 300,300%xrange -6,6%yrange -6,6%grid 1,1,grey%linewidth 1%slider 0,2*pi,300,28,angle anim active, name%fillcolor lightgreen%opacity 255,30%ftriangle 2,2,-2,2,0,0,red%ftriangle -2,2,-2,-2,0,0,blue%ftriangle -2,-2,2,-2,0,0,green%ftriangle 2,-2,2,2,0,0,orange%rotationcenter 0,0%frect -2,2,2,-2,black |
4444 | @%slider_animate%%size 300,300%xrange -6,6%yrange -6,6%grid 1,1,grey%linewidth 1%slider 0,2*pi,300,28,angle anim active, name%fillcolor lightgreen%opacity 255,30%ftriangle 2,2,-2,2,0,0,red%ftriangle -2,2,-2,-2,0,0,blue%ftriangle -2,-2,2,-2,0,0,green%ftriangle 2,-2,2,2,0,0,orange%rotationcenter 0,0%frect -2,2,2,-2,black |
4446 | @%slider_html_image%%size 400,400%xrange -6,6%yrange -6,6%bgcolor white%grid 1,1,grey%linewidth 1%slider 0,2*pi,300,28,angle active degree,%centered%html 0,0,<img src="gifs/domains/sciences/flasks.svg" width="100px" height="100px" /> |
4445 | @%slider_html_image%%size 400,400%xrange -6,6%yrange -6,6%bgcolor white%grid 1,1,grey%linewidth 1%slider 0,2*pi,300,28,angle active degree,%centered%html 0,0,<img src="gifs/domains/sciences/flasks.svg" width="100px" height="100px" /> |
4447 | */ |
4446 | */ |
Line 4450... | Line 4449... | ||
4450 | switch(i){ |
4449 | switch(i){ |
4451 | case 0: double_data[0] = get_real(infile,0);break; /* start value */ |
4450 | case 0: double_data[0] = get_real(infile,0);break; /* start value */ |
4452 | case 1: double_data[1] = get_real(infile,0);break; /* end value */ |
4451 | case 1: double_data[1] = get_real(infile,0);break; /* end value */ |
4453 | case 2: int_data[0] = (int)(get_real(infile,0));break; /* width */ |
4452 | case 2: int_data[0] = (int)(get_real(infile,0));break; /* width */ |
4454 | case 3: int_data[1] = (int)(get_real(infile,0));break; /* height */ |
4453 | case 3: int_data[1] = (int)(get_real(infile,0));break; /* height */ |
4455 | case 4: temp = get_string_argument(infile,0); /* type: |
4454 | case 4: temp = get_string_argument(infile,0); /* type: x,y,angle */ |
4456 | if( strstr(temp,"displ")!=0 || strstr(temp,"deg")!=0 || strstr(temp,"rad")!=0 ){int_data[5] = 1; }else{int_data[5] = 0;} |
4455 | if( strstr(temp,"displ")!=0 || strstr(temp,"deg")!=0 || strstr(temp,"rad")!=0 ){int_data[5] = 1; }else{int_data[5] = 0;} |
4457 | if(strstr(temp,"anim")!= 0){int_data[3] = 1;}else{int_data[3] = 0;} |
4456 | if(strstr(temp,"anim")!= 0){int_data[3] = 1;}else{int_data[3] = 0;} |
4458 | if(strstr(temp,"active")!= 0){onclick = 4;}else{onclick=0;} |
4457 | if(strstr(temp,"active")!= 0){onclick = 4;}else{onclick=0;} |
4459 | if(strstr(temp,"angle")!= 0){slider_type="R";if( strstr(temp,"rad")!= 0){int_data[2] = 3;}if( strstr(temp,"deg")!= 0){int_data[2] = 4;}} |
4458 | if(strstr(temp,"angle")!= 0){slider_type="R";if( strstr(temp,"rad")!= 0){int_data[2] = 3;}if( strstr(temp,"deg")!= 0){int_data[2] = 4;}} |
4460 | else |
4459 | else |
Line 4462... | Line 4461... | ||
4462 | else |
4461 | else |
4463 | if(strstr(temp,"x") != 0){slider_type = "X";if( strstr(temp,"disp")!= 0){int_data[2] = 1;}} |
4462 | if(strstr(temp,"x") != 0){slider_type = "X";if( strstr(temp,"disp")!= 0){int_data[2] = 1;}} |
4464 | else |
4463 | else |
4465 | if(strstr(temp,"y") != 0){slider_type = "Y";if( strstr(temp,"disp")!= 0){int_data[2] = 2;}} |
4464 | if(strstr(temp,"y") != 0){slider_type = "Y";if( strstr(temp,"disp")!= 0){int_data[2] = 2;}} |
4466 | else |
4465 | else |
4467 | canvas_error("slider can be of type: |
4466 | canvas_error("slider can be of type: x,y,angle,fun_x:fun_y"); |
4468 | break; |
4467 | break; |
4469 | case 5: temp = get_string_argument(infile,1); |
4468 | case 5: temp = get_string_argument(infile,1); if( strstr(temp,"\"") != 0 ){ temp = str_replace(temp,"\""," ");} |
- | 4469 | /* slider label : in case of latex/mathmlmath we need to remove the extra " */ |
|
- | 4470 | break; |
|
4470 | } |
4471 | } |
4471 | } |
4472 | } |
4472 | 4473 | ||
4473 | if(use_slider == -1 ){ /* add once */ |
4474 | if(use_slider == -1 ){ /* add once */ |
4474 | add_slider(int_data[3]); |
4475 | add_slider(int_data[3]); |