Rev 18218 | Rev 18556 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 18218 | Rev 18553 | ||
---|---|---|---|
Line 12... | Line 12... | ||
12 | int type; |
12 | int type; |
13 | for(i = 0 ; i < MAX_JS_FUNCTIONS; i++){ |
13 | for(i = 0 ; i < MAX_JS_FUNCTIONS; i++){ |
14 | /* |
14 | /* |
15 | fprintf(stdout,"checking js_function[%d] = %d<br>",i,js_function[i]); |
15 | fprintf(stdout,"checking js_function[%d] = %d<br>",i,js_function[i]); |
16 | */ |
16 | */ |
17 | if( js_function[i] == 1){ |
17 | if( js_function[i] == 1){ |
18 | switch(i){ |
18 | switch(i){ |
19 | - | ||
20 | case JS_ARROWHEAD: |
19 | case JS_ARROWHEAD: |
21 | /* draw an arrowhead on object ; arrowhead on (x:y) from direction (x0:y0) */ |
20 | /* draw an arrowhead on object ; arrowhead on (x:y) from direction (x0:y0) */ |
22 | fprintf(js_include_file,"\n/* draw an arrowhead on object ; arrowhead on (x:y) from direction (x0:y0) */\ |
21 | fprintf(js_include_file,"\n/* draw an arrowhead on object ; arrowhead on (x:y) from direction (x0:y0) */\ |
23 | function draw_arrowhead(x,y,x0,y0,ctx){\ |
22 | function draw_arrowhead(x,y,x0,y0,ctx){\ |
24 | var angle = Math.atan2(x - x0,y - y0) + Math.PI;\ |
23 | var angle = Math.atan2(x - x0,y - y0) + Math.PI;\ |
25 | var pie = Math.PI/6;\ |
24 | var pie = Math.PI/6;\ |
26 | ctx.save();\ |
25 | ctx.save();\ |
27 | ctx.fillStyle=ctx.strokeStyle;\ |
26 | ctx.fillStyle=ctx.strokeStyle;\ |
Line 33... | Line 32... | ||
33 | ctx.closePath();\ |
32 | ctx.closePath();\ |
34 | ctx.stroke();\ |
33 | ctx.stroke();\ |
35 | ctx.fill();\ |
34 | ctx.fill();\ |
36 | ctx.restore();\ |
35 | ctx.restore();\ |
37 | };"); |
36 | };"); |
38 | break; |
37 | break; |
39 | case JS_LOAD_IMAGE: |
38 | case JS_LOAD_IMAGE: |
40 | fprintf(js_include_file,"\n/* get_image_from_url */\ |
39 | fprintf(js_include_file,"\n/* get_image_from_url */\ |
41 | var image_cnt = 0;\ |
40 | var image_cnt = 0;\ |
42 | if( typeof(image_patterns) !== 'object'){var image_patterns = [];};\ |
41 | if( typeof(image_patterns) !== 'object'){var image_patterns = [];};\ |
43 | var get_image_from_url = function(url){\ |
42 | var get_image_from_url = function(url){\ |
44 | var idx = Math.ceil(1000*(Math.random()));\ |
43 | var idx = Math.ceil(1000*(Math.random()));\ |
45 | var canvas = create_canvas%d(idx,xsize,ysize);\ |
44 | var canvas = create_canvas%d(idx,xsize,ysize);\ |
Line 50... | Line 49... | ||
50 | img.onload = function(){\ |
49 | img.onload = function(){\ |
51 | var pat = ctx.createPattern(img,\"repeat\");\ |
50 | var pat = ctx.createPattern(img,\"repeat\");\ |
52 | image_patterns.push(pat);\ |
51 | image_patterns.push(pat);\ |
53 | };\ |
52 | };\ |
54 | };",canvas_root_id); |
53 | };",canvas_root_id); |
55 | break; |
54 | break; |
56 | - | ||
57 | case JS_SAFE_EVAL: |
55 | case JS_SAFE_EVAL: |
58 | /* to avoid easy js-code injection...but is it a real problem ? */ |
56 | /* to avoid easy js-code injection...but is it a real problem ? */ |
59 | fprintf(js_include_file," \n/* add safe eval function */function safe_eval(exp){\ |
57 | fprintf(js_include_file," \n/* add safe eval function */function safe_eval(exp){\ |
60 | exp = exp.replace(/pi/g,'3.14159');\ |
58 | exp = exp.replace(/pi/g,'3.14159');\ |
61 | if(exp.indexOf('^') != -1){\ |
59 | if(exp.indexOf('^') != -1){\ |
62 | exp = exp.replace(/[a-zA-Z]/g,' ');\ |
60 | exp = exp.replace(/[a-zA-Z]/g,' ');\ |
63 | exp = exp.replace(/\\*10\\^-/g,'e-');\ |
61 | exp = exp.replace(/\\*10\\^-/g,'e-');\ |
64 | exp = exp.replace(/\\*10\\^/g,'e+');\ |
62 | exp = exp.replace(/\\*10\\^/g,'e+');\ |
Line 82... | Line 80... | ||
82 | } else {\ |
80 | } else {\ |
83 | try{ exp = eval(exp); } catch(e){alert(\"Invalid arithmetic expression\"); exp = null;};\ |
81 | try{ exp = eval(exp); } catch(e){alert(\"Invalid arithmetic expression\"); exp = null;};\ |
84 | };\ |
82 | };\ |
85 | return exp;\ |
83 | return exp;\ |
86 | };"); |
84 | };"); |
87 | break; |
85 | break; |
88 | - | ||
89 | case JS_RAWMATH: |
86 | case JS_RAWMATH: |
90 | fprintf(js_include_file,"\n/* add_rawmath() */\ |
87 | fprintf(js_include_file,"\n/* add_rawmath() */\ |
91 | function rawmath(i){\ |
88 | function rawmath(i){\ |
92 | i=i.toLowerCase();\ |
89 | i=i.toLowerCase();\ |
93 | i=i.replace(/\\ /g,\"\");i=i.replace(/\\*\\*/g,\"^\");\ |
90 | i=i.replace(/\\ /g,\"\");i=i.replace(/\\*\\*/g,\"^\");\ |
94 | if(i.indexOf(\"e+\")!=-1){i=i.replace(\"e+\",\"*10^\");};\ |
91 | if(i.indexOf(\"e+\")!=-1){i=i.replace(\"e+\",\"*10^\");};\ |
95 | if(i.indexOf(\"e-\")!=-1){i=i.replace(\"e-\",\"*10^-\");};\ |
92 | if(i.indexOf(\"e-\")!=-1){i=i.replace(\"e-\",\"*10^-\");};\ |
Line 125... | Line 122... | ||
125 | };\ |
122 | };\ |
126 | i = i.replace(/\\)\\(/g,\")*(\");\ |
123 | i = i.replace(/\\)\\(/g,\")*(\");\ |
127 | };\ |
124 | };\ |
128 | return i;\ |
125 | return i;\ |
129 | };"); |
126 | };"); |
130 | break; |
127 | break; |
131 | - | ||
132 | case JS_PLOT: |
128 | case JS_PLOT: |
133 | fprintf(js_include_file,"\n/* jsplot() */\ |
129 | fprintf(js_include_file,"\n/* jsplot() */\ |
134 | var x_anim_points;var y_anim_points;var animation_steps;var animation_funs;\ |
130 | var x_anim_points;var y_anim_points;var animation_steps;var animation_funs;\ |
135 | function jsplot(canvas_type,funs,linewidth,color,opacity,use_dashed,dashtype0,dashtype1,trange,plotsteps,use_parametric,use_animate,origin){\ |
131 | function jsplot(canvas_type,funs,linewidth,color,opacity,use_dashed,dashtype0,dashtype1,trange,plotsteps,use_parametric,use_animate,origin){\ |
136 | var obj = create_canvas%d(canvas_type,xsize,ysize);\ |
132 | var obj = create_canvas%d(canvas_type,xsize,ysize);\ |
137 | var ctx = obj.getContext(\"2d\");\ |
133 | var ctx = obj.getContext(\"2d\");\ |
138 | ctx.clearRect(0,0,xsize,ysize);\ |
134 | ctx.clearRect(0,0,xsize,ysize);\ |
Line 202... | Line 198... | ||
202 | ctx.stroke();\ |
198 | ctx.stroke();\ |
203 | };\ |
199 | };\ |
204 | };\ |
200 | };\ |
205 | if( use_animate == 1 ){animation_steps = idx;animate_this();}\ |
201 | if( use_animate == 1 ){animation_steps = idx;animate_this();}\ |
206 | };",canvas_root_id); |
202 | };",canvas_root_id); |
207 | break; |
203 | break; |
208 | - | ||
209 | case JS_MATH: |
204 | case JS_MATH: |
210 | /* 5/2024 added exp -> e^ -> (2.718281828459045)^ */ |
205 | /* 5/2024 added exp -> e^ -> (2.718281828459045)^ */ |
211 | fprintf(js_include_file,"\n/* to_js_math() */\ |
206 | fprintf(js_include_file,"\n/* to_js_math() */\ |
212 | function to_js_math(math_fun){\ |
207 | function to_js_math(math_fun){\ |
213 | if(math_fun == null){return;};\ |
208 | if(math_fun == null){return;};\ |
214 | var infun=[\"exp\",\"sqrt\",\"^\",\"asin\",\"acos\",\"atan\",\"log\",\"pi\",\"abs\",\"sin\",\"cos\",\"tan\",\"e\"];\ |
209 | var infun=[\"exp\",\"sqrt\",\"^\",\"asin\",\"acos\",\"atan\",\"log\",\"pi\",\"abs\",\"sin\",\"cos\",\"tan\",\"e\"];\ |
215 | var outfun=[\"(2.718281828459045)^\",\"Math.sqrt\",\"Math.pow\",\"Math.asin\",\"Math.acos\",\"Math.atan\",\"Math.log\",\"(3.14159265358979)\",\"Math.abs\",\"Math.sin\",\"Math.cos\",\"Math.tan\",\"(2.718281828459045)\"];\ |
210 | var outfun=[\"(2.718281828459045)^\",\"Math.sqrt\",\"Math.pow\",\"Math.asin\",\"Math.acos\",\"Math.atan\",\"Math.log\",\"(3.14159265358979)\",\"Math.abs\",\"Math.sin\",\"Math.cos\",\"Math.tan\",\"(2.718281828459045)\"];\ |
216 | var len = infun.length;var in_fun;var In_Fun;var out_fun;var w_cnt;\ |
211 | var len = infun.length;var in_fun;var In_Fun;var out_fun;var w_cnt;\ |
Line 246... | Line 241... | ||
246 | };\ |
241 | };\ |
247 | };\ |
242 | };\ |
248 | };\ |
243 | };\ |
249 | return math_fun;\ |
244 | return math_fun;\ |
250 | };"); |
245 | };"); |
251 | break; |
246 | break; |
252 | - | ||
253 | case INTERACTIVE: |
247 | case INTERACTIVE: |
254 | /* 1/8/2022 NOTE : getMouse() code should run at maximum speed and not be bothered with all kind of fancy tests !! |
248 | /* 1/8/2022 NOTE : getMouse() code should run at maximum speed and not be bothered with all kind of fancy tests !! |
255 | 1/8/2022 : latest improvements related to 'reponsiveness' will fatally lockup browsers in the pixel-by-pixel filling...at least in userdraw clickfill...*/ |
249 | 1/8/2022 : latest improvements related to 'reponsiveness' will fatally lockup browsers in the pixel-by-pixel filling...at least in userdraw clickfill...*/ |
256 | fprintf(js_include_file,"\n/* add mouse support */\ |
250 | fprintf(js_include_file,"\n/* add mouse support */\ |
257 | var isTouch = (('ontouchstart' in window) || (navigator.msMaxTouchPoints > 0));\ |
251 | var isTouch = (('ontouchstart' in window) || (navigator.msMaxTouchPoints > 0));\ |
258 | var getMouse = function(e, element){\ |
252 | var getMouse = function(e, element){\ |
259 | var mx,my;var offsetX = 0,offsetY = 0;\ |
253 | var mx,my;var offsetX = 0,offsetY = 0;\ |
260 | while( ( element = element.offsetParent) ){\ |
254 | while( ( element = element.offsetParent) ){\ |
261 | offsetX += element.offsetLeft;offsetY += element.offsetTop;\ |
255 | offsetX += element.offsetLeft;offsetY += element.offsetTop;\ |
Line 281... | Line 275... | ||
281 | mx = (mx * xsize / canvas_div.offsetWidth);\ |
275 | mx = (mx * xsize / canvas_div.offsetWidth);\ |
282 | /*console.log('mx after='+mx);*/\ |
276 | /*console.log('mx after='+mx);*/\ |
283 | my = (my * ysize / canvas_div.offsetHeight);\ |
277 | my = (my * ysize / canvas_div.offsetHeight);\ |
284 | return {x: mx, y: my};};\ |
278 | return {x: mx, y: my};};\ |
285 | };"); |
279 | };"); |
286 | break; |
280 | break; |
287 | case USERDRAW_AND_ZOOM: |
281 | case USERDRAW_AND_ZOOM: |
288 | fprintf(js_include_file,"\n/* add zoom support for multidraw */\ |
282 | fprintf(js_include_file,"\n/* add zoom support for multidraw */\ |
289 | function recalculate_userdraw(xmin0,ymin0,xmax0,ymax0){\ |
283 | function recalculate_userdraw(xmin0,ymin0,xmax0,ymax0){\ |
290 | function x_zoom(px){\ |
284 | function x_zoom(px){\ |
291 | var x = parseFloat(px*(xmax0 - xmin0)/xsize + xmin0);\ |
285 | var x = parseFloat(px*(xmax0 - xmin0)/xsize + xmin0);\ |
292 | return parseFloat(x*xsize/(xmax - xmin) - xsize*xmin/(xmax - xmin));\ |
286 | return parseFloat(x*xsize/(xmax - xmin) - xsize*xmin/(xmax - xmin));\ |
293 | };\ |
287 | };\ |
Line 644... | Line 638... | ||
644 | ctx.strokeStyle=\"rgba(\"+color+\",0.01)\";\ |
638 | ctx.strokeStyle=\"rgba(\"+color+\",0.01)\";\ |
645 | for( x = 0 ; x <= xsize ; x = x + dx ){\ |
639 | for( x = 0 ; x <= xsize ; x = x + dx ){\ |
646 | ctx.beginPath();\ |
640 | ctx.beginPath();\ |
647 | ctx.moveTo(x,0);\ |
641 | ctx.moveTo(x,0);\ |
648 | ctx.lineTo(x,ysize);\ |
642 | ctx.lineTo(x,ysize);\ |
649 | ctx.closePath();\ |
643 | ctx.closePath();\ |
650 | ctx.stroke();\ |
644 | ctx.stroke();\ |
651 | };\ |
645 | };\ |
652 | for( y = 0 ; y <= ysize; y = y + dy ){\ |
646 | for( y = 0 ; y <= ysize; y = y + dy ){\ |
653 | ctx.beginPath();\ |
647 | ctx.beginPath();\ |
654 | ctx.moveTo(0,y);\ |
648 | ctx.moveTo(0,y);\ |
655 | ctx.lineTo(xsize,y);\ |
649 | ctx.lineTo(xsize,y);\ |
Line 688... | Line 682... | ||
688 | } else {\ |
682 | } else {\ |
689 | setTimeout(function(){ filltoborder( x0,y0,'red','red',canvas_type,true,ctx); },500);\ |
683 | setTimeout(function(){ filltoborder( x0,y0,'red','red',canvas_type,true,ctx); },500);\ |
690 | };\ |
684 | };\ |
691 | };\ |
685 | };\ |
692 | };",canvas_root_id,canvas_root_id); |
686 | };",canvas_root_id,canvas_root_id); |
693 | break; |
687 | break; |
694 | 688 | ||
695 | case DRAW_DOTFILL:/* not used for userdraw */ |
689 | case DRAW_DOTFILL:/* not used for userdraw */ |
696 | fprintf(js_include_file,"\n/* draw dotfill */\ |
690 | fprintf(js_include_file,"\n/* draw dotfill */\ |
697 | var dot_fill_pattern;\ |
691 | var dot_fill_pattern;\ |
698 | function draw_dotfill(canvas_type,x0,y0,dx,dy,radius,color,opacity,xsize,ysize,use_userdraw){\ |
692 | function draw_dotfill(canvas_type,x0,y0,dx,dy,radius,color,opacity,xsize,ysize,use_userdraw){\ |
699 | if( dx == 0 || dy == 0 ){alert(\"increment is zero !!! \");return;};\ |
693 | if( dx == 0 || dy == 0 ){alert(\"increment is zero !!! \");return;};\ |
700 | var fc = %d+canvas_type;\ |
694 | var fc = %d+canvas_type;\ |
701 | var obj = create_canvas%d(fc,xsize,ysize);\ |
695 | var obj = create_canvas%d(fc,xsize,ysize);\ |
Line 711... | Line 705... | ||
711 | ctx.beginPath();\ |
705 | ctx.beginPath();\ |
712 | ctx.arc(x,y,radius,0,2*Math.PI,false);\ |
706 | ctx.arc(x,y,radius,0,2*Math.PI,false);\ |
713 | ctx.closePath();\ |
707 | ctx.closePath();\ |
714 | ctx.fill();\ |
708 | ctx.fill();\ |
715 | };\ |
709 | };\ |
716 | };\ |
710 | };\ |
717 | if( use_userdraw ){\ |
711 | if( use_userdraw ){\ |
718 | dot_fill_pattern = ctx;\ |
712 | dot_fill_pattern = ctx;\ |
719 | } else {\ |
713 | } else {\ |
720 | setTimeout(function(){ filltoborder( x0,y0,color,color,canvas_type,true,ctx); },500);\ |
714 | setTimeout(function(){ filltoborder( x0,y0,color,color,canvas_type,true,ctx); },500);\ |
721 | };\ |
715 | };\ |
722 | return;\ |
716 | return;\ |
723 | };",canvas_root_id,canvas_root_id); |
717 | };",canvas_root_id,canvas_root_id); |
724 | break; |
718 | break; |
725 | - | ||
726 | case DRAW_SUBSUP:/* Uses 'script-size for numbers and for sub & sup strings */ |
719 | case DRAW_SUBSUP:/* Uses 'script-size for numbers and for sub & sup strings */ |
727 | /* use_offset |
720 | /* use_offset |
728 | 0=none; |
721 | 0=none; |
729 | 1=yoffset |
722 | 1=yoffset |
730 | 2=xoffset |
723 | 2=xoffset |
731 | 3=xyoffset |
724 | 3=xyoffset |
732 | 4=centered |
725 | 4=centered |
733 | */ |
726 | */ |
734 | fprintf(js_include_file,"\n/* draw sub sup imitation in canvas */\ |
727 | fprintf(js_include_file,"\n/* draw sub sup imitation in canvas */\ |
735 | function draw_subsup(ctx,x,y,txt,use_offset){\ |
728 | function draw_subsup(ctx,x,y,txt,use_offset){\ |
736 | var C;var c;var len = txt.length;var baseline = 'middle';var space = 0;ctx.save();var subsup=0;\ |
729 | var C;var c;var len = txt.length;var baseline = 'middle';var space = 0;ctx.save();var subsup=0;\ |
737 | var m = 0.4*(ctx.measureText(txt).width);\ |
730 | var m = 0.4*(ctx.measureText(txt).width);\ |
738 | var h = ctx.measureText('M').width;\ |
731 | var h = ctx.measureText('M').width;\ |
739 | switch(use_offset){\ |
732 | switch(use_offset){\ |
Line 768... | Line 761... | ||
768 | };\ |
761 | };\ |
769 | ctx.stroke();\ |
762 | ctx.stroke();\ |
770 | ctx.restore();\ |
763 | ctx.restore();\ |
771 | return;\ |
764 | return;\ |
772 | };"); |
765 | };"); |
773 | break; |
766 | break; |
774 | - | ||
775 | case DRAW_TEXTFILL:/* not used for userdraw */ |
767 | case DRAW_TEXTFILL:/* not used for userdraw */ |
776 | fprintf(js_include_file,"\n/* draw textfill */\ |
768 | fprintf(js_include_file,"\n/* draw textfill */\ |
777 | var text_fill_pattern;\ |
769 | var text_fill_pattern;\ |
778 | function draw_textfill(canvas_type,x0,y0,color,fontfamily,xsize,ysize,txt,use_userdraw){\ |
770 | function draw_textfill(canvas_type,x0,y0,color,fontfamily,xsize,ysize,txt,use_userdraw){\ |
779 | var fc = %d+canvas_type;\ |
771 | var fc = %d+canvas_type;\ |
780 | var obj = create_canvas%d(fc,xsize,ysize);\ |
772 | var obj = create_canvas%d(fc,xsize,ysize);\ |
781 | var ctx = obj.getContext('2d');\ |
773 | var ctx = obj.getContext('2d');\ |
Line 789... | Line 781... | ||
789 | ctx.strokeStyle=\"rgba(\"+color+\",0.01)\";\ |
781 | ctx.strokeStyle=\"rgba(\"+color+\",0.01)\";\ |
790 | for(var x = 0 ; x <= xsize ; x = x + dx ){\ |
782 | for(var x = 0 ; x <= xsize ; x = x + dx ){\ |
791 | for(var y = 0 ; y <= ysize ; y = y + dy ){\ |
783 | for(var y = 0 ; y <= ysize ; y = y + dy ){\ |
792 | ctx.fillText(txt, x, y);\ |
784 | ctx.fillText(txt, x, y);\ |
793 | };\ |
785 | };\ |
794 | };\ |
786 | };\ |
795 | if( use_userdraw ){\ |
787 | if( use_userdraw ){\ |
796 | text_fill_pattern = ctx;\ |
788 | text_fill_pattern = ctx;\ |
797 | }\ |
789 | }\ |
798 | else\ |
790 | else\ |
799 | {\ |
791 | {\ |
800 | setTimeout(function(){ filltoborder( x0,y0,color,color,canvas_type,true,ctx); },500);\ |
792 | setTimeout(function(){ filltoborder( x0,y0,color,color,canvas_type,true,ctx); },500);\ |
801 | };\ |
793 | };\ |
802 | return;};",canvas_root_id,canvas_root_id); |
794 | return;};",canvas_root_id,canvas_root_id); |
803 | break; |
795 | break; |
804 | - | ||
805 | case DRAW_DIAMONDFILL:/* not used for userdraw */ |
796 | case DRAW_DIAMONDFILL:/* not used for userdraw */ |
806 | fprintf(js_include_file,"\n/* draw hatch fill */\ |
797 | fprintf(js_include_file,"\n/* draw hatch fill */\ |
807 | var diamond_fill_pattern;\ |
798 | var diamond_fill_pattern;\ |
808 | function draw_diamondfill(canvas_type,x0,y0,dx,dy,linewidth,color,stroke_opacity,xsize,ysize,use_userdraw){\ |
799 | function draw_diamondfill(canvas_type,x0,y0,dx,dy,linewidth,color,stroke_opacity,xsize,ysize,use_userdraw){\ |
809 | if( dx == 0 || dy == 0 ){alert(\"increment is zero !!! \");return;};\ |
800 | if( dx == 0 || dy == 0 ){alert(\"increment is zero !!! \");return;};\ |
810 | var fc = %d+canvas_type;\ |
801 | var fc = %d+canvas_type;\ |
811 | var obj = create_canvas%d(fc,xsize,ysize);\ |
802 | var obj = create_canvas%d(fc,xsize,ysize);\ |
Line 851... | Line 842... | ||
851 | {\ |
842 | {\ |
852 | setTimeout(function(){ filltoborder( x0,y0,color,color,canvas_type,true,ctx); },500);\ |
843 | setTimeout(function(){ filltoborder( x0,y0,color,color,canvas_type,true,ctx); },500);\ |
853 | };\ |
844 | };\ |
854 | return;\ |
845 | return;\ |
855 | }",canvas_root_id,canvas_root_id); |
846 | }",canvas_root_id,canvas_root_id); |
856 | break; |
847 | break; |
857 | - | ||
858 | case DRAW_HATCHFILL:/* not used for userdraw */ |
848 | case DRAW_HATCHFILL:/* not used for userdraw */ |
859 | fprintf(js_include_file,"\n/* draw hatch fill */\ |
849 | fprintf(js_include_file,"\n/* draw hatch fill */\ |
860 | var hatch_fill_pattern;\ |
850 | var hatch_fill_pattern;\ |
861 | function draw_hatchfill(canvas_type,x0,y0,dx,dy,linewidth,color,stroke_opacity,xsize,ysize,use_userdraw){\ |
851 | function draw_hatchfill(canvas_type,x0,y0,dx,dy,linewidth,color,stroke_opacity,xsize,ysize,use_userdraw){\ |
862 | if( dx == 0 || dy == 0 ){alert(\"increment is zero !!! \");return;};\ |
852 | if( dx == 0 || dy == 0 ){alert(\"increment is zero !!! \");return;};\ |
863 | var fc = %d+canvas_type;\ |
853 | var fc = %d+canvas_type;\ |
864 | var obj = create_canvas%d(fc,xsize,ysize);\ |
854 | var obj = create_canvas%d(fc,xsize,ysize);\ |
Line 890... | Line 880... | ||
890 | else\ |
880 | else\ |
891 | {\ |
881 | {\ |
892 | setTimeout(function(){ filltoborder( x0,y0,color,color,canvas_type,true,ctx); },500);\ |
882 | setTimeout(function(){ filltoborder( x0,y0,color,color,canvas_type,true,ctx); },500);\ |
893 | };\ |
883 | };\ |
894 | return;};",canvas_root_id,canvas_root_id); |
884 | return;};",canvas_root_id,canvas_root_id); |
895 | break; |
885 | break; |
896 | 886 | ||
897 | case DRAW_LINES:/* used for js-tracing */ |
887 | case DRAW_LINES:/* used for js-tracing */ |
898 | fprintf(js_include_file,"\n/* draw lines */\ |
888 | fprintf(js_include_file,"\n/* draw lines */\ |
899 | function calc_line(x1,x2,y1,y2){\ |
889 | function calc_line(x1,x2,y1,y2){\ |
900 | var marge = 2;\ |
890 | var marge = 2;\ |
901 | if(x1 < x2+marge && x1>x2-marge){\ |
891 | if(x1 < x2+marge && x1>x2-marge){\ |
902 | return [x1,0,x1,ysize];\ |
892 | return [x1,0,x1,ysize];\ |
903 | };\ |
893 | };\ |
Line 924... | Line 914... | ||
924 | ctx.stroke();\ |
914 | ctx.stroke();\ |
925 | }\ |
915 | }\ |
926 | ctx.restore();\ |
916 | ctx.restore();\ |
927 | return;\ |
917 | return;\ |
928 | };"); |
918 | };"); |
929 | break; |
919 | break; |
930 | 920 | ||
931 | case DRAW_CROSSHAIRS:/* used for tracing */ |
921 | case DRAW_CROSSHAIRS:/* used for tracing */ |
932 | fprintf(js_include_file,"\n/* draw crosshairs */\ |
922 | fprintf(js_include_file,"\n/* draw crosshairs */\ |
933 | var draw_crosshairs = function(ctx,x_points,y_points,line_width,crosshair_size,stroke_color,stroke_opacity,use_rotate,angle){\ |
923 | var draw_crosshairs = function(ctx,x_points,y_points,line_width,crosshair_size,stroke_color,stroke_opacity,use_rotate,angle){\ |
934 | ctx.save();\ |
924 | ctx.save();\ |
935 | if(use_rotate == 1 ){ctx.rotate(angle*Math.PI/180);}\ |
925 | if(use_rotate == 1 ){ctx.rotate(angle*Math.PI/180);}\ |
936 | ctx.lineWidth = line_width;\ |
926 | ctx.lineWidth = line_width;\ |
937 | ctx.strokeStyle=\"rgba(\"+stroke_color+\",\"+stroke_opacity+\")\";\ |
927 | ctx.strokeStyle=\"rgba(\"+stroke_color+\",\"+stroke_opacity+\")\";\ |
Line 939... | Line 929... | ||
939 | for(var p = 0 ; p < x_points.length ; p++ ){\ |
929 | for(var p = 0 ; p < x_points.length ; p++ ){\ |
940 | x1 = x_points[p] - crosshair_size;\ |
930 | x1 = x_points[p] - crosshair_size;\ |
941 | x2 = x_points[p] + crosshair_size;\ |
931 | x2 = x_points[p] + crosshair_size;\ |
942 | y1 = y_points[p] - crosshair_size;\ |
932 | y1 = y_points[p] - crosshair_size;\ |
943 | y2 = y_points[p] + crosshair_size;\ |
933 | y2 = y_points[p] + crosshair_size;\ |
944 | ctx.beginPath();\ |
934 | ctx.beginPath();\ |
945 | ctx.moveTo(x1,y1);\ |
935 | ctx.moveTo(x1,y1);\ |
946 | ctx.lineTo(x2,y2);\ |
936 | ctx.lineTo(x2,y2);\ |
947 | ctx.closePath();\ |
937 | ctx.closePath();\ |
948 | ctx.stroke();\ |
938 | ctx.stroke();\ |
949 | ctx.beginPath();\ |
939 | ctx.beginPath();\ |
950 | ctx.moveTo(x2,y1);\ |
940 | ctx.moveTo(x2,y1);\ |
951 | ctx.lineTo(x1,y2);\ |
941 | ctx.lineTo(x1,y2);\ |
952 | ctx.closePath();\ |
942 | ctx.closePath();\ |
953 | ctx.stroke();\ |
943 | ctx.stroke();\ |
954 | }\ |
944 | }\ |
955 | ctx.restore();\ |
945 | ctx.restore();\ |
956 | return;\ |
946 | return;\ |
957 | };"); |
947 | };"); |
958 | break; |
948 | break; |
959 | - | ||
960 | case DRAW_VIDEO:/* not used for userdraw */ |
949 | case DRAW_VIDEO:/* not used for userdraw */ |
961 | fprintf(js_include_file,"\n/* draw video */\ |
950 | fprintf(js_include_file,"\n/* draw video */\ |
962 | var draw_video = function(canvas_root_id,x,y,w,h,URL){\ |
951 | var draw_video = function(canvas_root_id,x,y,w,h,URL){\ |
963 | var canvas_div = document.getElementById(\"canvas_div\"+canvas_root_id);\ |
952 | var canvas_div = document.getElementById(\"canvas_div\"+canvas_root_id);\ |
964 | var video_div = document.createElement(\"div\");\ |
953 | var video_div = document.createElement(\"div\");\ |
965 | canvas_div.appendChild(video_div);\ |
954 | canvas_div.appendChild(video_div);\ |
966 | video_div.style.position = \"absolute\";\ |
955 | video_div.style.position = \"absolute\";\ |
Line 979... | Line 968... | ||
979 | src.src = URL;\ |
968 | src.src = URL;\ |
980 | video.appendChild(src);\ |
969 | video.appendChild(src);\ |
981 | video.load();\ |
970 | video.load();\ |
982 | return;\ |
971 | return;\ |
983 | };"); |
972 | };"); |
984 | break; |
973 | break; |
985 | - | ||
986 | case DRAW_AUDIO:/* not used for userdraw */ |
974 | case DRAW_AUDIO:/* not used for userdraw */ |
987 | fprintf(js_include_file,"\n/* draw audio */\ |
975 | fprintf(js_include_file,"\n/* draw audio */\ |
988 | var draw_audio = function(canvas_root_id,x,y,w,h,loop,visible,URL1,URL2){\ |
976 | var draw_audio = function(canvas_root_id,x,y,w,h,loop,visible,URL1,URL2){\ |
989 | var canvas_div = document.getElementById(\"canvas_div\"+canvas_root_id);\ |
977 | var canvas_div = document.getElementById(\"canvas_div\"+canvas_root_id);\ |
990 | var audio_div = document.createElement(\"div\");\ |
978 | var audio_div = document.createElement(\"div\");\ |
991 | canvas_div.appendChild(audio_div);\ |
979 | canvas_div.appendChild(audio_div);\ |
992 | audio_div.style.position = \"absolute\";\ |
980 | audio_div.style.position = \"absolute\";\ |
Line 1009... | Line 997... | ||
1009 | src2.src = URL2;\ |
997 | src2.src = URL2;\ |
1010 | audio.appendChild(src2);\ |
998 | audio.appendChild(src2);\ |
1011 | audio.load();\ |
999 | audio.load();\ |
1012 | return;\ |
1000 | return;\ |
1013 | };"); |
1001 | };"); |
1014 | break; |
1002 | break; |
1015 | - | ||
1016 | case DRAW_HTTP:/* not used for userdraw */ |
1003 | case DRAW_HTTP:/* not used for userdraw */ |
1017 | fprintf(js_include_file,"\n/* draw http */\ |
1004 | fprintf(js_include_file,"\n/* draw http */\ |
1018 | var draw_http = function(canvas_root_id,x,y,w,h,URL){\ |
1005 | var draw_http = function(canvas_root_id,x,y,w,h,URL){\ |
1019 | var canvas_div = document.getElementById(\"canvas_div\"+canvas_root_id);\ |
1006 | var canvas_div = document.getElementById(\"canvas_div\"+canvas_root_id);\ |
1020 | var http_div = document.createElement(\"div\");\ |
1007 | var http_div = document.createElement(\"div\");\ |
1021 | var iframe = document.createElement(\"iframe\");\ |
1008 | var iframe = document.createElement(\"iframe\");\ |
1022 | canvas_div.appendChild(http_div);\ |
1009 | canvas_div.appendChild(http_div);\ |
1023 | http_div.appendChild(iframe);\ |
1010 | http_div.appendChild(iframe);\ |
1024 | iframe.src = URL;\ |
1011 | iframe.src = URL;\ |
1025 | iframe.setAttribute(\"width\",w);\ |
1012 | iframe.setAttribute(\"width\",w);\ |
1026 | iframe.setAttribute(\"height\",h);\ |
1013 | iframe.setAttribute(\"height\",h);\ |
1027 | return;\ |
1014 | return;\ |
1028 | };"); |
1015 | };"); |
1029 | break; |
1016 | break; |
1030 | - | ||
1031 | case DRAW_XML: |
1017 | case DRAW_XML: |
1032 | /* |
1018 | /* |
1033 | !! function draw_xml(object) |
1019 | !! function draw_xml(object) |
1034 | !! produced by : DRAW_XML |
1020 | !! produced by : DRAW_XML |
1035 | !! used by commands: katex,latex,mathml,html,obabel |
1021 | !! used by commands: katex,latex,mathml,html,obabel |
1036 | !! uses js-functions: calculate_size(xml_div),rad2deg(rad) |
1022 | !! uses js-functions: calculate_size(xml_div),rad2deg(rad) |
Line 1048... | Line 1034... | ||
1048 | y: drag_type = 2; |
1034 | y: drag_type = 2; |
1049 | 1035 | ||
1050 | obj.type: mathml,katex,html,svg,image(bitmap) (attention: for centering image needs to be measured after loading page !!) |
1036 | obj.type: mathml,katex,html,svg,image(bitmap) (attention: for centering image needs to be measured after loading page !!) |
1051 | */ |
1037 | */ |
1052 | 1038 | ||
1053 | fprintf(js_include_file,"\n/* draw xml */\ |
1039 | fprintf(js_include_file,"\n/* draw xml */\ |
1054 | function centered(xml_div,obj){\ |
1040 | function centered(xml_div,obj){\ |
1055 | var ww = 0.5*(parseFloat(window.getComputedStyle(xml_div).width));\ |
1041 | var ww = 0.5*(parseFloat(window.getComputedStyle(xml_div).width));\ |
1056 | var hh = 0.5*(parseFloat(window.getComputedStyle(xml_div).height));\ |
1042 | var hh = 0.5*(parseFloat(window.getComputedStyle(xml_div).height));\ |
1057 | obj.offset = [ ww , hh ];\ |
1043 | obj.offset = [ ww , hh ];\ |
1058 | /*xml_div.style.left = obj.x[0] - obj.offset[0] +'px';\ |
1044 | /*xml_div.style.left = obj.x[0] - obj.offset[0] +'px';\ |
Line 1132... | Line 1118... | ||
1132 | };",mathjax); |
1118 | };",mathjax); |
1133 | 1119 | ||
1134 | /* |
1120 | /* |
1135 | console.log('angle='+obj.angle+'obj.use_center='+obj.use_center+'id='+obj.id+'xml_div.id = '+xml_div.id+' once ='+obj.once+' offset='+ obj.offset+' div x = '+xml_div.style.left+' div y ='+xml_div.style.top+' obj.x='+px2x(obj.x)+'obj.y='+px2y(obj.y));\ |
1121 | console.log('angle='+obj.angle+'obj.use_center='+obj.use_center+'id='+obj.id+'xml_div.id = '+xml_div.id+' once ='+obj.once+' offset='+ obj.offset+' div x = '+xml_div.style.left+' div y ='+xml_div.style.top+' obj.x='+px2x(obj.x)+'obj.y='+px2y(obj.y));\ |
1136 | */ |
1122 | */ |
1137 | break; |
1123 | break; |
1138 | - | ||
1139 | case DRAW_SGRAPH: |
1124 | case DRAW_SGRAPH: |
1140 | /* |
1125 | /* |
1141 | xstart = given |
1126 | xstart = given |
1142 | ystart = given |
1127 | ystart = given |
1143 | sgraph(canvas_type,precision,xmajor,ymajor,xminor,yminor,majorcolor,minorcolor,fontfamily) |
1128 | sgraph(canvas_type,precision,xmajor,ymajor,xminor,yminor,majorcolor,minorcolor,fontfamily) |
1144 | */ |
1129 | */ |
1145 | fprintf(js_include_file,"\n/* draw sgraph */\ |
1130 | fprintf(js_include_file,"\n/* draw sgraph */\ |
1146 | var draw_sgraph = function(canvas_type,precision,xmajor,ymajor,xminor,yminor,majorcolor,minorcolor,fontfamily,opacity,font_size){\ |
1131 | var draw_sgraph = function(canvas_type,precision,xmajor,ymajor,xminor,yminor,majorcolor,minorcolor,fontfamily,opacity,font_size){\ |
1147 | var obj;if( document.getElementById(\"wims_canvas%d\"+canvas_type) ){obj = document.getElementById(\"wims_canvas%d\"+canvas_type);}else{ obj = create_canvas%d(canvas_type,xsize,ysize);};\ |
1132 | var obj;if( document.getElementById(\"wims_canvas%d\"+canvas_type) ){obj = document.getElementById(\"wims_canvas%d\"+canvas_type);}else{ obj = create_canvas%d(canvas_type,xsize,ysize);};\ |
1148 | var ctx = obj.getContext(\"2d\");\ |
1133 | var ctx = obj.getContext(\"2d\");\ |
1149 | ctx.font = fontfamily;\ |
1134 | ctx.font = fontfamily;\ |
1150 | var minor_opacity = 0.8*opacity;\ |
1135 | var minor_opacity = 0.8*opacity;\ |
Line 1328... | Line 1313... | ||
1328 | ctx.rotate(-0.5*Math.PI);\ |
1313 | ctx.rotate(-0.5*Math.PI);\ |
1329 | ctx.fillText(yaxislabel,0,0);\ |
1314 | ctx.fillText(yaxislabel,0,0);\ |
1330 | ctx.restore();\ |
1315 | ctx.restore();\ |
1331 | };\ |
1316 | };\ |
1332 | };",canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id); |
1317 | };",canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id); |
1333 | break; |
1318 | break; |
1334 | - | ||
1335 | case DRAW_NUMBERLINE: |
1319 | case DRAW_NUMBERLINE: |
1336 | fprintf(js_include_file,"\n/* draw numberline */\ |
1320 | fprintf(js_include_file,"\n/* draw numberline */\ |
1337 | var draw_numberline = function(canvas_type,use_axis_numbering,x0,x1,xmajor,xminor,y0,y1,linewidth,strokecolor,strokeopacity,fontfamily,fontcolor,precision){\ |
1321 | var draw_numberline = function(canvas_type,use_axis_numbering,x0,x1,xmajor,xminor,y0,y1,linewidth,strokecolor,strokeopacity,fontfamily,fontcolor,precision){\ |
1338 | var obj = create_canvas%d(canvas_type,xsize,ysize);\ |
1322 | var obj = create_canvas%d(canvas_type,xsize,ysize);\ |
1339 | var ctx = obj.getContext(\"2d\");\ |
1323 | var ctx = obj.getContext(\"2d\");\ |
1340 | ctx.lineWidth = linewidth || 1;\ |
1324 | ctx.lineWidth = linewidth || 1;\ |
Line 1401... | Line 1385... | ||
1401 | if( corr > xmajor){ if(flipflop == 0 ){flipflop = 1; off = ybase2;}else{flipflop = 0; off = ybase1;};};\ |
1385 | if( corr > xmajor){ if(flipflop == 0 ){flipflop = 1; off = ybase2;}else{flipflop = 0; off = ybase1;};};\ |
1402 | ctx.fillText(num,parseInt(p - 0.5*corr),off);\ |
1386 | ctx.fillText(num,parseInt(p - 0.5*corr),off);\ |
1403 | };\ |
1387 | };\ |
1404 | };\ |
1388 | };\ |
1405 | };",canvas_root_id); |
1389 | };",canvas_root_id); |
1406 | break; |
1390 | break; |
1407 | - | ||
1408 | case DRAW_GRID:/* not used for userdraw */ |
1391 | case DRAW_GRID:/* not used for userdraw */ |
1409 | fprintf(js_include_file,"\n/* draw grid */\ |
1392 | fprintf(js_include_file,"\n/* draw grid */\ |
1410 | var draw_grid%d = function(canvas_type,precision,stroke_opacity,xmajor,ymajor,xminor,yminor,tics_length,line_width,stroke_color,axis_color,font_size,font_family,use_axis,use_axis_numbering,use_dashed,dashtype0,dashtype1,font_color,fill_opacity){\ |
1393 | var draw_grid%d = function(canvas_type,precision,stroke_opacity,xmajor,ymajor,xminor,yminor,tics_length,line_width,stroke_color,axis_color,font_size,font_family,use_axis,use_axis_numbering,use_dashed,dashtype0,dashtype1,font_color,fill_opacity){\ |
1411 | var obj;if( document.getElementById(\"wims_canvas%d\"+canvas_type) ){obj = document.getElementById(\"wims_canvas%d\"+canvas_type);}else{obj = create_canvas%d(canvas_type,xsize,ysize);};\ |
1394 | var obj;if( document.getElementById(\"wims_canvas%d\"+canvas_type) ){obj = document.getElementById(\"wims_canvas%d\"+canvas_type);}else{obj = create_canvas%d(canvas_type,xsize,ysize);};\ |
1412 | var ctx = obj.getContext(\"2d\");ctx.clearRect(0,0,xsize,ysize);\ |
1395 | var ctx = obj.getContext(\"2d\");ctx.clearRect(0,0,xsize,ysize);\ |
1413 | if(use_dashed == 1){if(ctx.setLineDash){ctx.setLineDash([dashtype0,dashtype1]);}else{ctx.mozDash = [dashtype0,dashtype1];};};\ |
1396 | if(use_dashed == 1){if(ctx.setLineDash){ctx.setLineDash([dashtype0,dashtype1]);}else{ctx.mozDash = [dashtype0,dashtype1];};};\ |
1414 | ctx.save();\ |
1397 | ctx.save();\ |
Line 1460... | Line 1443... | ||
1460 | ctx.restore();\ |
1443 | ctx.restore();\ |
1461 | };\ |
1444 | };\ |
1462 | ctx.stroke();\ |
1445 | ctx.stroke();\ |
1463 | ctx.closePath();",canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id); |
1446 | ctx.closePath();",canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id); |
1464 | 1447 | ||
1465 | if( use_axis == 1 ){ |
1448 | if( use_axis == 1 ){ |
1466 | fprintf(js_include_file,"\ |
1449 | fprintf(js_include_file,"\ |
1467 | ctx.save();\ |
1450 | ctx.save();\ |
1468 | ctx.beginPath();\ |
1451 | ctx.beginPath();\ |
1469 | ctx.strokeStyle = stroke_color;\ |
1452 | ctx.strokeStyle = stroke_color;\ |
1470 | ctx.lineWidth = 0.6*line_width;\ |
1453 | ctx.lineWidth = 0.6*line_width;\ |
1471 | for(var p = zero_x ; p < xsize; p = p + x2step){\ |
1454 | for(var p = zero_x ; p < xsize; p = p + x2step){\ |
Line 1481... | Line 1464... | ||
1481 | ctx.lineTo(xsize,p);\ |
1464 | ctx.lineTo(xsize,p);\ |
1482 | };\ |
1465 | };\ |
1483 | for(var p = zero_y ; p > 0; p = p - y2step){\ |
1466 | for(var p = zero_y ; p > 0; p = p - y2step){\ |
1484 | ctx.moveTo(0,p);\ |
1467 | ctx.moveTo(0,p);\ |
1485 | ctx.lineTo(xsize,p);\ |
1468 | ctx.lineTo(xsize,p);\ |
1486 | };\ |
1469 | };\ |
1487 | ctx.stroke();\ |
1470 | ctx.stroke();\ |
1488 | ctx.closePath();\ |
1471 | ctx.closePath();\ |
1489 | ctx.beginPath();\ |
1472 | ctx.beginPath();\ |
1490 | ctx.lineWidth = 2*line_width;\ |
1473 | ctx.lineWidth = 2*line_width;\ |
1491 | ctx.strokeStyle = axis_color;\ |
1474 | ctx.strokeStyle = axis_color;\ |
1492 | ctx.moveTo(0,zero_y);\ |
1475 | ctx.moveTo(0,zero_y);\ |
1493 | ctx.lineTo(xsize,zero_y);\ |
1476 | ctx.lineTo(xsize,zero_y);\ |
Line 1496... | Line 1479... | ||
1496 | ctx.stroke();\ |
1479 | ctx.stroke();\ |
1497 | ctx.closePath();\ |
1480 | ctx.closePath();\ |
1498 | ctx.lineWidth = line_width+0.5;\ |
1481 | ctx.lineWidth = line_width+0.5;\ |
1499 | ctx.beginPath();\ |
1482 | ctx.beginPath();\ |
1500 | for(var p = zero_x ; p < xsize; p = p + xstep){\ |
1483 | for(var p = zero_x ; p < xsize; p = p + xstep){\ |
1501 | ctx.moveTo(p,zero_y-tics_length);\ |
1484 | ctx.moveTo(p,zero_y-tics_length);\ |
1502 | ctx.lineTo(p,zero_y+tics_length);\ |
1485 | ctx.lineTo(p,zero_y+tics_length);\ |
1503 | };\ |
1486 | };\ |
1504 | for(var p = zero_x ; p > 0; p = p - xstep){\ |
1487 | for(var p = zero_x ; p > 0; p = p - xstep){\ |
1505 | ctx.moveTo(p,zero_y-tics_length);\ |
1488 | ctx.moveTo(p,zero_y-tics_length);\ |
1506 | ctx.lineTo(p,zero_y+tics_length);\ |
1489 | ctx.lineTo(p,zero_y+tics_length);\ |
1507 | };\ |
1490 | };\ |
1508 | for(var p = zero_y ; p < ysize; p = p + ystep){\ |
1491 | for(var p = zero_y ; p < ysize; p = p + ystep){\ |
1509 | ctx.moveTo(zero_x-tics_length,p);\ |
1492 | ctx.moveTo(zero_x-tics_length,p);\ |
1510 | ctx.lineTo(zero_x+tics_length,p);\ |
1493 | ctx.lineTo(zero_x+tics_length,p);\ |
1511 | };\ |
1494 | };\ |
1512 | for(var p = zero_y ; p > 0; p = p - ystep){\ |
1495 | for(var p = zero_y ; p > 0; p = p - ystep){\ |
1513 | ctx.moveTo(zero_x-tics_length,p);\ |
1496 | ctx.moveTo(zero_x-tics_length,p);\ |
1514 | ctx.lineTo(zero_x+tics_length,p);\ |
1497 | ctx.lineTo(zero_x+tics_length,p);\ |
1515 | };\ |
1498 | };\ |
1516 | for(var p = zero_x ; p < xsize; p = p + x2step){\ |
1499 | for(var p = zero_x ; p < xsize; p = p + x2step){\ |
1517 | ctx.moveTo(p,zero_y-0.5*tics_length);\ |
1500 | ctx.moveTo(p,zero_y-0.5*tics_length);\ |
1518 | ctx.lineTo(p,zero_y+0.5*tics_length);\ |
1501 | ctx.lineTo(p,zero_y+0.5*tics_length);\ |
1519 | };\ |
1502 | };\ |
1520 | for(var p = zero_x ; p > 0; p = p - x2step){\ |
1503 | for(var p = zero_x ; p > 0; p = p - x2step){\ |
1521 | ctx.moveTo(p,zero_y-0.5*tics_length);\ |
1504 | ctx.moveTo(p,zero_y-0.5*tics_length);\ |
1522 | ctx.lineTo(p,zero_y+0.5*tics_length);\ |
1505 | ctx.lineTo(p,zero_y+0.5*tics_length);\ |
1523 | };\ |
1506 | };\ |
1524 | for(var p = zero_y ; p < ysize; p = p + y2step){\ |
1507 | for(var p = zero_y ; p < ysize; p = p + y2step){\ |
1525 | ctx.moveTo(zero_x-0.5*tics_length,p);\ |
1508 | ctx.moveTo(zero_x-0.5*tics_length,p);\ |
1526 | ctx.lineTo(zero_x+0.5*tics_length,p);\ |
1509 | ctx.lineTo(zero_x+0.5*tics_length,p);\ |
1527 | };\ |
1510 | };\ |
1528 | for(var p = zero_y ; p > 0; p = p - y2step){\ |
1511 | for(var p = zero_y ; p > 0; p = p - y2step){\ |
1529 | ctx.moveTo(zero_x-0.5*tics_length,p);\ |
1512 | ctx.moveTo(zero_x-0.5*tics_length,p);\ |
1530 | ctx.lineTo(zero_x+0.5*tics_length,p);\ |
1513 | ctx.lineTo(zero_x+0.5*tics_length,p);\ |
1531 | };\ |
1514 | };\ |
1532 | ctx.stroke();\ |
1515 | ctx.stroke();\ |
1533 | ctx.closePath();\ |
1516 | ctx.closePath();\ |
1534 | ctx.restore();"); |
1517 | ctx.restore();"); |
1535 | } |
1518 | } |
1536 | - | ||
1537 | if( use_axis_numbering != -1 ){ |
1519 | if( use_axis_numbering != -1 ){ |
1538 | fprintf(js_include_file,"\ |
1520 | fprintf(js_include_file,"\ |
1539 | ctx.save();\ |
1521 | ctx.save();\ |
1540 | ctx.fillColor = axis_color;\ |
1522 | ctx.fillColor = axis_color;\ |
1541 | ctx.strokeStyle = axis_color;\ |
1523 | ctx.strokeStyle = axis_color;\ |
1542 | ctx.lineWidth = 2*line_width;\ |
1524 | ctx.lineWidth = 2*line_width;\ |
1543 | ctx.font = font_family;\ |
1525 | ctx.font = font_family;\ |
Line 1643... | Line 1625... | ||
1643 | cnt = cnt + ymajor;\ |
1625 | cnt = cnt + ymajor;\ |
1644 | };\ |
1626 | };\ |
1645 | };\ |
1627 | };\ |
1646 | ctx.stroke();\ |
1628 | ctx.stroke();\ |
1647 | ctx.restore();"); |
1629 | ctx.restore();"); |
1648 | } |
1630 | } |
1649 | - | ||
1650 | if( legend_cnt != -1 ){ |
1631 | if( legend_cnt != -1 ){ |
1651 | fprintf(js_include_file,"ctx.save();\ |
1632 | fprintf(js_include_file,"ctx.save();\ |
1652 | ctx.globalAlpha = 1.0;\ |
1633 | ctx.globalAlpha = 1.0;\ |
1653 | ctx.font = \"bold \"+font_size+\"px Arial\";\ |
1634 | ctx.font = \"bold \"+font_size+\"px Arial\";\ |
1654 | var y_offset = 2*font_size;\ |
1635 | var y_offset = 2*font_size;\ |
1655 | var txt;var txt_size;\ |
1636 | var txt;var txt_size;\ |
1656 | var x_offset = xsize - 2*font_size;\ |
1637 | var x_offset = xsize - 2*font_size;\ |
Line 1663... | Line 1644... | ||
1663 | if( barcolor.length == 0 ){\ |
1644 | if( barcolor.length == 0 ){\ |
1664 | for(var p = 0 ; p < l_length ; p++){\ |
1645 | for(var p = 0 ; p < l_length ; p++){\ |
1665 | barcolor[p] = stroke_color;\ |
1646 | barcolor[p] = stroke_color;\ |
1666 | };\ |
1647 | };\ |
1667 | };\ |
1648 | };\ |
1668 | };\ |
1649 | };\ |
1669 | for(var p = 0; p < l_length; p++){\ |
1650 | for(var p = 0; p < l_length; p++){\ |
1670 | ctx.fillStyle = barcolor[p];\ |
1651 | ctx.fillStyle = barcolor[p];\ |
1671 | txt = legend0[p];\ |
1652 | txt = legend0[p];\ |
1672 | txt_size = ctx.measureText(txt).width;\ |
1653 | txt_size = ctx.measureText(txt).width;\ |
1673 | ctx.fillText(legend0[p],x_offset - txt_size, y_offset);\ |
1654 | ctx.fillText(legend0[p],x_offset - txt_size, y_offset);\ |
1674 | y_offset = parseInt(y_offset + 1.5*font_size);\ |
1655 | y_offset = parseInt(y_offset + 1.5*font_size);\ |
1675 | };\ |
1656 | };\ |
1676 | ctx.restore();"); |
1657 | ctx.restore();"); |
1677 | } |
1658 | } |
1678 | - | ||
1679 | if( barchart_cnt != 0 ){ |
1659 | if( barchart_cnt != 0 ){ |
1680 | fprintf(js_include_file,"ctx.save();\ |
1660 | fprintf(js_include_file,"ctx.save();\ |
1681 | var num_barcharts = 0;\ |
1661 | var num_barcharts = 0;\ |
1682 | var bar_name = eval('barchart_0');\ |
1662 | var bar_name = eval('barchart_0');\ |
1683 | while( typeof(bar_name) !== 'undefined' ){\ |
1663 | while( typeof(bar_name) !== 'undefined' ){\ |
1684 | try{ bar_name = eval('barchart_'+num_barcharts);num_barcharts++;}catch(e){break;};\ |
1664 | try{ bar_name = eval('barchart_'+num_barcharts);num_barcharts++;}catch(e){break;};\ |
1685 | };\ |
1665 | };\ |
Line 1707... | Line 1687... | ||
1707 | ctx.stroke();\ |
1687 | ctx.stroke();\ |
1708 | ctx.closePath();\ |
1688 | ctx.closePath();\ |
1709 | };\ |
1689 | };\ |
1710 | };\ |
1690 | };\ |
1711 | ctx.restore();"); |
1691 | ctx.restore();"); |
1712 | } |
1692 | } |
1713 | - | ||
1714 | if( linegraph_cnt != 0 ){ |
1693 | if( linegraph_cnt != 0 ){ |
1715 | fprintf(js_include_file,"ctx.save();\ |
1694 | fprintf(js_include_file,"ctx.save();\ |
1716 | ctx.globalAlpha = 1.0;\ |
1695 | ctx.globalAlpha = 1.0;\ |
1717 | var i = 0;\ |
1696 | var i = 0;\ |
1718 | var line_name = eval('linegraph_'+i);\ |
1697 | var line_name = eval('linegraph_'+i);\ |
1719 | while ( typeof(line_name) !== 'undefined' ){\ |
1698 | while ( typeof(line_name) !== 'undefined' ){\ |
1720 | ctx.strokeStyle = 'rgba('+line_name[0]+','+stroke_opacity+')';\ |
1699 | ctx.strokeStyle = 'rgba('+line_name[0]+','+stroke_opacity+')';\ |
Line 1742... | Line 1721... | ||
1742 | };\ |
1721 | };\ |
1743 | i++;\ |
1722 | i++;\ |
1744 | try{ line_name = eval('linegraph_'+i); }catch(e){ break; }\ |
1723 | try{ line_name = eval('linegraph_'+i); }catch(e){ break; }\ |
1745 | };\ |
1724 | };\ |
1746 | ctx.restore();return;"); |
1725 | ctx.restore();return;"); |
1747 | } |
1726 | } |
1748 | fprintf(js_include_file,"};"); |
1727 | fprintf(js_include_file,"};"); |
1749 | - | ||
1750 | break; |
1728 | break; |
1751 | - | ||
1752 | case DRAW_PIECHART: |
1729 | case DRAW_PIECHART: |
1753 | fprintf(js_include_file,"\n/* draw piecharts */\ |
1730 | fprintf(js_include_file,"\n/* draw piecharts */\ |
1754 | if( typeof(all_fill_patterns) != 'object' ){ var all_fill_patterns = []; };\ |
1731 | if( typeof(all_fill_patterns) != 'object' ){ var all_fill_patterns = []; };\ |
1755 | function draw_piechart(canvas_type,x_center,y_center,radius, data_color_list,fill_opacity,legend_cnt,font_family,use_filled,use_offset){\ |
1732 | function draw_piechart(canvas_type,x_center,y_center,radius, data_color_list,fill_opacity,legend_cnt,font_family,use_filled,use_offset){\ |
1756 | var obj;\ |
1733 | var obj;\ |
1757 | if( document.getElementById(\"wims_canvas%d\"+canvas_type) ){\ |
1734 | if( document.getElementById(\"wims_canvas%d\"+canvas_type) ){\ |
1758 | obj = document.getElementById(\"wims_canvas%d\"+canvas_type);\ |
1735 | obj = document.getElementById(\"wims_canvas%d\"+canvas_type);\ |
Line 1822... | Line 1799... | ||
1822 | };\ |
1799 | };\ |
1823 | };\ |
1800 | };\ |
1824 | };\ |
1801 | };\ |
1825 | ctx.restore();\ |
1802 | ctx.restore();\ |
1826 | };",canvas_root_id,canvas_root_id,canvas_root_id); |
1803 | };",canvas_root_id,canvas_root_id,canvas_root_id); |
1827 | break; |
1804 | break; |
1828 | 1805 | ||
1829 | case DRAW_JSBOXPLOT: |
1806 | case DRAW_JSBOXPLOT: |
1830 | fprintf(js_include_file,"\n/* draw jsboxplots */\ |
1807 | fprintf(js_include_file,"\n/* draw jsboxplots */\ |
1831 | if( typeof(all_fill_patterns) != 'object' ){ var all_fill_patterns = []; };\ |
1808 | if( typeof(all_fill_patterns) != 'object' ){ var all_fill_patterns = []; };\ |
1832 | function statistics(data){\ |
1809 | function statistics(data){\ |
1833 | var len = data.length;\ |
1810 | var len = data.length;\ |
1834 | var min = 10000000;\ |
1811 | var min = 10000000;\ |
1835 | var max = -10000000;\ |
1812 | var max = -10000000;\ |
Line 1862... | Line 1839... | ||
1862 | Q1 = (data[q1 - 1] + data[q1] )/2;\ |
1839 | Q1 = (data[q1 - 1] + data[q1] )/2;\ |
1863 | Q3 = (data[q3 - 1] + data[q3] )/2;\ |
1840 | Q3 = (data[q3 - 1] + data[q3] )/2;\ |
1864 | };\ |
1841 | };\ |
1865 | return [min,Q1,median,Q3,max];\ |
1842 | return [min,Q1,median,Q3,max];\ |
1866 | };"); |
1843 | };"); |
1867 | break; |
1844 | break; |
1868 | - | ||
1869 | case DRAW_BOXPLOT: |
1845 | case DRAW_BOXPLOT: |
1870 | fprintf(js_include_file,"\n/* draw boxplots */\ |
1846 | fprintf(js_include_file,"\n/* draw boxplots */\ |
1871 | if( typeof(all_fill_patterns) != 'object' ){ var all_fill_patterns = []; };\ |
1847 | if( typeof(all_fill_patterns) != 'object' ){ var all_fill_patterns = []; };\ |
1872 | draw_boxplot = function(canvas_type,xy,hw,cxy,data,line_width,stroke_color,stroke_opacity,fill_color,fill_opacity,use_filled,use_dashed,dashtype0,dashtype1){\ |
1848 | draw_boxplot = function(canvas_type,xy,hw,cxy,data,line_width,stroke_color,stroke_opacity,fill_color,fill_opacity,use_filled,use_dashed,dashtype0,dashtype1){\ |
1873 | var obj;\ |
1849 | var obj;\ |
1874 | if( document.getElementById(\"wims_canvas%d\"+canvas_type) ){obj = document.getElementById(\"wims_canvas%d\"+canvas_type);}else{obj = create_canvas%d(canvas_type,xsize,ysize);};\ |
1850 | if( document.getElementById(\"wims_canvas%d\"+canvas_type) ){obj = document.getElementById(\"wims_canvas%d\"+canvas_type);}else{obj = create_canvas%d(canvas_type,xsize,ysize);};\ |
1875 | var ctx = obj.getContext(\"2d\");\ |
1851 | var ctx = obj.getContext(\"2d\");\ |
Line 1959... | Line 1935... | ||
1959 | ctx.fill();\ |
1935 | ctx.fill();\ |
1960 | };\ |
1936 | };\ |
1961 | ctx.stroke();\ |
1937 | ctx.stroke();\ |
1962 | };\ |
1938 | };\ |
1963 | ctx.restore();};",canvas_root_id,canvas_root_id,canvas_root_id); |
1939 | ctx.restore();};",canvas_root_id,canvas_root_id,canvas_root_id); |
1964 | break; |
1940 | break; |
1965 | - | ||
1966 | case DRAW_CENTERSTRING: |
1941 | case DRAW_CENTERSTRING: |
1967 | fprintf(js_include_file,"\n/* draw centerstring */\ |
1942 | fprintf(js_include_file,"\n/* draw centerstring */\ |
1968 | var draw_centerstring = function(canvas_type,y,font_family,stroke_color,stroke_opacity,text){\ |
1943 | var draw_centerstring = function(canvas_type,y,font_family,stroke_color,stroke_opacity,text){\ |
1969 | var obj;\ |
1944 | var obj;\ |
1970 | if( document.getElementById(\"wims_canvas%d\"+canvas_type) ){\ |
1945 | if( document.getElementById(\"wims_canvas%d\"+canvas_type) ){\ |
1971 | obj = document.getElementById(\"wims_canvas%d\"+canvas_type);\ |
1946 | obj = document.getElementById(\"wims_canvas%d\"+canvas_type);\ |
1972 | } else {\ |
1947 | } else {\ |
Line 1981... | Line 1956... | ||
1981 | var x = parseInt((xsize - stringwidth)/2);if( x < 0 ){x = 0;};\ |
1956 | var x = parseInt((xsize - stringwidth)/2);if( x < 0 ){x = 0;};\ |
1982 | ctx.fillText(text,x,y2px(y));\ |
1957 | ctx.fillText(text,x,y2px(y));\ |
1983 | ctx.restore();\ |
1958 | ctx.restore();\ |
1984 | return;\ |
1959 | return;\ |
1985 | };",canvas_root_id,canvas_root_id,canvas_root_id); |
1960 | };",canvas_root_id,canvas_root_id,canvas_root_id); |
1986 | break; |
1961 | break; |
1987 | - | ||
1988 | case DRAW_TEXTS: |
1962 | case DRAW_TEXTS: |
1989 | fprintf(js_include_file,"\n/* draw text */\ |
1963 | fprintf(js_include_file,"\n/* draw text */\ |
1990 | var draw_text = function(canvas_type,x,y,font_size,font_family,stroke_color,stroke_opacity,angle2,text,use_rotate,angle,use_offset){\ |
1964 | var draw_text = function(canvas_type,x,y,font_size,font_family,stroke_color,stroke_opacity,angle2,text,use_rotate,angle,use_offset){\ |
1991 | var obj;\ |
1965 | var obj;\ |
1992 | if( document.getElementById(\"wims_canvas%d\"+canvas_type) ){\ |
1966 | if( document.getElementById(\"wims_canvas%d\"+canvas_type) ){\ |
1993 | obj = document.getElementById(\"wims_canvas%d\"+canvas_type);\ |
1967 | obj = document.getElementById(\"wims_canvas%d\"+canvas_type);\ |
1994 | } else {\ |
1968 | } else {\ |
Line 2017... | Line 1991... | ||
2017 | } else {\ |
1991 | } else {\ |
2018 | ctx.fillText(text,x,y);\ |
1992 | ctx.fillText(text,x,y);\ |
2019 | };\ |
1993 | };\ |
2020 | return;\ |
1994 | return;\ |
2021 | };",canvas_root_id,canvas_root_id,canvas_root_id); |
1995 | };",canvas_root_id,canvas_root_id,canvas_root_id); |
2022 | break; |
1996 | break; |
2023 | - | ||
2024 | case DRAW_INPUTS: |
1997 | case DRAW_INPUTS: |
2025 | /* function center_input may be used for other centering...if not? integrate it in draw_static_inputs...*/ |
1998 | /* function center_input may be used for other centering...if not? integrate it in draw_static_inputs...*/ |
2026 | fprintf(js_include_file,"\n/* draw static input fields */\ |
1999 | fprintf(js_include_file,"\n/* draw static input fields */\ |
2027 | if(typeof(input_cnt) !== 'undefined' ){var input_cnt = 0;};\ |
2000 | if(typeof(input_cnt) !== 'undefined' ){var input_cnt = 0;};\ |
2028 | var draw_static_inputs = function(root_id,num,x,y,size,readonly,css_class,value,use_offset){\ |
2001 | var draw_static_inputs = function(root_id,num,x,y,size,readonly,css_class,value,use_offset){\ |
2029 | var input = document.createElement(\"input\");\ |
2002 | var input = document.createElement(\"input\");\ |
2030 | input.setAttribute(\"id\",\"canvas_input\"+num);\ |
2003 | input.setAttribute(\"id\",\"canvas_input\"+num);\ |
2031 | input.setAttribute(\"style\",\"text-align:center;position:absolute;left:\"+x+\"px;top:\"+y+\"px;\");\ |
2004 | input.setAttribute(\"style\",\"text-align:center;position:absolute;left:\"+x+\"px;top:\"+y+\"px;\");\ |
Line 2044... | Line 2017... | ||
2044 | var center_x = parseInt(x - 0.5*(pos.width));\ |
2017 | var center_x = parseInt(x - 0.5*(pos.width));\ |
2045 | var center_y = parseInt(y - 0.5*(pos.height));\ |
2018 | var center_y = parseInt(y - 0.5*(pos.height));\ |
2046 | try{if(css_class != \"none\"){inp.setAttribute(\"class\",css_class);};inp.setAttribute(\"style\",\"text-align:center;position:absolute;left:\"+center_x+\"px;top:\"+center_y+\"px;\");}\ |
2019 | try{if(css_class != \"none\"){inp.setAttribute(\"class\",css_class);};inp.setAttribute(\"style\",\"text-align:center;position:absolute;left:\"+center_x+\"px;top:\"+center_y+\"px;\");}\ |
2047 | catch(e){console.log('error :'+e);return;};\ |
2020 | catch(e){console.log('error :'+e);return;};\ |
2048 | };"); |
2021 | };"); |
2049 | break; |
2022 | break; |
2050 | - | ||
2051 | case DRAW_TEXTAREAS: |
2023 | case DRAW_TEXTAREAS: |
2052 | fprintf(js_include_file,"\n/* draw text area inputfields */\ |
2024 | fprintf(js_include_file,"\n/* draw text area inputfields */\ |
2053 | var draw_textareas = function(root_id,num,x,y,cols,rows,readonly,style,value){\ |
2025 | var draw_textareas = function(root_id,num,x,y,cols,rows,readonly,style,value){\ |
2054 | var canvas_div = document.getElementById(\"canvas_div\"+root_id);\ |
2026 | var canvas_div = document.getElementById(\"canvas_div\"+root_id);\ |
2055 | var textarea = document.createElement(\"textarea\");\ |
2027 | var textarea = document.createElement(\"textarea\");\ |
2056 | textarea.setAttribute(\"id\",\"canvas_input\"+num);\ |
2028 | textarea.setAttribute(\"id\",\"canvas_input\"+num);\ |
2057 | textarea.setAttribute(\"style\",\"position:absolute;left:\"+x+\"px;top:\"+y+\"px;\"+style);\ |
2029 | textarea.setAttribute(\"style\",\"position:absolute;left:\"+x+\"px;top:\"+y+\"px;\"+style);\ |
2058 | textarea.setAttribute(\"cols\",cols);\ |
2030 | textarea.setAttribute(\"cols\",cols);\ |
2059 | textarea.setAttribute(\"rows\",rows);\ |
2031 | textarea.setAttribute(\"rows\",rows);\ |
2060 | textarea.value = value;\ |
2032 | textarea.value = value;\ |
2061 | if( readonly == 0 || wims_status == \"done\" ){ textarea.setAttribute(\"readonly\",\"readonly\");if( wims_status == \"done\" ){textarea.value=\"\";};};\ |
2033 | if( readonly == 0 || wims_status == \"done\" ){ textarea.setAttribute(\"readonly\",\"readonly\");if( wims_status == \"done\" ){textarea.value=\"\";};};\ |
2062 | canvas_div.appendChild(textarea);};"); |
2034 | canvas_div.appendChild(textarea);};"); |
2063 | break; |
2035 | break; |
2064 | - | ||
2065 | case DRAW_PIXELS: |
2036 | case DRAW_PIXELS: |
2066 | fprintf(js_include_file,"\n/* draw pixel */\ |
2037 | fprintf(js_include_file,"\n/* draw pixel */\ |
2067 | var draw_setpixel = function(x,y,color,opacity,pixelsize){\ |
2038 | var draw_setpixel = function(x,y,color,opacity,pixelsize){\ |
2068 | var idx = 2000+Math.ceil(1000*(Math.random()));\ |
2039 | var idx = 2000+Math.ceil(1000*(Math.random()));\ |
2069 | var canvas = create_canvas%d(idx,xsize,ysize);\ |
2040 | var canvas = create_canvas%d(idx,xsize,ysize);\ |
2070 | var d = 0.5*pixelsize;\ |
2041 | var d = 0.5*pixelsize;\ |
2071 | var ctx = canvas.getContext(\"2d\");\ |
2042 | var ctx = canvas.getContext(\"2d\");\ |
Line 2075... | Line 2046... | ||
2075 | for(var p=0; p<x.length;p++){\ |
2046 | for(var p=0; p<x.length;p++){\ |
2076 | ctx.fillRect( x2px(x[p]) - d, y2px(y[p]) - d , pixelsize, pixelsize );\ |
2047 | ctx.fillRect( x2px(x[p]) - d, y2px(y[p]) - d , pixelsize, pixelsize );\ |
2077 | };\ |
2048 | };\ |
2078 | ctx.fill();ctx.stroke();\ |
2049 | ctx.fill();ctx.stroke();\ |
2079 | };",canvas_root_id); |
2050 | };",canvas_root_id); |
2080 | break; |
2051 | break; |
2081 | - | ||
2082 | case DRAW_CLOCK: |
2052 | case DRAW_CLOCK: |
2083 | fprintf(js_include_file,"\n/* command clock */\ |
2053 | fprintf(js_include_file,"\n/* command clock */\ |
2084 | var clock_canvas = create_canvas%d(%d,xsize,ysize);\ |
2054 | var clock_canvas = create_canvas%d(%d,xsize,ysize);\ |
2085 | var clock_ctx = clock_canvas.getContext(\"2d\");\ |
2055 | var clock_ctx = clock_canvas.getContext(\"2d\");\ |
2086 | var clock = function(xc,yc,radius,H,M,S,type,interaction,h_color,m_color,s_color,bg_color,fg_color){\ |
2056 | var clock = function(xc,yc,radius,H,M,S,type,interaction,h_color,m_color,s_color,bg_color,fg_color){\ |
2087 | clock_ctx.clearRect(xc - radius,yc - radius,2*radius,2*radius);\ |
2057 | clock_ctx.clearRect(xc - radius,yc - radius,2*radius,2*radius);\ |
2088 | clock_ctx.save();\ |
2058 | clock_ctx.save();\ |
Line 2185... | Line 2155... | ||
2185 | clock_ctx.lineTo(this.radius * 0.9, -1);\ |
2155 | clock_ctx.lineTo(this.radius * 0.9, -1);\ |
2186 | clock_ctx.strokeStyle = this.S_color;\ |
2156 | clock_ctx.strokeStyle = this.S_color;\ |
2187 | clock_ctx.stroke();\ |
2157 | clock_ctx.stroke();\ |
2188 | clock_ctx.restore();\ |
2158 | clock_ctx.restore();\ |
2189 | };",canvas_root_id,CLOCK_CANVAS); |
2159 | };",canvas_root_id,CLOCK_CANVAS); |
2190 | break; |
2160 | break; |
2191 | - | ||
2192 | case DRAW_LATTICE: |
2161 | case DRAW_LATTICE: |
2193 | fprintf(js_include_file,"\n/* draw lattice */\ |
2162 | fprintf(js_include_file,"\n/* draw lattice */\ |
2194 | var draw_lattice = function(canvas_type,line_width,x0,y0,dx1,dy1,dx2,dy2,n1,n2,fill_color,fill_opacity,stroke_color,stroke_opacity,use_rotate,angle,use_filled){\ |
2163 | var draw_lattice = function(canvas_type,line_width,x0,y0,dx1,dy1,dx2,dy2,n1,n2,fill_color,fill_opacity,stroke_color,stroke_opacity,use_rotate,angle,use_filled){\ |
2195 | var obj;\ |
2164 | var obj;\ |
2196 | if( document.getElementById(\"wims_canvas%d\"+canvas_type) ){\ |
2165 | if( document.getElementById(\"wims_canvas%d\"+canvas_type) ){\ |
2197 | obj = document.getElementById(\"wims_canvas%d\"+canvas_type);\ |
2166 | obj = document.getElementById(\"wims_canvas%d\"+canvas_type);\ |
2198 | } else {\ |
2167 | } else {\ |
Line 2225... | Line 2194... | ||
2225 | };\ |
2194 | };\ |
2226 | };\ |
2195 | };\ |
2227 | ctx.restore();\ |
2196 | ctx.restore();\ |
2228 | return;\ |
2197 | return;\ |
2229 | };",canvas_root_id,canvas_root_id,canvas_root_id); |
2198 | };",canvas_root_id,canvas_root_id,canvas_root_id); |
2230 | break; |
2199 | break; |
2231 | - | ||
2232 | case DRAW_XYLOGSCALE: |
2200 | case DRAW_XYLOGSCALE: |
2233 | fprintf(js_include_file,"\n/* draw xylogscale */\ |
2201 | fprintf(js_include_file,"\n/* draw xylogscale */\ |
2234 | var draw_grid%d = function(canvas_type,line_width,major_color,minor_color,major_opacity,minor_opacity,font_size,font_family,font_color,use_axis_numbering,precision){\ |
2202 | var draw_grid%d = function(canvas_type,line_width,major_color,minor_color,major_opacity,minor_opacity,font_size,font_family,font_color,use_axis_numbering,precision){\ |
2235 | var obj;\ |
2203 | var obj;\ |
2236 | if( document.getElementById(\"wims_canvas%d\"+canvas_type) ){\ |
2204 | if( document.getElementById(\"wims_canvas%d\"+canvas_type) ){\ |
2237 | obj = document.getElementById(\"wims_canvas%d\"+canvas_type);\ |
2205 | obj = document.getElementById(\"wims_canvas%d\"+canvas_type);\ |
2238 | } else {\ |
2206 | } else {\ |
Line 2247... | Line 2215... | ||
2247 | var y_min = Math.log(ymin)/Math.log(ylogbase);\ |
2215 | var y_min = Math.log(ymin)/Math.log(ylogbase);\ |
2248 | var y_max = Math.log(ymax)/Math.log(ylogbase);\ |
2216 | var y_max = Math.log(ymax)/Math.log(ylogbase);\ |
2249 | if(use_axis_numbering != -1){\ |
2217 | if(use_axis_numbering != -1){\ |
2250 | ctx.font = font_family;\ |
2218 | ctx.font = font_family;\ |
2251 | xmarge = ctx.measureText(ylogbase+'^'+y_max.toFixed(0)+' ').width;\ |
2219 | xmarge = ctx.measureText(ylogbase+'^'+y_max.toFixed(0)+' ').width;\ |
2252 | ymarge = parseInt(1.5*font_size);\ |
2220 | ymarge = parseInt(1.5*font_size);\ |
2253 | ctx.save();\ |
2221 | ctx.save();\ |
2254 | ctx.fillStyle=\"rgba(255,215,0,0.2)\";\ |
2222 | ctx.fillStyle=\"rgba(255,215,0,0.2)\";\ |
2255 | ctx.rect(0,0,xmarge,ysize);\ |
2223 | ctx.rect(0,0,xmarge,ysize);\ |
2256 | ctx.rect(0,ysize-ymarge,xsize,ysize);\ |
2224 | ctx.rect(0,ysize-ymarge,xsize,ysize);\ |
2257 | ctx.fill();\ |
2225 | ctx.fill();\ |
2258 | ctx.restore();\ |
2226 | ctx.restore();\ |
2259 | }else{xmarge = 0;ymarge = 0;};\ |
2227 | }else{xmarge = 0;ymarge = 0;};\ |
2260 | if( typeof(xaxislabel) !== 'undefined' ){\ |
2228 | if( typeof(xaxislabel) !== 'undefined' ){\ |
2261 | ctx.save();\ |
2229 | ctx.save();\ |
2262 | ctx.font = \"italic \"+font_size+\"px Arial\";\ |
2230 | ctx.font = \"italic \"+font_size+\"px Arial\";\ |
2263 | ctx.fillStyle = \"rgba(\"+font_color+\",\"+major_opacity+\")\";\ |
2231 | ctx.fillStyle = \"rgba(\"+font_color+\",\"+major_opacity+\")\";\ |
2264 | corr = ctx.measureText(xaxislabel).width;\ |
2232 | corr = ctx.measureText(xaxislabel).width;\ |
2265 | ctx.fillText(xaxislabel,xsize - 1.5*corr,ysize - 2*font_size);\ |
2233 | ctx.fillText(xaxislabel,xsize - 1.5*corr,ysize - 2*font_size);\ |
2266 | ctx.restore();\ |
2234 | ctx.restore();\ |
2267 | };\ |
2235 | };\ |
2268 | if( typeof(yaxislabel) !== 'undefined' ){\ |
2236 | if( typeof(yaxislabel) !== 'undefined' ){\ |
2269 | ctx.save();\ |
2237 | ctx.save();\ |
2270 | ctx.font = \"italic \"+font_size+\"px Arial\";\ |
2238 | ctx.font = \"italic \"+font_size+\"px Arial\";\ |
2271 | ctx.fillStyle = \"rgba(\"+font_color+\",\"+major_opacity+\")\";\ |
2239 | ctx.fillStyle = \"rgba(\"+font_color+\",\"+major_opacity+\")\";\ |
2272 | corr = ctx.measureText(yaxislabel).width;\ |
2240 | corr = ctx.measureText(yaxislabel).width;\ |
2273 | ctx.translate(xmarge+font_size,corr+font_size);\ |
2241 | ctx.translate(xmarge+font_size,corr+font_size);\ |
2274 | ctx.rotate(-0.5*Math.PI);\ |
2242 | ctx.rotate(-0.5*Math.PI);\ |
2275 | ctx.fillText(yaxislabel,0,0);\ |
2243 | ctx.fillText(yaxislabel,0,0);\ |
2276 | ctx.restore();\ |
2244 | ctx.restore();\ |
2277 | };\ |
2245 | };\ |
2278 | ctx.fillStyle = \"rgba(\"+font_color+\",\"+major_opacity+\")\";\ |
2246 | ctx.fillStyle = \"rgba(\"+font_color+\",\"+major_opacity+\")\";\ |
Line 2283... | Line 2251... | ||
2283 | x_e = x2px(i*num);\ |
2251 | x_e = x2px(i*num);\ |
2284 | if( i == 1 ){\ |
2252 | if( i == 1 ){\ |
2285 | ctx.lineWidth = line_width;\ |
2253 | ctx.lineWidth = line_width;\ |
2286 | ctx.strokeStyle=\"rgba(\"+major_color+\",\"+major_opacity+\")\";\ |
2254 | ctx.strokeStyle=\"rgba(\"+major_color+\",\"+major_opacity+\")\";\ |
2287 | if( use_axis_numbering != -1 && p > x_min){\ |
2255 | if( use_axis_numbering != -1 && p > x_min){\ |
2288 | xtxt = xlogbase+'^'+p.toFixed(0);\ |
2256 | xtxt = xlogbase+'^'+p.toFixed(0);\ |
2289 | corr = 0.5*(ctx.measureText(xtxt).width);\ |
2257 | corr = 0.5*(ctx.measureText(xtxt).width);\ |
2290 | ctx.fillText(xtxt,x_e - corr,ysize - 4);\ |
2258 | ctx.fillText(xtxt,x_e - corr,ysize - 4);\ |
2291 | };\ |
2259 | };\ |
2292 | }else{\ |
2260 | }else{\ |
2293 | ctx.lineWidth = 0.2*line_width;\ |
2261 | ctx.lineWidth = 0.2*line_width;\ |
2294 | ctx.strokeStyle=\"rgba(\"+minor_color+\",\"+minor_opacity+\")\";\ |
2262 | ctx.strokeStyle=\"rgba(\"+minor_color+\",\"+minor_opacity+\")\";\ |
2295 | };\ |
2263 | };\ |
2296 | if( x_e >= xmarge ){\ |
2264 | if( x_e >= xmarge ){\ |
2297 | ctx.beginPath();\ |
2265 | ctx.beginPath();\ |
2298 | ctx.moveTo(x_e,0);\ |
2266 | ctx.moveTo(x_e,0);\ |
2299 | ctx.lineTo(x_e,ysize - ymarge);\ |
2267 | ctx.lineTo(x_e,ysize - ymarge);\ |
2300 | ctx.stroke();\ |
2268 | ctx.stroke();\ |
2301 | ctx.closePath();\ |
2269 | ctx.closePath();\ |
2302 | };\ |
2270 | };\ |
2303 | };\ |
2271 | };\ |
2304 | };\ |
2272 | };\ |
2305 | for(var p = y_min; p <= y_max ; p++){\ |
2273 | for(var p = y_min; p <= y_max ; p++){\ |
2306 | num = Math.pow(ylogbase,p);\ |
2274 | num = Math.pow(ylogbase,p);\ |
2307 | for(var i = 1 ; i < ylogbase ; i++){\ |
2275 | for(var i = 1 ; i < ylogbase ; i++){\ |
2308 | y_e = y2px(i*num);\ |
2276 | y_e = y2px(i*num);\ |
2309 | if( i == 1 ){\ |
2277 | if( i == 1 ){\ |
2310 | ctx.lineWidth = line_width;\ |
2278 | ctx.lineWidth = line_width;\ |
2311 | ctx.strokeStyle=\"rgba(\"+major_color+\",\"+major_opacity+\")\";\ |
2279 | ctx.strokeStyle=\"rgba(\"+major_color+\",\"+major_opacity+\")\";\ |
2312 | if( use_axis_numbering != -1 && p > y_min){\ |
2280 | if( use_axis_numbering != -1 && p > y_min){\ |
2313 | ctx.fillText(ylogbase+'^'+p.toFixed(0),0,y_e);\ |
2281 | ctx.fillText(ylogbase+'^'+p.toFixed(0),0,y_e);\ |
2314 | };\ |
2282 | };\ |
2315 | }else{\ |
2283 | }else{\ |
2316 | ctx.lineWidth = 0.2*line_width;\ |
2284 | ctx.lineWidth = 0.2*line_width;\ |
Line 2323... | Line 2291... | ||
2323 | ctx.closePath();\ |
2291 | ctx.closePath();\ |
2324 | };\ |
2292 | };\ |
2325 | };\ |
2293 | };\ |
2326 | ctx.restore();\ |
2294 | ctx.restore();\ |
2327 | };",canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id); |
2295 | };",canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id); |
2328 | break; |
2296 | break; |
2329 | - | ||
2330 | case DRAW_XLOGSCALE: |
2297 | case DRAW_XLOGSCALE: |
2331 | fprintf(js_include_file,"\n/* draw xlogscale */\ |
2298 | fprintf(js_include_file,"\n/* draw xlogscale */\ |
2332 | var draw_grid%d = function(canvas_type,line_width,major_color,minor_color,major_opacity,minor_opacity,font_size,font_family,font_color,use_axis_numbering,ymajor,yminor,precision){\ |
2299 | var draw_grid%d = function(canvas_type,line_width,major_color,minor_color,major_opacity,minor_opacity,font_size,font_family,font_color,use_axis_numbering,ymajor,yminor,precision){\ |
2333 | var obj;\ |
2300 | var obj;\ |
2334 | if( document.getElementById(\"wims_canvas%d\"+canvas_type) ){\ |
2301 | if( document.getElementById(\"wims_canvas%d\"+canvas_type) ){\ |
2335 | obj = document.getElementById(\"wims_canvas%d\"+canvas_type);\ |
2302 | obj = document.getElementById(\"wims_canvas%d\"+canvas_type);\ |
2336 | } else {\ |
2303 | } else {\ |
Line 2347... | Line 2314... | ||
2347 | var xtxt;var ytxt;var num;var xmarge;var ymarge;\ |
2314 | var xtxt;var ytxt;var num;var xmarge;var ymarge;\ |
2348 | if(use_axis_numbering != -1){\ |
2315 | if(use_axis_numbering != -1){\ |
2349 | ctx.font = font_family;\ |
2316 | ctx.font = font_family;\ |
2350 | xmarge = ctx.measureText(ymax.toFixed(prec)+' ').width;\ |
2317 | xmarge = ctx.measureText(ymax.toFixed(prec)+' ').width;\ |
2351 | ymarge = parseInt(1.5*font_size);\ |
2318 | ymarge = parseInt(1.5*font_size);\ |
2352 | ctx.save();\ |
2319 | ctx.save();\ |
2353 | ctx.fillStyle=\"rgba(255,215,0,0.2)\";\ |
2320 | ctx.fillStyle=\"rgba(255,215,0,0.2)\";\ |
2354 | ctx.rect(0,0,xmarge,ysize);\ |
2321 | ctx.rect(0,0,xmarge,ysize);\ |
2355 | ctx.rect(0,ysize-ymarge,xsize,ysize);\ |
2322 | ctx.rect(0,ysize-ymarge,xsize,ysize);\ |
2356 | ctx.fill();\ |
2323 | ctx.fill();\ |
2357 | ctx.restore();\ |
2324 | ctx.restore();\ |
2358 | }else{xmarge = 0;ymarge = 0;};\ |
2325 | }else{xmarge = 0;ymarge = 0;};\ |
Line 2385... | Line 2352... | ||
2385 | ctx.strokeStyle=\"rgba(\"+major_color+\",\"+major_opacity+\")\";\ |
2352 | ctx.strokeStyle=\"rgba(\"+major_color+\",\"+major_opacity+\")\";\ |
2386 | if( use_axis_numbering != -1 && p > x_min ){\ |
2353 | if( use_axis_numbering != -1 && p > x_min ){\ |
2387 | xtxt = xlogbase+'^'+p.toFixed(0);\ |
2354 | xtxt = xlogbase+'^'+p.toFixed(0);\ |
2388 | corr = 0.5*(ctx.measureText(xtxt).width);\ |
2355 | corr = 0.5*(ctx.measureText(xtxt).width);\ |
2389 | ctx.fillText(xtxt,x_e - corr,ysize - 4);\ |
2356 | ctx.fillText(xtxt,x_e - corr,ysize - 4);\ |
2390 | };\ |
2357 | };\ |
2391 | }else{\ |
2358 | }else{\ |
2392 | ctx.lineWidth = 0.2*line_width;\ |
2359 | ctx.lineWidth = 0.2*line_width;\ |
2393 | ctx.strokeStyle=\"rgba(\"+minor_color+\",\"+minor_opacity+\")\";\ |
2360 | ctx.strokeStyle=\"rgba(\"+minor_color+\",\"+minor_opacity+\")\";\ |
2394 | };\ |
2361 | };\ |
2395 | if( x_e >= xmarge ){\ |
2362 | if( x_e >= xmarge ){\ |
2396 | ctx.beginPath();\ |
2363 | ctx.beginPath();\ |
2397 | ctx.moveTo(x_e,0);\ |
2364 | ctx.moveTo(x_e,0);\ |
2398 | ctx.lineTo(x_e,ysize - ymarge);\ |
2365 | ctx.lineTo(x_e,ysize - ymarge);\ |
2399 | ctx.stroke();\ |
2366 | ctx.stroke();\ |
2400 | ctx.closePath();\ |
2367 | ctx.closePath();\ |
2401 | };\ |
2368 | };\ |
2402 | };\ |
2369 | };\ |
2403 | };\ |
2370 | };\ |
2404 | var stepy = Math.abs(y2px(ymajor) - y2px(0));\ |
2371 | var stepy = Math.abs(y2px(ymajor) - y2px(0));\ |
2405 | var minor_step = stepy / yminor;\ |
2372 | var minor_step = stepy / yminor;\ |
2406 | for(var y = 0 ; y < ysize - stepy ; y = y + stepy){\ |
2373 | for(var y = 0 ; y < ysize - stepy ; y = y + stepy){\ |
2407 | ctx.strokeStyle=\"rgba(\"+major_color+\",\"+major_opacity+\")\";\ |
2374 | ctx.strokeStyle=\"rgba(\"+major_color+\",\"+major_opacity+\")\";\ |
Line 2419... | Line 2386... | ||
2419 | ctx.strokeStyle=\"rgba(\"+minor_color+\",\"+minor_opacity+\")\";\ |
2386 | ctx.strokeStyle=\"rgba(\"+minor_color+\",\"+minor_opacity+\")\";\ |
2420 | ctx.lineWidth = 0.2*line_width;\ |
2387 | ctx.lineWidth = 0.2*line_width;\ |
2421 | ctx.beginPath();\ |
2388 | ctx.beginPath();\ |
2422 | ctx.moveTo(xmarge,y+dy*minor_step);\ |
2389 | ctx.moveTo(xmarge,y+dy*minor_step);\ |
2423 | ctx.lineTo(xsize,y+dy*minor_step);\ |
2390 | ctx.lineTo(xsize,y+dy*minor_step);\ |
2424 | ctx.stroke();\ |
2391 | ctx.stroke();\ |
2425 | ctx.closePath();\ |
2392 | ctx.closePath();\ |
2426 | };\ |
2393 | };\ |
2427 | };\ |
2394 | };\ |
2428 | ctx.restore();\ |
2395 | ctx.restore();\ |
2429 | };",canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id); |
2396 | };",canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id); |
2430 | break; |
2397 | break; |
2431 | - | ||
2432 | case DRAW_YLOGSCALE: |
2398 | case DRAW_YLOGSCALE: |
2433 | fprintf(js_include_file,"\n/* draw ylogscale */\ |
2399 | fprintf(js_include_file,"\n/* draw ylogscale */\ |
2434 | var draw_grid%d = function(canvas_type,line_width,major_color,minor_color,major_opacity,minor_opacity,font_size,font_family,font_color,use_axis_numbering,xmajor,xminor,precision){\ |
2400 | var draw_grid%d = function(canvas_type,line_width,major_color,minor_color,major_opacity,minor_opacity,font_size,font_family,font_color,use_axis_numbering,xmajor,xminor,precision){\ |
2435 | var obj;\ |
2401 | var obj;\ |
2436 | if( document.getElementById(\"wims_canvas%d\"+canvas_type) ){\ |
2402 | if( document.getElementById(\"wims_canvas%d\"+canvas_type) ){\ |
2437 | obj = document.getElementById(\"wims_canvas%d\"+canvas_type);\ |
2403 | obj = document.getElementById(\"wims_canvas%d\"+canvas_type);\ |
2438 | } else {\ |
2404 | } else {\ |
Line 2525... | Line 2491... | ||
2525 | ctx.closePath();\ |
2491 | ctx.closePath();\ |
2526 | };\ |
2492 | };\ |
2527 | };\ |
2493 | };\ |
2528 | ctx.restore();\ |
2494 | ctx.restore();\ |
2529 | };",canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id); |
2495 | };",canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id); |
2530 | break; |
2496 | break; |
2531 | - | ||
2532 | case ADD_USER_INPUTS: |
2497 | case ADD_USER_INPUTS: |
2533 | fprintf(js_include_file,"\n/* add_input_xy */\ |
2498 | fprintf(js_include_file,"\n/* add_input_xy */\ |
2534 | function add_input_xy(){\ |
2499 | function add_input_xy(){\ |
2535 | if( wims_status == \"done\" ){return;};\ |
2500 | if( wims_status == \"done\" ){return;};\ |
2536 | var tooltip_div = document.getElementById(\"tooltip_placeholder_div%d\");\ |
2501 | var tooltip_div = document.getElementById(\"tooltip_placeholder_div%d\");\ |
2537 | var input_xy_div = document.createElement('div');\ |
2502 | var input_xy_div = document.createElement('div');\ |
2538 | input_xy_div.id = \"input_xy_div\";\ |
2503 | input_xy_div.id = \"input_xy_div\";\ |
2539 | tooltip_div.appendChild(input_xy_div);",canvas_root_id); |
2504 | tooltip_div.appendChild(input_xy_div);",canvas_root_id); |
2540 | 2505 | ||
2541 | if(strstr(draw_type,"polyline") != NULL || strstr(draw_type,"point") != NULL || strstr(draw_type,"cross") != NULL ){ /* ( input_x : input_y )*/ |
2506 | if(strstr(draw_type,"polyline") != NULL || strstr(draw_type,"point") != NULL || strstr(draw_type,"cross") != NULL ){ /* ( input_x : input_y )*/ |
2542 | type=1; |
2507 | type=1; |
2543 | fprintf(js_include_file,"input_xy_div.innerHTML=\"<br><span class='%s'>(<input type='text' size='2' value='' id='userinput_x'/> : <input type='text' size='2' value='' id='userinput_y'/>)<input id='update_button' type='button' value='OK' onclick='' style='color:red;background-color:lightblue;'/><input id='delete_button' type='button' value='NOK' onclick='' style='color:blue;background-color:red;'/></span> \";",css_class); |
2508 | fprintf(js_include_file,"input_xy_div.innerHTML=\"<br><span class='%s'>(<input type='text' size='2' value='' id='userinput_x'/> : <input type='text' size='2' value='' id='userinput_y'/>)<input id='update_button' type='button' value='OK' onclick='' style='color:red;background-color:lightblue;'/><input id='delete_button' type='button' value='NOK' onclick='' style='color:blue;background-color:red;'/></span> \";",css_class); |
2544 | }else{ |
2509 | }else{ |
2545 | if(strstr(draw_type,"circle") != NULL ){/* M: (input_x :input_y) R:input_r*/ |
2510 | if(strstr(draw_type,"circle") != NULL ){/* M: (input_x :input_y) R:input_r*/ |
2546 | type=2; |
2511 | type=2; |
2547 | fprintf(js_include_file,"input_xy_div.innerHTML=\"<br><span class='%s'>M: (<input type='text' size='2' value='' id='userinput_x'/> : <input type='text' size='2' value='' id='userinput_y'/>) R: <input type='text' size='2' value='' id='userinput_r'/><input id='update_button' type='button' value='OK' onclick='' style='color:red;background-color:lightblue;'/><input id='delete_button' type='button' value='NOK' onclick='' style='color:blue;background-color:red;'/></span> \";",css_class); |
2512 | fprintf(js_include_file,"input_xy_div.innerHTML=\"<br><span class='%s'>M: (<input type='text' size='2' value='' id='userinput_x'/> : <input type='text' size='2' value='' id='userinput_y'/>) R: <input type='text' size='2' value='' id='userinput_r'/><input id='update_button' type='button' value='OK' onclick='' style='color:red;background-color:lightblue;'/><input id='delete_button' type='button' value='NOK' onclick='' style='color:blue;background-color:red;'/></span> \";",css_class); |
2548 | }else{ |
2513 | }else{ |
2549 | type=3; |
2514 | type=3; |
2550 | if(strstr(draw_type,"segment") != NULL || strstr(draw_type,"line") != NULL || strstr(draw_type,"arrow") != NULL ){ /* ( input_x1 : input_y1) --- ( input_x2 : input_y2) */ |
2515 | if(strstr(draw_type,"segment") != NULL || strstr(draw_type,"line") != NULL || strstr(draw_type,"arrow") != NULL ){ /* ( input_x1 : input_y1) --- ( input_x2 : input_y2) */ |
2551 | fprintf(js_include_file,"input_xy_div.innerHTML=\"<br><span class='%s'>(<input type='text' size='2' value='' id='userinput_x1'/> : <input type='text' size='2' value='' id='userinput_y1'/>) −−− (<input type='text' size='2' value='' id='userinput_x2'/> : <input type='text' size='2' value='' id='userinput_y2'/>)<input id='update_button' type='button' value='OK' onclick='' style='color:red;background-color:lightblue;'/><input id='delete_button' type='button' value='NOK' onclick='' style='color:blue;background-color:red;'/></span> \";",css_class); |
2516 | fprintf(js_include_file,"input_xy_div.innerHTML=\"<br><span class='%s'>(<input type='text' size='2' value='' id='userinput_x1'/> : <input type='text' size='2' value='' id='userinput_y1'/>) −−− (<input type='text' size='2' value='' id='userinput_x2'/> : <input type='text' size='2' value='' id='userinput_y2'/>)<input id='update_button' type='button' value='OK' onclick='' style='color:red;background-color:lightblue;'/><input id='delete_button' type='button' value='NOK' onclick='' style='color:blue;background-color:red;'/></span> \";",css_class); |
2552 | }else{ |
2517 | }else{ |
2553 | type=4; |
2518 | type=4; |
2554 | if(strstr(draw_type,"triang") != NULL ){ /* ( input_x1 : input_y1) --- ( input_x2 : input_y2) --- ( input_x3 : input_y3) */ |
2519 | if(strstr(draw_type,"triang") != NULL ){ /* ( input_x1 : input_y1) --- ( input_x2 : input_y2) --- ( input_x3 : input_y3) */ |
2555 | fprintf(js_include_file,"input_xy_div.innerHTML=\"<br><span class='%s'>⃤ <input id='update_button' type='button' value='OK' onclick='' style='color:red;background-color:lightblue;'/><input id='delete_button' type='button' value='NOK' onclick='' style='color:blue;background-color:red;'/><br/>(<input type='text' size='2' value='' id='userinput_x1'/> : <input type='text' size='2' value='' id='userinput_y1'/>)<br/>(<input type='text' size='2' value='' id='userinput_x2'/> : <input type='text' size='2' value='' id='userinput_y2'/>)<br/>(<input type='text' size='2' value='' id='userinput_x3'/> : <input type='text' size='2' value='' id='userinput_y3'/>)</span> \";",css_class); |
2520 | fprintf(js_include_file,"input_xy_div.innerHTML=\"<br><span class='%s'>⃤ <input id='update_button' type='button' value='OK' onclick='' style='color:red;background-color:lightblue;'/><input id='delete_button' type='button' value='NOK' onclick='' style='color:blue;background-color:red;'/><br/>(<input type='text' size='2' value='' id='userinput_x1'/> : <input type='text' size='2' value='' id='userinput_y1'/>)<br/>(<input type='text' size='2' value='' id='userinput_x2'/> : <input type='text' size='2' value='' id='userinput_y2'/>)<br/>(<input type='text' size='2' value='' id='userinput_x3'/> : <input type='text' size='2' value='' id='userinput_y3'/>)</span> \";",css_class); |
2556 | }else{ |
2521 | }else{ |
2557 | type=5; |
2522 | type=5; |
2558 | if(strstr(draw_type,"text") != NULL ){ /*Text: input_r ( input_x1 : input_y1) */ |
2523 | if(strstr(draw_type,"text") != NULL ){ /*Text: input_r ( input_x1 : input_y1) */ |
2559 | fprintf(js_include_file,"input_xy_div.innerHTML=\"<br><span class='%s'>(<input type='text' size='2' value='' id='userinput_x'/>:<input type='text' size='2' value='' id='userinput_y'/>) <input id='update_button' type='button' value='OK' onclick='' style='color:red;background-color:lightblue;'/><input id='delete_button' type='button' value='NOK' onclick='' style='color:blue;background-color:red;'/></span> \";",css_class); |
2524 | fprintf(js_include_file,"input_xy_div.innerHTML=\"<br><span class='%s'>(<input type='text' size='2' value='' id='userinput_x'/>:<input type='text' size='2' value='' id='userinput_y'/>) <input id='update_button' type='button' value='OK' onclick='' style='color:red;background-color:lightblue;'/><input id='delete_button' type='button' value='NOK' onclick='' style='color:blue;background-color:red;'/></span> \";",css_class); |
2560 | }else{canvas_error("command 'userinput' or 'userinput_xy' is not supported for your 'userdraw' type..."); |
2525 | }else{canvas_error("command 'userinput' or 'userinput_xy' is not supported for your 'userdraw' type..."); |
- | 2526 | } |
|
- | 2527 | } |
|
- | 2528 | } |
|
2561 |
|
2529 | } |
2562 | 2530 | } |
|
2563 | fprintf(js_include_file,"\ |
2531 | fprintf(js_include_file,"\ |
2564 | var update_button = document.getElementById(\"update_button\");\ |
2532 | var update_button = document.getElementById(\"update_button\");\ |
2565 | var delete_button = document.getElementById(\"delete_button\");\ |
2533 | var delete_button = document.getElementById(\"delete_button\");\ |
2566 | update_button.addEventListener(\"mousedown\",function(e){update_me();redraw_userdraw();return;},false);\ |
2534 | update_button.addEventListener(\"mousedown\",function(e){update_me();redraw_userdraw();return;},false);\ |
2567 | delete_button.addEventListener(\"mousedown\",function(e){remove_last();return;},false);\ |
2535 | delete_button.addEventListener(\"mousedown\",function(e){remove_last();return;},false);\ |
2568 | };add_input_xy();"); |
2536 | };add_input_xy();"); |
2569 | 2537 | ||
2570 | switch(type){ |
2538 | switch(type){ |
2571 | case 1: |
2539 | case 1: |
2572 | fprintf(js_include_file,"\n/* add_input_xy */\ |
2540 | fprintf(js_include_file,"\n/* add_input_xy */\ |
2573 | function update_me(){\ |
2541 | function update_me(){\ |
2574 | var x = safe_eval(document.getElementById('userinput_x').value);\ |
2542 | var x = safe_eval(document.getElementById('userinput_x').value);\ |
2575 | var y = safe_eval(document.getElementById('userinput_y').value);\ |
2543 | var y = safe_eval(document.getElementById('userinput_y').value);\ |
2576 | userdraw_x.push(x2px(x));userdraw_y.push(y2px(y));\ |
2544 | userdraw_x.push(x2px(x));userdraw_y.push(y2px(y));\ |
2577 | return;\ |
2545 | return;\ |
2578 | };");break; |
2546 | };");break; |
2579 | case 2: |
2547 | case 2: |
2580 | fprintf(js_include_file,"\n/* add_input_xy */\ |
2548 | fprintf(js_include_file,"\n/* add_input_xy */\ |
2581 | function update_me(){\ |
2549 | function update_me(){\ |
2582 | var x = safe_eval(document.getElementById('userinput_x').value);\ |
2550 | var x = safe_eval(document.getElementById('userinput_x').value);\ |
2583 | var y = safe_eval(document.getElementById('userinput_y').value);\ |
2551 | var y = safe_eval(document.getElementById('userinput_y').value);\ |
2584 | var r = safe_eval(document.getElementById('userinput_r').value);\ |
2552 | var r = safe_eval(document.getElementById('userinput_r').value);\ |
2585 | r = scale_x_radius(r);\ |
2553 | r = scale_x_radius(r);\ |
2586 | userdraw_radius.push(r);userdraw_x.push(x2px(x));userdraw_y.push(y2px(y));\ |
2554 | userdraw_radius.push(r);userdraw_x.push(x2px(x));userdraw_y.push(y2px(y));\ |
2587 | return;\ |
2555 | return;\ |
2588 | };");break; |
2556 | };");break; |
2589 | case 3: |
2557 | case 3: |
2590 | fprintf(js_include_file,"\n/* add_input_xy */\ |
2558 | fprintf(js_include_file,"\n/* add_input_xy */\ |
2591 | function update_me(){\ |
2559 | function update_me(){\ |
2592 | var x,y;\ |
2560 | var x,y;\ |
2593 | for(var p=1; p<3;p++){\ |
2561 | for(var p=1; p<3;p++){\ |
2594 | x = safe_eval(document.getElementById('userinput_x'+p).value);\ |
2562 | x = safe_eval(document.getElementById('userinput_x'+p).value);\ |
2595 | y = safe_eval(document.getElementById('userinput_y'+p).value);\ |
2563 | y = safe_eval(document.getElementById('userinput_y'+p).value);\ |
2596 | userdraw_x.push(x2px(x));userdraw_y.push(y2px(y));\ |
2564 | userdraw_x.push(x2px(x));userdraw_y.push(y2px(y));\ |
2597 | };\ |
2565 | };\ |
2598 | return;\ |
2566 | return;\ |
2599 | };"); |
2567 | };"); |
2600 | break; |
2568 | break; |
2601 | case 4: |
2569 | case 4: |
2602 | fprintf(js_include_file,"\n/* add_input_xy */\ |
2570 | fprintf(js_include_file,"\n/* add_input_xy */\ |
2603 | function update_me(){\ |
2571 | function update_me(){\ |
2604 | var x,y;\ |
2572 | var x,y;\ |
2605 | for(var p=1; p<4;p++){\ |
2573 | for(var p=1; p<4;p++){\ |
2606 | x = safe_eval(document.getElementById('userinput_x'+p).value);\ |
2574 | x = safe_eval(document.getElementById('userinput_x'+p).value);\ |
2607 | y = safe_eval(document.getElementById('userinput_y'+p).value);\ |
2575 | y = safe_eval(document.getElementById('userinput_y'+p).value);\ |
2608 | userdraw_x.push(x2px(x));userdraw_y.push(y2px(y));\ |
2576 | userdraw_x.push(x2px(x));userdraw_y.push(y2px(y));\ |
2609 | };\ |
2577 | };\ |
2610 | return;\ |
2578 | return;\ |
2611 | };"); |
2579 | };"); |
2612 | break; |
2580 | break; |
2613 | case 5: |
2581 | case 5: |
2614 | /* a inputfield with 'id=userdraw_text_abc' is provided by command 'userdraw text,color'*/ |
2582 | /* a inputfield with 'id=userdraw_text_abc' is provided by command 'userdraw text,color'*/ |
2615 | fprintf(js_include_file,"\n/* add_input_xy */\ |
2583 | fprintf(js_include_file,"\n/* add_input_xy */\ |
2616 | function update_me(){\ |
2584 | function update_me(){\ |
2617 | var x = safe_eval(document.getElementById('userinput_x').value);\ |
2585 | var x = safe_eval(document.getElementById('userinput_x').value);\ |
2618 | var y = safe_eval(document.getElementById('userinput_y').value);\ |
2586 | var y = safe_eval(document.getElementById('userinput_y').value);\ |
2619 | var txt = conv_to_unicode(document.getElementById('userdraw_text_abc').value);\ |
2587 | var txt = conv_to_unicode(document.getElementById('userdraw_text_abc').value);\ |
2620 | userdraw_x.push(x2px(x));userdraw_y.push(y2px(y));userdraw_text.push(txt.replace(/\\\\/g,' '));\ |
2588 | userdraw_x.push(x2px(x));userdraw_y.push(y2px(y));userdraw_text.push(txt.replace(/\\\\/g,' '));\ |
2621 | return;\ |
2589 | return;\ |
2622 | };"); |
2590 | };"); |
2623 | break; |
2591 | break; |
2624 | default: canvas_error("hmmm, I've no idea...");break; |
2592 | default: canvas_error("hmmm, I've no idea...");break; |
2625 | } |
2593 | } |
2626 | - | ||
2627 | break; |
2594 | break; |
2628 | - | ||
2629 | default:break; |
2595 | default:break; |
- | 2596 | } |
|
2630 | } |
2597 | } |
2631 | } |
2598 | } |
2632 | } |
- | |
2633 | return; |
2599 | return; |
2634 | } |
2600 | } |