Rev 17576 | Rev 18559 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 17576 | Rev 18556 | ||
---|---|---|---|
Line 9... | Line 9... | ||
9 | "crosshair","crosshairs","function","functions"}; |
9 | "crosshair","crosshairs","function","functions"}; |
10 | /*size of words "point","points",... == 6,7,..*/ |
10 | /*size of words "point","points",... == 6,7,..*/ |
11 | static int multidraw_primitives_length[MAX_MULTI_PRIMITIVES] = {6,7,8,7,6,5,9,8,7,6,10,9,11,5,6,5,6,5,15,14,7,14,13,13,12,10,11,9,10}; |
11 | static int multidraw_primitives_length[MAX_MULTI_PRIMITIVES] = {6,7,8,7,6,5,9,8,7,6,10,9,11,5,6,5,6,5,15,14,7,14,13,13,12,10,11,9,10}; |
12 | 12 | ||
13 | void add_js_multidraw(char *draw_types,char *table_css,int use_offset,int no_controls,int crosshair_size,int use_zoom){ |
13 | void add_js_multidraw(char *draw_types,char *table_css,int use_offset,int no_controls,int crosshair_size,int use_zoom){ |
14 | int i=0;int p;int found = 0; |
14 | int i=0;int p;int found = 0; |
15 | size_t L0 = 1 + snprintf(NULL,0,"%s",draw_types); |
15 | size_t L0 = 1 + snprintf(NULL,0,"%s",draw_types); |
16 | char *str = my_newmem(L0);snprintf(str,L0,"%s",draw_types);char *array[L0]; |
16 | char *str = my_newmem(L0);snprintf(str,L0,"%s",draw_types);char *array[L0]; |
17 | int user_nums[MAX_MULTI_PRIMITIVES]; /* we don't know the number of different draw primitives: so assume MAX */ |
17 | int user_nums[MAX_MULTI_PRIMITIVES]; /* we don't know the number of different draw primitives: so assume MAX */ |
18 | int draw_nums[MAX_MULTI_PRIMITIVES]; |
18 | int draw_nums[MAX_MULTI_PRIMITIVES]; |
19 | for(i=0;i<MAX_MULTI_PRIMITIVES;i++){draw_nums[i] = -1;user_nums[i] = -1;} |
19 | for(i=0;i<MAX_MULTI_PRIMITIVES;i++){draw_nums[i] = -1;user_nums[i] = -1;} |
20 | /* link the user given primitives to the internal indexes of the draw primitives */ |
20 | /* link the user given primitives to the internal indexes of the draw primitives */ |
21 | int equal = -1; i = 0; |
21 | int equal = -1; i = 0; |
22 | array[i] = strtok(str,","); |
22 | array[i] = strtok(str,","); |
23 | int polynum = -1; |
23 | int polynum = -1; |
24 | char *pp;int safe=0; |
24 | char *pp;int safe=0; |
25 | while(array[i]!=NULL){ |
25 | while(array[i]!=NULL){ |
26 | found = 0; |
26 | found = 0; |
27 | if( strstr(array[i],"poly") != NULL ){/* getting the numerical argument from: poly3...polys9 */ |
27 | if( strstr(array[i],"poly") != NULL ){/* getting the numerical argument from: poly3...polys9 */ |
28 | if( strstr(array[i],"closedpoly") == NULL && strstr(array[i],"polygon") == NULL){ |
28 | if( strstr(array[i],"closedpoly") == NULL && strstr(array[i],"polygon") == NULL){ |
- | 29 | pp = array[i]; |
|
29 |
|
30 | while( *pp ){safe++; |
30 | if(safe > MAX_MULTI_PRIMITIVES){break;} |
31 | if(safe > MAX_MULTI_PRIMITIVES){break;} |
31 | if( isdigit(*pp) ){ polynum = atoi(pp);if( strstr( array[i],"polys") != NULL ) {array[i] = "polys";}else{ array[i] = "poly";}break;} else { pp++;} |
32 | if( isdigit(*pp) ){ polynum = atoi(pp);if( strstr( array[i],"polys") != NULL ) {array[i] = "polys";}else{ array[i] = "poly";}break;} else { pp++;} |
32 | } |
33 | } |
33 | } |
34 | } |
34 | } |
35 | } |
35 | for( p = 0 ; p < MAX_MULTI_PRIMITIVES; p++){ |
36 | for( p = 0 ; p < MAX_MULTI_PRIMITIVES; p++){ |
36 | /* multidraw_primitives defined in canvasdraw.h */ |
37 | /* multidraw_primitives defined in canvasdraw.h */ |
37 | equal = strncmp(multidraw_primitives[p],array[i],multidraw_primitives_length[p]); |
38 | equal = strncmp(multidraw_primitives[p],array[i],multidraw_primitives_length[p]); |
38 | if (equal == 0 ){ |
39 | if (equal == 0 ){ |
39 | /* fprintf(stdout,"found %s i=%d p=%d<br>",multidraw_primitives[p],i,p);*/ |
40 | /* fprintf(stdout,"found %s i=%d p=%d<br>",multidraw_primitives[p],i,p);*/ |
40 | draw_nums[p]= p;user_nums[p] = i; |
41 | draw_nums[p]= p;user_nums[p] = i; |
41 | found=1; break; |
42 | found=1; break; |
42 | } |
43 | } |
43 | } |
44 | } |
44 | if( found == 0 ){canvas_error("unknown multidraw primitive found...typo?");} |
45 | if( found == 0 ){canvas_error("unknown multidraw primitive found...typo?");} |
45 | array[++i] = strtok(NULL,","); |
46 | array[++i] = strtok(NULL,","); |
46 | } |
47 | } |
47 | /* multilabel is js-array */ |
48 | /* multilabel is js-array */ |
48 | if( no_controls != 1 ){ fprintf(js_include_file,"var inner_html=\"<table class='%s'>\";",table_css); }else{fprintf(js_include_file,"var inner_html = \"\";");} |
49 | if( no_controls != 1 ){ fprintf(js_include_file,"var inner_html=\"<table class='%s'>\";",table_css); }else{fprintf(js_include_file,"var inner_html = \"\";");} |
49 | 50 | ||
50 | /* some default stuff */ |
51 | /* some default stuff */ |
51 | fprintf(js_include_file,"\n/* multidraw */\ |
52 | fprintf(js_include_file,"\n/* multidraw */\ |
52 | var canvas_userdraw = create_canvas%d(1000,xsize,ysize);var context_userdraw = canvas_userdraw.getContext(\"2d\");\ |
53 | var canvas_userdraw = create_canvas%d(1000,xsize,ysize);var context_userdraw = canvas_userdraw.getContext(\"2d\");\ |
53 | var multidraw_object_cnt = 0;\ |
54 | var multidraw_object_cnt = 0;\ |
54 | var tooltip_div = document.getElementById(\"tooltip_placeholder_div%d\");\ |
55 | var tooltip_div = document.getElementById(\"tooltip_placeholder_div%d\");\ |
55 | function multi_snap_check(x,y,snap){switch(snap){case 1:return [snap_to_x(x),snap_to_y(y)];break;case 2:return [snap_to_x(x),y];break;case 3:return [x,snap_to_y(y)];break;case 4:return snap_to_points(x,y);break;default: return [x,y];break;};};\ |
56 | function multi_snap_check(x,y,snap){switch(snap){case 1:return [snap_to_x(x),snap_to_y(y)];break;case 2:return [snap_to_x(x),y];break;case 3:return [x,snap_to_y(y)];break;case 4:return snap_to_points(x,y);break;default: return [x,y];break;};};\ |
56 | function coord_split(coord){if(coord.indexOf(':') > 0 ){return coord.split(':');}else{if(coord.indexOf(';') > 0 ){return coord.split(';');}else{if(coord.indexOf(',') > 0 ){return coord.split(',');}else{alert(coord+'-- X : Y ');return;};};};};",canvas_root_id,canvas_root_id); |
57 | function coord_split(coord){if(coord.indexOf(':') > 0 ){return coord.split(':');}else{if(coord.indexOf(';') > 0 ){return coord.split(';');}else{if(coord.indexOf(',') > 0 ){return coord.split(',');}else{alert(coord+'-- X : Y ');return;};};};};",canvas_root_id,canvas_root_id); |
57 | - | ||
58 | 58 | ||
59 | - | ||
60 | if( use_zoom == 1 ){/* only use zoom when command 'zoom color' is given before command 'multidraw' */ |
59 | if( use_zoom == 1 ){/* only use zoom when command 'zoom color' is given before command 'multidraw' */ |
61 | fprintf(js_include_file,"forbidden_zone = [%d,%d];\ |
60 | fprintf(js_include_file,"forbidden_zone = [%d,%d];\ |
62 | function recalculate_multidraw(xmin0,xmax0,ymin0,ymax0){\ |
61 | function recalculate_multidraw(xmin0,xmax0,ymin0,ymax0){\ |
63 | function scale_xy(type,xy){var tmp_xmin = xmin;var tmp_xmax = xmax;var tmp_ymin = ymin;var tmp_ymax = ymax;xmin=xmin0;xmax=xmax0;ymin=ymin0;ymax=ymax0;if(type == 1 ){for(var p=0;p<xy.length;p++){xy[p] = px2x(xy[p]);};}else{for(var p=0;p<xy.length;p++){xy[p] = px2y(xy[p]);};};xmin = tmp_xmin;ymin = tmp_ymin;xmax = tmp_xmax;ymax = tmp_ymax;if(type == 1){for(var p=0;p<xy.length;p++){xy[p] = x2px(xy[p]);}}else{for(var p=0;p<xy.length;p++){xy[p] = y2px(xy[p]);};};return xy;};\ |
62 | function scale_xy(type,xy){var tmp_xmin = xmin;var tmp_xmax = xmax;var tmp_ymin = ymin;var tmp_ymax = ymax;xmin=xmin0;xmax=xmax0;ymin=ymin0;ymax=ymax0;if(type == 1 ){for(var p=0;p<xy.length;p++){xy[p] = px2x(xy[p]);};}else{for(var p=0;p<xy.length;p++){xy[p] = px2y(xy[p]);};};xmin = tmp_xmin;ymin = tmp_ymin;xmax = tmp_xmax;ymax = tmp_ymax;if(type == 1){for(var p=0;p<xy.length;p++){xy[p] = x2px(xy[p]);}}else{for(var p=0;p<xy.length;p++){xy[p] = y2px(xy[p]);};};return xy;};\ |
64 | function scale_multi_radius(r){for(var p = 0 ; p < r.length;p++ ){r[p] = zoom_xy[0]/xmin*r[p];};return r;};",xsize-115,ysize - 20); |
63 | function scale_multi_radius(r){for(var p = 0 ; p < r.length;p++ ){r[p] = zoom_xy[0]/xmin*r[p];};return r;};",xsize-115,ysize - 20); |
65 | - | ||
66 | - | ||
67 | for(i=0; i < MAX_MULTI_PRIMITIVES ; i++ ){ |
64 | for(i=0; i < MAX_MULTI_PRIMITIVES ; i++ ){ |
68 | switch( draw_nums[i] ){ |
65 | switch( draw_nums[i] ){ |
69 | case -1 |
66 | case -1 : break; |
70 | case 0 ... 1 :fprintf(js_include_file,"if( points_x && points_x.length > 0 ){points_x = scale_xy(1,points_x);points_y = scale_xy(1,points_y);draw_points();};");break; |
67 | case 0 ... 1 :fprintf(js_include_file,"if( points_x && points_x.length > 0 ){points_x = scale_xy(1,points_x);points_y = scale_xy(1,points_y);draw_points();};");break; |
71 | case 2 ... 3 :fprintf(js_include_file,"if( circles_x && circles_x.length > 0 ){circles_x = scale_xy(1,circles_x);circles_y = scale_xy(1,circles_y);multi_radius = scale_multi_radius(multi_radius);draw_circles();};");break; |
68 | case 2 ... 3 :fprintf(js_include_file,"if( circles_x && circles_x.length > 0 ){circles_x = scale_xy(1,circles_x);circles_y = scale_xy(1,circles_y);multi_radius = scale_multi_radius(multi_radius);draw_circles();};");break; |
72 | case 4 ... 5 :fprintf(js_include_file,"if( lines_x && lines_x.length > 0 ){lines_x = scale_xy(1,lines_x);lines_y = scale_xy(2,lines_y);draw_lines();};");break; |
69 | case 4 ... 5 :fprintf(js_include_file,"if( lines_x && lines_x.length > 0 ){lines_x = scale_xy(1,lines_x);lines_y = scale_xy(2,lines_y);draw_lines();};");break; |
73 | case 6 ... 7 :fprintf(js_include_file,"if( segments_x && segments_x.length > 0 ){segments_x = scale_xy(1,segments_x);segments_y = scale_xy(1,segments_y);draw_segments();};");break; |
70 | case 6 ... 7 :fprintf(js_include_file,"if( segments_x && segments_x.length > 0 ){segments_x = scale_xy(1,segments_x);segments_y = scale_xy(1,segments_y);draw_segments();};");break; |
74 | case 8 ... 9 :fprintf(js_include_file,"if( arrows_x && arrows_x.length > 0 ){arrows_x = scale_xy(1,arrows_x);arrows_y = scale_xy(2,arrows_y);draw_arrows();};");break; |
71 | case 8 ... 9 :fprintf(js_include_file,"if( arrows_x && arrows_x.length > 0 ){arrows_x = scale_xy(1,arrows_x);arrows_y = scale_xy(2,arrows_y);draw_arrows();};");break; |
75 | case 10 ... 11 :fprintf(js_include_file,"if( triangles_x && triangles_x.length > 0 ){triangles_x = scale_xy(1,triangles_x);triangles_y = scale_xy(2,triangles_y);draw_triangles();};");break; |
72 | case 10 ... 11 :fprintf(js_include_file,"if( triangles_x && triangles_x.length > 0 ){triangles_x = scale_xy(1,triangles_x);triangles_y = scale_xy(2,triangles_y);draw_triangles();};");break; |
76 | case 14 ... 15 :fprintf(js_include_file,"if( rects_x && rects_x.length > 0 ){rects_x = scale_xy(1,rects_x);rects_y = scale_xy(2,rects_y);draw_rects();};");break; |
73 | case 14 ... 15 :fprintf(js_include_file,"if( rects_x && rects_x.length > 0 ){rects_x = scale_xy(1,rects_x);rects_y = scale_xy(2,rects_y);draw_rects();};");break; |
77 | case |
74 | case 12 :fprintf(js_include_file,"if( closedpoly_x && closedpoly_x.length > 0 ){closedpoly_x = scale_xy(1,closedpoly_x);closedpoly_y = scale_xy(2,closedpoly_y);draw_closedpoly();};");break; |
78 | case |
75 | case 13 :fprintf(js_include_file,"if( text_x && text_x.length > 0 ){text_x = scale_xy(1,text_x);text_y = scale_xy(2,text_y);draw_text();};");break; |
79 | case 16 ... 17 :fprintf(js_include_file,"if( polys_x && polys_x.length > 0 ){polys_x = scale_xy(1,polys_x);polys_y = scale_xy(2,polys_y);draw_polys();};");break; |
76 | case 16 ... 17 :fprintf(js_include_file,"if( polys_x && polys_x.length > 0 ){polys_x = scale_xy(1,polys_x);polys_y = scale_xy(2,polys_y);draw_polys();};");break; |
80 | case 18 ... 18 :fprintf(js_include_file,"if( parallelogram_x && parallelogram_x.length > 0 ){parallelogram_x = scale_xy(1,parallelogram_x);parallelogram_y = scale_xy(2,parallelogram_y);draw_parallelogram();};");break; |
77 | case 18 ... 18 :fprintf(js_include_file,"if( parallelogram_x && parallelogram_x.length > 0 ){parallelogram_x = scale_xy(1,parallelogram_x);parallelogram_y = scale_xy(2,parallelogram_y);draw_parallelogram();};");break; |
81 | case |
78 | case 20 :fprintf(js_include_file,"if( images_x && images_x.length > 0 ){images_x = scale_xy(1,images_x);images_y = scale_xy(2,images_y);draw_images();};");break; |
82 | case 21 ... 22 :fprintf(js_include_file,"if( curvedarrows_x && curvedarrows_x.length > 0 ){curvedarrows_x = scale_xy(1,curvedarrows_x);curvedarrows_y = scale_xy(2,curvedarrows_y);draw_curvedarrows();};");break; |
79 | case 21 ... 22 :fprintf(js_include_file,"if( curvedarrows_x && curvedarrows_x.length > 0 ){curvedarrows_x = scale_xy(1,curvedarrows_x);curvedarrows_y = scale_xy(2,curvedarrows_y);draw_curvedarrows();};");break; |
83 | case 23 ... 24 :fprintf(js_include_file,"if( curvedarrows2_x && curvedarrows2_x.length > 0 ){curvedarrows2_x = scale_xy(1,curvedarrows2_x);curvedarrows2_y = scale_xy(2,curvedarrows2_y);draw_curvedarrows2();};");break; |
80 | case 23 ... 24 :fprintf(js_include_file,"if( curvedarrows2_x && curvedarrows2_x.length > 0 ){curvedarrows2_x = scale_xy(1,curvedarrows2_x);curvedarrows2_y = scale_xy(2,curvedarrows2_y);draw_curvedarrows2();};");break; |
84 | case 25 ... 26 :fprintf(js_include_file,"if( crosshairs_x && crosshairs_x.length > 0 ){crosshairs_x = scale_xy(1,crosshairs_x);crosshairs_y = scale_xy(1,crosshairs_y);draw_crosshairs();};");break; |
81 | case 25 ... 26 :fprintf(js_include_file,"if( crosshairs_x && crosshairs_x.length > 0 ){crosshairs_x = scale_xy(1,crosshairs_x);crosshairs_y = scale_xy(1,crosshairs_y);draw_crosshairs();};");break; |
85 | case 27:break; |
82 | case 27:break; |
86 | default |
83 | default : break; |
- | 84 | } |
|
- | 85 | } |
|
- | 86 | fprintf(js_include_file," return;};"); |
|
87 | } |
87 | } |
88 | } |
- | |
89 | fprintf(js_include_file," return;};"); |
- | |
90 | } |
- | |
91 | /* begin user_draw() */ |
88 | /* begin user_draw() */ |
92 | fprintf(js_include_file,"function user_draw(evt){\ |
89 | fprintf(js_include_file,"function user_draw(evt){\ |
93 | if(evt.button == 3){clear_draw_area%d(userdraw_primitive,0);return;};\ |
90 | if(evt.button == 3){clear_draw_area%d(userdraw_primitive,0);return;};\ |
94 | var mouse = getMouse(evt,canvas_userdraw);\ |
91 | var mouse = getMouse(evt,canvas_userdraw);\ |
95 | var x = mouse.x;var y = mouse.y;\ |
92 | var x = mouse.x;var y = mouse.y;\ |
96 | user_is_dragging = false;\ |
93 | user_is_dragging = false;\ |
97 | if(x>forbidden_zone[0] && y>forbidden_zone[1]){console.log('drawing in zoom area...');return;};\ |
94 | if(x>forbidden_zone[0] && y>forbidden_zone[1]){console.log('drawing in zoom area...');return;};\ |
98 | switch(userdraw_primitive){",canvas_root_id); |
95 | switch(userdraw_primitive){",canvas_root_id); |
99 | for(i=0; i < MAX_MULTI_PRIMITIVES ; i++ ){ |
96 | for(i=0; i < MAX_MULTI_PRIMITIVES ; i++ ){ |
100 | switch( draw_nums[i] ){ |
97 | switch( draw_nums[i] ){ |
101 | case -1: break; |
98 | case -1: break; |
102 | case 0:fprintf(js_include_file,"case 0: points(x,y,0,0);break;");break; |
99 | case 0:fprintf(js_include_file,"case 0: points(x,y,0,0);break;");break; |
103 | case 1:fprintf(js_include_file,"case 1: points(x,y,0,1);break;");break; |
100 | case 1:fprintf(js_include_file,"case 1: points(x,y,0,1);break;");break; |
104 | case 2:fprintf(js_include_file,"case 2: circles(x,y,0,0);break;");break; |
101 | case 2:fprintf(js_include_file,"case 2: circles(x,y,0,0);break;");break; |
105 | case 3:fprintf(js_include_file,"case 3: circles(x,y,0,1);break;");break; |
102 | case 3:fprintf(js_include_file,"case 3: circles(x,y,0,1);break;");break; |
106 | case 4:fprintf(js_include_file,"case 4: lines(x,y,0,0);break;");break; |
103 | case 4:fprintf(js_include_file,"case 4: lines(x,y,0,0);break;");break; |
107 | case 5:fprintf(js_include_file,"case 5: lines(x,y,0,1);break;");break; |
104 | case 5:fprintf(js_include_file,"case 5: lines(x,y,0,1);break;");break; |
108 | case 6:fprintf(js_include_file,"case 6: segments(x,y,0,0);break;");break; |
105 | case 6:fprintf(js_include_file,"case 6: segments(x,y,0,0);break;");break; |
109 | case 7:fprintf(js_include_file,"case 7: segments(x,y,0,1);break;");break; |
106 | case 7:fprintf(js_include_file,"case 7: segments(x,y,0,1);break;");break; |
110 | case 8:fprintf(js_include_file,"case 8: arrows(x,y,0,0);break;");break; |
107 | case 8:fprintf(js_include_file,"case 8: arrows(x,y,0,0);break;");break; |
111 | case 9:fprintf(js_include_file,"case 9: arrows(x,y,0,1);break;");break; |
108 | case 9:fprintf(js_include_file,"case 9: arrows(x,y,0,1);break;");break; |
112 | case 10:fprintf(js_include_file,"case 10: triangles(x,y,0,0);break;");break; |
109 | case 10:fprintf(js_include_file,"case 10: triangles(x,y,0,0);break;");break; |
113 | case 11:fprintf(js_include_file,"case 11: triangles(x,y,0,1);break;");break; |
110 | case 11:fprintf(js_include_file,"case 11: triangles(x,y,0,1);break;");break; |
114 | case 12:fprintf(js_include_file,"case 12: closedpoly(x,y,0,0);break;");break; |
111 | case 12:fprintf(js_include_file,"case 12: closedpoly(x,y,0,0);break;");break; |
115 | case 13:fprintf(js_include_file,"case 13: text(x,y,0,1);break;");break; |
112 | case 13:fprintf(js_include_file,"case 13: text(x,y,0,1);break;");break; |
116 | case 14:fprintf(js_include_file,"case 14: rects(x,y,0,0);break;");break; |
113 | case 14:fprintf(js_include_file,"case 14: rects(x,y,0,0);break;");break; |
117 | case 15:fprintf(js_include_file,"case 15: rects(x,y,0,1);break;");break; |
114 | case 15:fprintf(js_include_file,"case 15: rects(x,y,0,1);break;");break; |
118 | case 16:fprintf(js_include_file,"case 16: polys(x,y,0,0);break;");break; |
115 | case 16:fprintf(js_include_file,"case 16: polys(x,y,0,0);break;");break; |
119 | case 17:fprintf(js_include_file,"case 17: polys(x,y,0,1);break;");break; |
116 | case 17:fprintf(js_include_file,"case 17: polys(x,y,0,1);break;");break; |
120 | case 18:fprintf(js_include_file,"case 18: parallelogram(x,y,0,0);break;");break; |
117 | case 18:fprintf(js_include_file,"case 18: parallelogram(x,y,0,0);break;");break; |
121 | case 19:fprintf(js_include_file,"case 19: parallelogram(x,y,0,1);break;");break; |
118 | case 19:fprintf(js_include_file,"case 19: parallelogram(x,y,0,1);break;");break; |
122 | case 20:fprintf(js_include_file,"case 20: images(x,y,0,1);break;");break; |
119 | case 20:fprintf(js_include_file,"case 20: images(x,y,0,1);break;");break; |
123 | case 21:fprintf(js_include_file,"case 21: curvedarrows(x,y,0,0);break;");break; |
120 | case 21:fprintf(js_include_file,"case 21: curvedarrows(x,y,0,0);break;");break; |
124 | case 22:fprintf(js_include_file,"case 22: curvedarrows(x,y,0,1);break;");break; |
121 | case 22:fprintf(js_include_file,"case 22: curvedarrows(x,y,0,1);break;");break; |
125 | case 23:fprintf(js_include_file,"case 23: curvedarrows2(x,y,0,0);break;");break; |
122 | case 23:fprintf(js_include_file,"case 23: curvedarrows2(x,y,0,0);break;");break; |
126 | case 24:fprintf(js_include_file,"case 24: curvedarrows2(x,y,0,1);break;");break; |
123 | case 24:fprintf(js_include_file,"case 24: curvedarrows2(x,y,0,1);break;");break; |
127 | case 25:fprintf(js_include_file,"case 25: crosshairs(x,y,0,0);break;");break; |
124 | case 25:fprintf(js_include_file,"case 25: crosshairs(x,y,0,0);break;");break; |
128 | case 26:fprintf(js_include_file,"case 26: crosshairs(x,y,0,1);break;");break; |
125 | case 26:fprintf(js_include_file,"case 26: crosshairs(x,y,0,1);break;");break; |
129 | case 27:fprintf(js_include_file,"case 27:break;");break; |
126 | case 27:fprintf(js_include_file,"case 27:break;");break; |
130 | default: break; |
127 | default: break; |
- | 128 | } |
|
131 | } |
129 | } |
132 | } |
- | |
133 | fprintf(js_include_file,"default:break;};return;};"); |
130 | fprintf(js_include_file,"default:break;};return;};"); |
134 | /* end user_draw()*/ |
131 | /* end user_draw()*/ |
135 | 132 | ||
136 | /* should we use a fillpattern ? */ |
133 | /* should we use a fillpattern ? */ |
137 | 134 | ||
138 | /* begin user_drag() */ |
135 | /* begin user_drag() */ |
139 | fprintf(js_include_file,"function user_drag(evt){\ |
136 | fprintf(js_include_file,"function user_drag(evt){\ |
140 | var mouse = getMouse(evt,canvas_userdraw);\ |
137 | var mouse = getMouse(evt,canvas_userdraw);\ |
141 | var x = mouse.x;var y = mouse.y;\ |
138 | var x = mouse.x;var y = mouse.y;\ |
142 | user_is_dragging = true;\ |
139 | user_is_dragging = true;\ |
143 | if(x>forbidden_zone[0] && y>forbidden_zone[1]){console.log('drawing in zoom area...');return;};\ |
140 | if(x>forbidden_zone[0] && y>forbidden_zone[1]){console.log('drawing in zoom area...');return;};\ |
144 | switch(userdraw_primitive){"); |
141 | switch(userdraw_primitive){"); |
145 | for(i=0; i < MAX_MULTI_PRIMITIVES ; i++ ){ |
142 | for(i=0; i < MAX_MULTI_PRIMITIVES ; i++ ){ |
146 | switch( draw_nums[i] ){ |
143 | switch( draw_nums[i] ){ |
147 | case -1: break; |
144 | case -1: break; |
148 | case 0:fprintf(js_include_file,"case 0: break;");break; |
145 | case 0:fprintf(js_include_file,"case 0: break;");break; |
149 | case 1:fprintf(js_include_file,"case 1: break;");break; |
146 | case 1:fprintf(js_include_file,"case 1: break;");break; |
150 | case 2:fprintf(js_include_file,"case 2: circles(x,y,1,0);break;");break; |
147 | case 2:fprintf(js_include_file,"case 2: circles(x,y,1,0);break;");break; |
151 | case 3:fprintf(js_include_file,"case 3: circles(x,y,1,1);break;");break; |
148 | case 3:fprintf(js_include_file,"case 3: circles(x,y,1,1);break;");break; |
152 | case 4:fprintf(js_include_file,"case 4: lines(x,y,1,0);break;");break; |
149 | case 4:fprintf(js_include_file,"case 4: lines(x,y,1,0);break;");break; |
153 | case 5:fprintf(js_include_file,"case 5: lines(x,y,1,1);break;");break; |
150 | case 5:fprintf(js_include_file,"case 5: lines(x,y,1,1);break;");break; |
154 | case 6:fprintf(js_include_file,"case 6: segments(x,y,1,0);break;");break; |
151 | case 6:fprintf(js_include_file,"case 6: segments(x,y,1,0);break;");break; |
155 | case 7:fprintf(js_include_file,"case 7: segments(x,y,1,1);break;");break; |
152 | case 7:fprintf(js_include_file,"case 7: segments(x,y,1,1);break;");break; |
156 | case 8:fprintf(js_include_file,"case 8: arrows(x,y,1,0);break;");break; |
153 | case 8:fprintf(js_include_file,"case 8: arrows(x,y,1,0);break;");break; |
157 | case 9:fprintf(js_include_file,"case 9: arrows(x,y,1,1);break;");break; |
154 | case 9:fprintf(js_include_file,"case 9: arrows(x,y,1,1);break;");break; |
158 | case 10:fprintf(js_include_file,"case 10: triangles(x,y,1,0);break;");break; |
155 | case 10:fprintf(js_include_file,"case 10: triangles(x,y,1,0);break;");break; |
159 | case 11:fprintf(js_include_file,"case 11: triangles(x,y,1,1);break;");break; |
156 | case 11:fprintf(js_include_file,"case 11: triangles(x,y,1,1);break;");break; |
160 | case 12:fprintf(js_include_file,"case 12: closedpoly(x,y,1,0);break;");break; |
157 | case 12:fprintf(js_include_file,"case 12: closedpoly(x,y,1,0);break;");break; |
161 | case 13:fprintf(js_include_file,"case 13: break;");break; |
158 | case 13:fprintf(js_include_file,"case 13: break;");break; |
162 | case 14:fprintf(js_include_file,"case 14: rects(x,y,1,0);break;");break; |
159 | case 14:fprintf(js_include_file,"case 14: rects(x,y,1,0);break;");break; |
163 | case 15:fprintf(js_include_file,"case 15: rects(x,y,1,1);break;");break; |
160 | case 15:fprintf(js_include_file,"case 15: rects(x,y,1,1);break;");break; |
164 | case 16:fprintf(js_include_file,"case 16: polys(x,y,1,0);break;");break; |
161 | case 16:fprintf(js_include_file,"case 16: polys(x,y,1,0);break;");break; |
165 | case 17:fprintf(js_include_file,"case 17: polys(x,y,1,1);break;");break; |
162 | case 17:fprintf(js_include_file,"case 17: polys(x,y,1,1);break;");break; |
166 | case 18:fprintf(js_include_file,"case 18: parallelogram(x,y,1,0);break;");break; |
163 | case 18:fprintf(js_include_file,"case 18: parallelogram(x,y,1,0);break;");break; |
167 | case 19:fprintf(js_include_file,"case 19: parallelogram(x,y,1,1);break;");break; |
164 | case 19:fprintf(js_include_file,"case 19: parallelogram(x,y,1,1);break;");break; |
168 | case 20:fprintf(js_include_file,"case 20: images(x,y,1,1);break;");break; |
165 | case 20:fprintf(js_include_file,"case 20: images(x,y,1,1);break;");break; |
169 | case 21:fprintf(js_include_file,"case 21: curvedarrows(x,y,1,0);break;");break; |
166 | case 21:fprintf(js_include_file,"case 21: curvedarrows(x,y,1,0);break;");break; |
170 | case 22:fprintf(js_include_file,"case 22: curvedarrows(x,y,1,1);break;");break; |
167 | case 22:fprintf(js_include_file,"case 22: curvedarrows(x,y,1,1);break;");break; |
171 | case 23:fprintf(js_include_file,"case 23: curvedarrows2(x,y,1,0);break;");break; |
168 | case 23:fprintf(js_include_file,"case 23: curvedarrows2(x,y,1,0);break;");break; |
172 | case 24:fprintf(js_include_file,"case 24: curvedarrows2(x,y,1,1);break;");break; |
169 | case 24:fprintf(js_include_file,"case 24: curvedarrows2(x,y,1,1);break;");break; |
173 | case 25:fprintf(js_include_file,"case 25: break;");break; |
170 | case 25:fprintf(js_include_file,"case 25: break;");break; |
174 | case 26:fprintf(js_include_file,"case 26: break;");break; |
171 | case 26:fprintf(js_include_file,"case 26: break;");break; |
175 | case 27:fprintf(js_include_file,"case 27: break;");break; |
172 | case 27:fprintf(js_include_file,"case 27: break;");break; |
176 | default:break; |
173 | default:break; |
- | 174 | } |
|
177 | } |
175 | } |
178 | } |
- | |
179 | fprintf(js_include_file,"default:break; };return;};"); |
176 | fprintf(js_include_file,"default:break; };return;};"); |
180 | /* end user_drag() */ |
177 | /* end user_drag() */ |
181 | /* 17/1/2021 corrected syntax issue signalled by Opera Presto : 'forbidden function user_drawstop(evt) declaration in statement'*/ |
178 | /* 17/1/2021 corrected syntax issue signalled by Opera Presto : 'forbidden function user_drawstop(evt) declaration in statement'*/ |
182 | fprintf(js_include_file,"if(wims_status != \"done\"){\ |
179 | fprintf(js_include_file,"if(wims_status != \"done\"){\ |
183 | canvas_div.addEventListener('mousedown',user_draw,false);\ |
180 | canvas_div.addEventListener('mousedown',user_draw,false);\ |
184 | canvas_div.addEventListener('mousemove',user_drag,false);\ |
181 | canvas_div.addEventListener('mousemove',user_drag,false);\ |
185 | canvas_div.addEventListener('touchstart' , function(e) { e.preventDefault(); user_draw(e.changedTouches[0]);},false);\ |
182 | canvas_div.addEventListener('touchstart' , function(e) { e.preventDefault(); user_draw(e.changedTouches[0]);},false);\ |
186 | canvas_div.addEventListener('touchmove' , function(e) { e.preventDefault(); user_drag(e.changedTouches[0]);},false);\ |
183 | canvas_div.addEventListener('touchmove' , function(e) { e.preventDefault(); user_drag(e.changedTouches[0]);},false);\ |
187 | canvas_div.addEventListener('touchend' , function(e) { e.preventDefault(); user_drawstop(e.changedTouches[0]);},false);\ |
184 | canvas_div.addEventListener('touchend' , function(e) { e.preventDefault(); user_drawstop(e.changedTouches[0]);},false);\ |
Line 190... | Line 187... | ||
190 | if(!user_is_dragging){user_drag(evt);return;};\ |
187 | if(!user_is_dragging){user_drag(evt);return;};\ |
191 | if(user_is_dragging){user_draw(evt);return;};\ |
188 | if(user_is_dragging){user_draw(evt);return;};\ |
192 | };\ |
189 | };\ |
193 | };"); |
190 | };"); |
194 | 191 | ||
195 | /* add all stuff needed |
192 | /* add all stuff needed to draw the selected primitives... */ |
196 | int u; |
193 | int u; |
197 | for(u=0; u < MAX_MULTI_PRIMITIVES ; u++ ){ |
194 | for(u=0; u < MAX_MULTI_PRIMITIVES ; u++ ){ |
198 | i = user_nums[u]; |
195 | i = user_nums[u]; |
199 | /* |
196 | /* |
200 | u = index of technical draw primitive |
197 | u = index of technical draw primitive |
201 | i = index of user defined draw primitive |
198 | i = index of user defined draw primitive |
202 | */ |
199 | */ |
203 | switch( draw_nums[u] ){ |
200 | switch( draw_nums[u] ){ |
204 | /* point/points */ |
201 | /* point/points */ |
205 | case -1 : break; |
202 | case -1 : break; |
206 | case 0 ... 1: |
203 | case 0 ... 1: |
207 | fprintf(js_include_file,"function points(x,y,event_which,num){\ |
204 | fprintf(js_include_file,"function points(x,y,event_which,num){\ |
208 | if(event_which == 1){ return; };\ |
205 | if(event_which == 1){ return; };\ |
209 | var xy = multi_snap_check(x,y,points_snap);\ |
206 | var xy = multi_snap_check(x,y,points_snap);\ |
210 | if( num == 0 ){\ |
207 | if( num == 0 ){\ |
211 | points_x[0] = xy[0];\ |
208 | points_x[0] = xy[0];\ |
212 | points_y[0] = xy[1];\ |
209 | points_y[0] = xy[1];\ |
Line 232... | Line 229... | ||
232 | context_points.strokeStyle = \"rgba(\"+multistrokecolors[%d]+\",\"+multistrokeopacity[%d]+\")\";\ |
229 | context_points.strokeStyle = \"rgba(\"+multistrokecolors[%d]+\",\"+multistrokeopacity[%d]+\")\";\ |
233 | context_points.fillStyle = context_points.strokeStyle;\ |
230 | context_points.fillStyle = context_points.strokeStyle;\ |
234 | context_points.lineWidth = multilinewidth[%d];if(multilinewidth[%d] %%2 == 1){ context_points.translate(0.5,0.5);};\ |
231 | context_points.lineWidth = multilinewidth[%d];if(multilinewidth[%d] %%2 == 1){ context_points.translate(0.5,0.5);};\ |
235 | var points_x = new Array();var points_y = new Array();\ |
232 | var points_x = new Array();var points_y = new Array();\ |
236 | var points_snap = multisnaptogrid[%d];",canvas_root_id,i,i,i,i,i,i,i,i,i,i,i,i); |
233 | var points_snap = multisnaptogrid[%d];",canvas_root_id,i,i,i,i,i,i,i,i,i,i,i,i); |
237 | if( no_controls != 1){ |
234 | if( no_controls != 1){ |
238 | fprintf(js_include_file,"\ |
235 | fprintf(js_include_file,"\ |
239 | inner_html+=\"<tr><td><input type='button' onclick='javascript:userdraw_primitive=%d;multidraw_object_cnt = 0;' value='\"+multilabel[%d]+\"' /></td><td><input type='button' onclick='javascript:clear_draw_area%d(%d);' value='delete' /></td>\";\ |
236 | inner_html+=\"<tr><td><input type='button' onclick='javascript:userdraw_primitive=%d;multidraw_object_cnt = 0;' value='\"+multilabel[%d]+\"' /></td><td><input type='button' onclick='javascript:clear_draw_area%d(%d);' value='delete' /></td>\";\ |
240 | if( multiuserinput[%d] == 1 ){inner_html+=\"<td>(<input type='text' size='5' value='' id='input_points_x' />:<input type='text' size='5' value='' id='input_points_y' />)</td><td><input type='button' id='canvasdraw_ok_button' onclick='javascript:update_draw_area%d(%d,input_points_x,input_points_y,null);' value='OK' /></td></tr>\";}else{inner_html+=\"</tr>\";};", |
237 | if( multiuserinput[%d] == 1 ){inner_html+=\"<td>(<input type='text' size='5' value='' id='input_points_x' />:<input type='text' size='5' value='' id='input_points_y' />)</td><td><input type='button' id='canvasdraw_ok_button' onclick='javascript:update_draw_area%d(%d,input_points_x,input_points_y,null);' value='OK' /></td></tr>\";}else{inner_html+=\"</tr>\";};", |
241 | u,i,canvas_root_id,u,i,canvas_root_id,u); |
238 | u,i,canvas_root_id,u,i,canvas_root_id,u); |
242 | } else { |
239 | } else { |
243 | fprintf(js_include_file,"userdraw_primitive = %d;",u); |
240 | fprintf(js_include_file,"userdraw_primitive = %d;",u); |
244 | } |
241 | } |
245 | break; |
242 | break; |
246 | - | ||
247 | - | ||
248 | /* circle/circles */ |
243 | /* circle/circles */ |
249 | case 2 ... 3 : |
244 | case 2 ... 3 : |
250 | fprintf(js_include_file,"function circles(x,y,event_which,num){\ |
245 | fprintf(js_include_file,"function circles(x,y,event_which,num){\ |
251 | var xy = multi_snap_check(x,y,circles_snap);\ |
246 | var xy = multi_snap_check(x,y,circles_snap);\ |
252 | var last = circles_x.length - 1;\ |
247 | var last = circles_x.length - 1;\ |
253 | var xc = circles_x[last];\ |
248 | var xc = circles_x[last];\ |
254 | var yc = circles_y[last];\ |
249 | var yc = circles_y[last];\ |
255 | if(event_which == 0){\ |
250 | if(event_which == 0){\ |
Line 293... | Line 288... | ||
293 | if(multifill[%d] != 0 ){var my_fill_color=\"rgba(\"+multifillcolors[%d]+\",\"+multifillopacity[%d]+\")\";if( multifill[%d] > 1 ){context_circles.fillStyle = create_Pattern(0,0,parseInt(multifill[%d]),my_fill_color);}else{context_circles.fillStyle = my_fill_color;};}else{context_circles.fillStyle = \"rgba( 255,255,255,0)\";};\ |
288 | if(multifill[%d] != 0 ){var my_fill_color=\"rgba(\"+multifillcolors[%d]+\",\"+multifillopacity[%d]+\")\";if( multifill[%d] > 1 ){context_circles.fillStyle = create_Pattern(0,0,parseInt(multifill[%d]),my_fill_color);}else{context_circles.fillStyle = my_fill_color;};}else{context_circles.fillStyle = \"rgba( 255,255,255,0)\";};\ |
294 | if(multidash[%d] == 1 ){ if( context_circles.setLineDash ){context_circles.setLineDash([2,4]);}else{if(context_circles.mozDash){context_circles.mozDash = [2,4]};};};\ |
289 | if(multidash[%d] == 1 ){ if( context_circles.setLineDash ){context_circles.setLineDash([2,4]);}else{if(context_circles.mozDash){context_circles.mozDash = [2,4]};};};\ |
295 | var circles_x = new Array();var circles_y = new Array();var multi_radius = new Array();\ |
290 | var circles_x = new Array();var circles_y = new Array();var multi_radius = new Array();\ |
296 | var circles_snap = multisnaptogrid[%d];",canvas_root_id,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i); |
291 | var circles_snap = multisnaptogrid[%d];",canvas_root_id,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i); |
297 | 292 | ||
298 | if(no_controls != 1 ){ /* for BPR...*/ |
293 | if(no_controls != 1 ){ /* for BPR...*/ |
299 | fprintf(js_include_file,"inner_html+=\"<tr><td><input type='button' onclick='javascript:userdraw_primitive=%d;multidraw_object_cnt = 0;' value='\"+multilabel[%d]+\"' /></td><td><input type='button' onclick='javascript:clear_draw_area%d(%d);' value='delete' /></td>\";\ |
294 | fprintf(js_include_file,"inner_html+=\"<tr><td><input type='button' onclick='javascript:userdraw_primitive=%d;multidraw_object_cnt = 0;' value='\"+multilabel[%d]+\"' /></td><td><input type='button' onclick='javascript:clear_draw_area%d(%d);' value='delete' /></td>\";\ |
300 | if( multiuserinput[%d] == 1 ){inner_html+=\"<td>M:(<input type='text' size='3' value='' id='input_circles_x' /> : <input type='text' size='3' value='' id='input_circles_y'/>) R:<input type='text' size='3' value='' id='input_circles_r'/></td><td><input type='button' id='canvasdraw_ok_button' onclick='javascript:update_draw_area%d(%d,input_circles_x,input_circles_y,input_circles_r);' value='OK' /></td></tr>\";}else{inner_html+=\"</tr>\";};", |
295 | if( multiuserinput[%d] == 1 ){inner_html+=\"<td>M:(<input type='text' size='3' value='' id='input_circles_x' /> : <input type='text' size='3' value='' id='input_circles_y'/>) R:<input type='text' size='3' value='' id='input_circles_r'/></td><td><input type='button' id='canvasdraw_ok_button' onclick='javascript:update_draw_area%d(%d,input_circles_x,input_circles_y,input_circles_r);' value='OK' /></td></tr>\";}else{inner_html+=\"</tr>\";};", |
301 | u,i,canvas_root_id,u,i,canvas_root_id,u); |
296 | u,i,canvas_root_id,u,i,canvas_root_id,u); |
302 | } else { |
297 | } else { |
303 | fprintf(js_include_file,"userdraw_primitive = %d;",u); |
298 | fprintf(js_include_file,"userdraw_primitive = %d;",u); |
304 | } |
299 | } |
305 | break; |
300 | break; |
306 | /* line/lines */ |
301 | /* line/lines */ |
307 | case 4 ... 5 : |
302 | case 4 ... 5 : |
308 | fprintf(js_include_file,"function calc_lines(){\ |
303 | fprintf(js_include_file,"function calc_lines(){\ |
309 | var marge = 2;var len = lines_x.length;\ |
304 | var marge = 2;var len = lines_x.length;\ |
310 | var tmp_x = new Array(len);\ |
305 | var tmp_x = new Array(len);\ |
311 | var tmp_y = new Array(len);\ |
306 | var tmp_y = new Array(len);\ |
312 | var pp;\ |
307 | var pp;\ |
313 | for(var p = 0 ; p < len ; p = p+2){\ |
308 | for(var p = 0 ; p < len ; p = p+2){\ |
Line 336... | Line 331... | ||
336 | } else {\ |
331 | } else {\ |
337 | if( multidraw_object_cnt == 1 ){\ |
332 | if( multidraw_object_cnt == 1 ){\ |
338 | lines_x.push(xy[0]);lines_y.push(xy[1]);\ |
333 | lines_x.push(xy[0]);lines_y.push(xy[1]);\ |
339 | draw_lines();\ |
334 | draw_lines();\ |
340 | lines_x.pop();lines_y.pop();\ |
335 | lines_x.pop();lines_y.pop();\ |
341 | };\ |
336 | };\ |
342 | };\ |
337 | };\ |
343 | if( multidraw_object_cnt == 2 ){\ |
338 | if( multidraw_object_cnt == 2 ){\ |
344 | multidraw_object_cnt = 0;\ |
339 | multidraw_object_cnt = 0;\ |
345 | draw_lines();\ |
340 | draw_lines();\ |
346 | };\ |
341 | };\ |
347 | };function draw_lines(){\ |
342 | };function draw_lines(){\ |
348 | var len = lines_x.length;\ |
343 | var len = lines_x.length;\ |
Line 365... | Line 360... | ||
365 | context_lines.strokeStyle = \"rgba(\"+multistrokecolors[%d]+\",\"+multistrokeopacity[%d]+\")\";\ |
360 | context_lines.strokeStyle = \"rgba(\"+multistrokecolors[%d]+\",\"+multistrokeopacity[%d]+\")\";\ |
366 | if(multidash[%d] == 1 ){ if( context_lines.setLineDash ){context_lines.setLineDash([2,4]);}else{\ |
361 | if(multidash[%d] == 1 ){ if( context_lines.setLineDash ){context_lines.setLineDash([2,4]);}else{\ |
367 | if(context_lines.mozDash){context_lines.mozDash = [2,4]};};};\ |
362 | if(context_lines.mozDash){context_lines.mozDash = [2,4]};};};\ |
368 | var lines_x = new Array();var lines_y = new Array();var lines_snap = multisnaptogrid[%d];",canvas_root_id,u,i,i,i,i,i,i,i,i,i,i,i,i); |
363 | var lines_x = new Array();var lines_y = new Array();var lines_snap = multisnaptogrid[%d];",canvas_root_id,u,i,i,i,i,i,i,i,i,i,i,i,i); |
369 | 364 | ||
370 | if( no_controls != 1 ){ /* for BPR...*/ |
365 | if( no_controls != 1 ){ /* for BPR...*/ |
371 | fprintf(js_include_file,"inner_html+=\"<tr><td><input type='button' onclick='javascript:userdraw_primitive=%d;multidraw_object_cnt = 0;' value='\"+multilabel[%d]+\"' /></td><td><input type='button' onclick='javascript:clear_draw_area%d(%d);' value='delete' /></td>\";\ |
366 | fprintf(js_include_file,"inner_html+=\"<tr><td><input type='button' onclick='javascript:userdraw_primitive=%d;multidraw_object_cnt = 0;' value='\"+multilabel[%d]+\"' /></td><td><input type='button' onclick='javascript:clear_draw_area%d(%d);' value='delete' /></td>\";\ |
372 | if( multiuserinput[%d] == 1 ){inner_html+=\"<td>(<input type='text' size='5' value='x1 : y1' id='input_lines_x' style='text-align:center;'/>) --- ( <input type='text' size='5' value='x2 : y2' id='input_lines_y' style='text-align:center;' /> )</td><td><input type='button' id='canvasdraw_ok_button' onclick='javascript:update_draw_area%d(%d,input_lines_x,input_lines_y,null);' value='OK' /></td></tr>\";}else{inner_html+=\"</tr>\";};", |
367 | if( multiuserinput[%d] == 1 ){inner_html+=\"<td>(<input type='text' size='5' value='x1 : y1' id='input_lines_x' style='text-align:center;'/>) --- ( <input type='text' size='5' value='x2 : y2' id='input_lines_y' style='text-align:center;' /> )</td><td><input type='button' id='canvasdraw_ok_button' onclick='javascript:update_draw_area%d(%d,input_lines_x,input_lines_y,null);' value='OK' /></td></tr>\";}else{inner_html+=\"</tr>\";};", |
373 | u,i,canvas_root_id,u,i,canvas_root_id,u); |
368 | u,i,canvas_root_id,u,i,canvas_root_id,u); |
374 | } else { |
369 | } else { |
375 | fprintf(js_include_file,"userdraw_primitive = %d;",u); |
370 | fprintf(js_include_file,"userdraw_primitive = %d;",u); |
376 | } |
371 | } |
377 | break; |
372 | break; |
378 | /* segment/segments */ |
373 | /* segment/segments */ |
379 | case 6 ... 7 : |
374 | case 6 ... 7 : |
380 | fprintf(js_include_file,"function segments(x,y,event_which,num){\ |
375 | fprintf(js_include_file,"function segments(x,y,event_which,num){\ |
381 | var xy = multi_snap_check(x,y,segments_snap);\ |
376 | var xy = multi_snap_check(x,y,segments_snap);\ |
382 | if(event_which == 0){\ |
377 | if(event_which == 0){\ |
383 | if( num == 0 && multidraw_object_cnt == 0 ){segments_x = [];segments_y = [];};\ |
378 | if( num == 0 && multidraw_object_cnt == 0 ){segments_x = [];segments_y = [];};\ |
384 | segments_x.push(xy[0]);segments_y.push(xy[1]);\ |
379 | segments_x.push(xy[0]);segments_y.push(xy[1]);\ |
385 | multidraw_object_cnt++;\ |
380 | multidraw_object_cnt++;\ |
Line 406... | Line 401... | ||
406 | context_segments.stroke();\ |
401 | context_segments.stroke();\ |
407 | };\ |
402 | };\ |
408 | };\ |
403 | };\ |
409 | return;\ |
404 | return;\ |
410 | };var canvas_segments = create_canvas%d(100%d,xsize,ysize);var context_segments = canvas_segments.getContext(\"2d\");\ |
405 | };var canvas_segments = create_canvas%d(100%d,xsize,ysize);var context_segments = canvas_segments.getContext(\"2d\");\ |
411 | if( multistrokeopacity[%d] > 1 ){ multistrokeopacity[%d] = (0.0039215*multistrokeopacity[%d]).toFixed(2); };\ |
406 | if( multistrokeopacity[%d] > 1 ){ multistrokeopacity[%d] = (0.0039215*multistrokeopacity[%d]).toFixed(2); };\ |
412 | if( multifillopacity[%d] > 1 ){ multifillopacity[%d] = (0.0039215*multifillopacity[%d]).toFixed(2); };\ |
407 | if( multifillopacity[%d] > 1 ){ multifillopacity[%d] = (0.0039215*multifillopacity[%d]).toFixed(2); };\ |
413 | context_segments.lineWidth = multilinewidth[%d];\ |
408 | context_segments.lineWidth = multilinewidth[%d];\ |
414 | if(multilinewidth[%d]%%2 == 1){ context_segments.translate(0.5,0.5);};\ |
409 | if(multilinewidth[%d]%%2 == 1){ context_segments.translate(0.5,0.5);};\ |
415 | context_segments.strokeStyle = \"rgba(\"+multistrokecolors[%d]+\",\"+multistrokeopacity[%d]+\")\";\ |
410 | context_segments.strokeStyle = \"rgba(\"+multistrokecolors[%d]+\",\"+multistrokeopacity[%d]+\")\";\ |
416 | if(multidash[%d] == 1 ){ if( context_segments.setLineDash ){context_segments.setLineDash([2,4]);}\ |
411 | if(multidash[%d] == 1 ){ if( context_segments.setLineDash ){context_segments.setLineDash([2,4]);}\ |
417 | else{if(context_segments.mozDash){context_segments.mozDash = [2,4]};};};\ |
412 | else{if(context_segments.mozDash){context_segments.mozDash = [2,4]};};};\ |
418 | var segments_x = new Array();var segments_y = new Array();var segments_snap = multisnaptogrid[%d];", |
413 | var segments_x = new Array();var segments_y = new Array();var segments_snap = multisnaptogrid[%d];", |
419 | canvas_root_id,u,i,i,i,i,i,i,i,i,i,i,i,i); |
414 | canvas_root_id,u,i,i,i,i,i,i,i,i,i,i,i,i); |
420 | 415 | ||
421 | if( no_controls != 1 ){ /* for BPR...*/ |
416 | if( no_controls != 1 ){ /* for BPR...*/ |
422 | fprintf(js_include_file,"inner_html+=\"<tr><td><input type='button' onclick='javascript:userdraw_primitive=%d;multidraw_object_cnt = 0;' value='\"+multilabel[%d]+\"' /></td><td><input type='button' onclick='javascript:clear_draw_area%d(%d);' value='delete' /></td>\";\ |
417 | fprintf(js_include_file,"inner_html+=\"<tr><td><input type='button' onclick='javascript:userdraw_primitive=%d;multidraw_object_cnt = 0;' value='\"+multilabel[%d]+\"' /></td><td><input type='button' onclick='javascript:clear_draw_area%d(%d);' value='delete' /></td>\";\ |
423 | if( multiuserinput[%d] == 1 ){inner_html+=\"<td>(<input type='text' size='5' value='x1 : y1' id='input_segments_x' style='text-align:center;' />) --- ( <input type='text' size='5' value='x2 : y2' id='input_segments_y' style='text-align:center;'/>)</td><td><input type='button' id='canvasdraw_ok_button' onclick='javascript:update_draw_area%d(%d,input_segments_x,input_segments_y,null);' value='OK' /></td></tr>\";}else{inner_html+=\"</tr>\";};", |
418 | if( multiuserinput[%d] == 1 ){inner_html+=\"<td>(<input type='text' size='5' value='x1 : y1' id='input_segments_x' style='text-align:center;' />) --- ( <input type='text' size='5' value='x2 : y2' id='input_segments_y' style='text-align:center;'/>)</td><td><input type='button' id='canvasdraw_ok_button' onclick='javascript:update_draw_area%d(%d,input_segments_x,input_segments_y,null);' value='OK' /></td></tr>\";}else{inner_html+=\"</tr>\";};", |
424 | u,i,canvas_root_id,u,i,canvas_root_id,u); |
419 | u,i,canvas_root_id,u,i,canvas_root_id,u); |
425 | } else { |
420 | } else { |
426 | fprintf(js_include_file,"userdraw_primitive = %d;",u); |
421 | fprintf(js_include_file,"userdraw_primitive = %d;",u); |
427 | } |
422 | } |
428 | break; |
423 | break; |
429 | /* arrow/arrows */ |
424 | /* arrow/arrows */ |
430 | case 8 ... 9 : |
425 | case 8 ... 9 : |
431 | fprintf(js_include_file,"function arrows(x,y,event_which,num){\ |
426 | fprintf(js_include_file,"function arrows(x,y,event_which,num){\ |
432 | var xy = multi_snap_check(x,y,arrows_snap);\ |
427 | var xy = multi_snap_check(x,y,arrows_snap);\ |
433 | if(event_which == 0){\ |
428 | if(event_which == 0){\ |
434 | if( num == 0 && multidraw_object_cnt == 0 ){arrows_x = [];arrows_y = [];};\ |
429 | if( num == 0 && multidraw_object_cnt == 0 ){arrows_x = [];arrows_y = [];};\ |
435 | arrows_x.push(xy[0]);arrows_y.push(xy[1]);\ |
430 | arrows_x.push(xy[0]);arrows_y.push(xy[1]);\ |
436 | multidraw_object_cnt++;\ |
431 | multidraw_object_cnt++;\ |
Line 482... | Line 477... | ||
482 | context_arrows.strokeStyle = \"rgba(\"+multistrokecolors[%d]+\",\"+multistrokeopacity[%d]+\")\";\ |
477 | context_arrows.strokeStyle = \"rgba(\"+multistrokecolors[%d]+\",\"+multistrokeopacity[%d]+\")\";\ |
483 | context_arrows.fillStyle = context_arrows.strokeStyle;\ |
478 | context_arrows.fillStyle = context_arrows.strokeStyle;\ |
484 | var arrows_x = new Array();var arrows_y = new Array();var arrows_snap = multisnaptogrid[%d];", |
479 | var arrows_x = new Array();var arrows_y = new Array();var arrows_snap = multisnaptogrid[%d];", |
485 | canvas_root_id,u,i,i,i,i,i,i,i,i,i,i,i,i); |
480 | canvas_root_id,u,i,i,i,i,i,i,i,i,i,i,i,i); |
486 | 481 | ||
487 | if( no_controls != 1 ){ /* for BPR...*/ |
482 | if( no_controls != 1 ){ /* for BPR...*/ |
488 | fprintf(js_include_file,"inner_html+=\"<tr><td><input type='button' onclick='javascript:userdraw_primitive=%d;multidraw_object_cnt = 0;' value='\"+multilabel[%d]+\"' /></td><td><input type='button' onclick='javascript:clear_draw_area%d(%d);' value='delete' /></td>\";\ |
483 | fprintf(js_include_file,"inner_html+=\"<tr><td><input type='button' onclick='javascript:userdraw_primitive=%d;multidraw_object_cnt = 0;' value='\"+multilabel[%d]+\"' /></td><td><input type='button' onclick='javascript:clear_draw_area%d(%d);' value='delete' /></td>\";\ |
489 | if( multiuserinput[%d] == 1){inner_html+=\"<td>(<input type='text' size='5' value='x1 : y1' id='input_arrows_x' style='text-align:center;' /><b>) --- (</b> <input type='text' size='5' value='x2 : y2' id='input_arrows_y' style=';text-align:center;' />)</td><td><input type='button' id='canvasdraw_ok_button' onclick='javascript:update_draw_area%d(%d,input_arrows_x,input_arrows_y,null);' value='OK' /></td></tr>\";}else{inner_html+=\"</tr>\";};", |
484 | if( multiuserinput[%d] == 1){inner_html+=\"<td>(<input type='text' size='5' value='x1 : y1' id='input_arrows_x' style='text-align:center;' /><b>) --- (</b> <input type='text' size='5' value='x2 : y2' id='input_arrows_y' style=';text-align:center;' />)</td><td><input type='button' id='canvasdraw_ok_button' onclick='javascript:update_draw_area%d(%d,input_arrows_x,input_arrows_y,null);' value='OK' /></td></tr>\";}else{inner_html+=\"</tr>\";};", |
490 | u,i,canvas_root_id,u,i,canvas_root_id,u); |
485 | u,i,canvas_root_id,u,i,canvas_root_id,u); |
491 | } else { |
486 | } else { |
492 | fprintf(js_include_file,"userdraw_primitive = %d;",u); |
487 | fprintf(js_include_file,"userdraw_primitive = %d;",u); |
493 | } |
488 | } |
494 | break; |
489 | break; |
495 | 490 | ||
496 | /* triangle/triangles */ |
491 | /* triangle/triangles */ |
497 | case 10 ... 11: |
492 | case 10 ... 11: |
498 | fprintf(js_include_file,"function triangles(x,y,event_which,num){\ |
493 | fprintf(js_include_file,"function triangles(x,y,event_which,num){\ |
499 | var xy = multi_snap_check(x,y,triangles_snap);\ |
494 | var xy = multi_snap_check(x,y,triangles_snap);\ |
500 | var last = triangles_x.length - 1;\ |
495 | var last = triangles_x.length - 1;\ |
501 | if(event_which == 0){\ |
496 | if(event_which == 0){\ |
502 | if(num == 0 && multidraw_object_cnt == 0){\ |
497 | if(num == 0 && multidraw_object_cnt == 0){\ |
503 | triangles_x = [];triangles_y = [];\ |
498 | triangles_x = [];triangles_y = [];\ |
Line 543... | Line 538... | ||
543 | if(multifill[%d] != 0 ){var my_fill_color=\"rgba(\"+multifillcolors[%d]+\",\"+multifillopacity[%d]+\")\";if( multifill[%d] > 1 ){context_triangles.fillStyle = create_Pattern(0,0,parseInt(multifill[%d]),my_fill_color);}else{context_triangles.fillStyle = my_fill_color;};}else{context_triangles.fillStyle = \"rgba( 255,255,255,0)\";};\ |
538 | if(multifill[%d] != 0 ){var my_fill_color=\"rgba(\"+multifillcolors[%d]+\",\"+multifillopacity[%d]+\")\";if( multifill[%d] > 1 ){context_triangles.fillStyle = create_Pattern(0,0,parseInt(multifill[%d]),my_fill_color);}else{context_triangles.fillStyle = my_fill_color;};}else{context_triangles.fillStyle = \"rgba( 255,255,255,0)\";};\ |
544 | if(multidash[%d] == 1 ){ if( context_triangles.setLineDash ){\ |
539 | if(multidash[%d] == 1 ){ if( context_triangles.setLineDash ){\ |
545 | context_triangles.setLineDash([2,4]);}else{if(context_triangles.mozDash){context_triangles.mozDash = [2,4]};};};\ |
540 | context_triangles.setLineDash([2,4]);}else{if(context_triangles.mozDash){context_triangles.mozDash = [2,4]};};};\ |
546 | var triangles_x = new Array();var triangles_y = new Array();var triangles_snap = multisnaptogrid[%d];", |
541 | var triangles_x = new Array();var triangles_y = new Array();var triangles_snap = multisnaptogrid[%d];", |
547 | canvas_root_id,u,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i); |
542 | canvas_root_id,u,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i); |
548 | - | ||
549 | if(no_controls != 1 ){ /* for BPR...*/ |
543 | if(no_controls != 1 ){ /* for BPR...*/ |
550 | fprintf(js_include_file,"inner_html+=\"<tr><td><input type='button' onclick='javascript:userdraw_primitive=%d;multidraw_object_cnt = 0;' value='\"+multilabel[%d]+\"' /></td><td><input type='button' onclick='javascript:clear_draw_area%d(%d);' value='delete' /></td>\";\ |
544 | fprintf(js_include_file,"inner_html+=\"<tr><td><input type='button' onclick='javascript:userdraw_primitive=%d;multidraw_object_cnt = 0;' value='\"+multilabel[%d]+\"' /></td><td><input type='button' onclick='javascript:clear_draw_area%d(%d);' value='delete' /></td>\";\ |
551 | if( multiuserinput[%d] == 1 ){inner_html+=\"<td><b>(<input type='text' size='5' value='x1 : y1' id='input_triangles_x' />) -- (<input type='text' size='5' value='x2 : y2' id='input_triangles_y' />) -- (<input type='text' size='5' value='x3 : y3' id='input_triangles_r' />)</b></td><td><input type='button' id='canvasdraw_ok_button' onclick='javascript:update_draw_area%d(%d,input_triangles_x,input_triangles_y,input_triangles_r);' value='OK' /></td></tr>\";}else{inner_html+=\"</tr>\";};", |
545 | if( multiuserinput[%d] == 1 ){inner_html+=\"<td><b>(<input type='text' size='5' value='x1 : y1' id='input_triangles_x' />) -- (<input type='text' size='5' value='x2 : y2' id='input_triangles_y' />) -- (<input type='text' size='5' value='x3 : y3' id='input_triangles_r' />)</b></td><td><input type='button' id='canvasdraw_ok_button' onclick='javascript:update_draw_area%d(%d,input_triangles_x,input_triangles_y,input_triangles_r);' value='OK' /></td></tr>\";}else{inner_html+=\"</tr>\";};", |
552 | u,i,canvas_root_id,u,i,canvas_root_id,u); |
546 | u,i,canvas_root_id,u,i,canvas_root_id,u); |
553 | } else { |
547 | } else { |
554 | fprintf(js_include_file,"userdraw_primitive = %d;",u); |
548 | fprintf(js_include_file,"userdraw_primitive = %d;",u); |
555 | } |
549 | } |
556 | break; |
550 | break; |
557 | /* closedpoly */ |
551 | /* closedpoly */ |
558 | case 12 : |
552 | case 12 : |
559 | fprintf(js_include_file,"function check_closed(x1,y1,X,Y){\ |
553 | fprintf(js_include_file,"function check_closed(x1,y1,X,Y){\ |
560 | var marge=10;\ |
554 | var marge=10;\ |
561 | var len = X.length-1;\ |
555 | var len = X.length-1;\ |
562 | for(var p = 0 ; p < len ; p++){\ |
556 | for(var p = 0 ; p < len ; p++){\ |
563 | if(x1 < X[p] + marge && x1 > X[p] - marge ){\ |
557 | if(x1 < X[p] + marge && x1 > X[p] - marge ){\ |
564 | if(y1 < Y[p] + marge && y1 > Y[p] - marge ){\ |
558 | if(y1 < Y[p] + marge && y1 > Y[p] - marge ){\ |
Line 616... | Line 610... | ||
616 | if(context_closedpoly.mozDash){context_closedpoly.mozDash = [2,4]};};};\ |
610 | if(context_closedpoly.mozDash){context_closedpoly.mozDash = [2,4]};};};\ |
617 | var closedpoly_x = new Array();var closedpoly_y = new Array();\ |
611 | var closedpoly_x = new Array();var closedpoly_y = new Array();\ |
618 | var closedpoly_snap = multisnaptogrid[%d];", |
612 | var closedpoly_snap = multisnaptogrid[%d];", |
619 | canvas_root_id,u,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i); |
613 | canvas_root_id,u,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i); |
620 | 614 | ||
621 | if( no_controls != 1 ){ /* for BPR...*/ |
615 | if( no_controls != 1 ){ /* for BPR...*/ |
622 | fprintf(js_include_file,"inner_html+=\"<tr><td><input type='button' onclick='javascript:userdraw_primitive=%d;multidraw_object_cnt = 0;' value='\"+multilabel[%d]+\"' /></td><td><input type='button' onclick='javascript:clear_draw_area%d(%d);' value='delete' /></td>\";\ |
616 | fprintf(js_include_file,"inner_html+=\"<tr><td><input type='button' onclick='javascript:userdraw_primitive=%d;multidraw_object_cnt = 0;' value='\"+multilabel[%d]+\"' /></td><td><input type='button' onclick='javascript:clear_draw_area%d(%d);' value='delete' /></td>\";\ |
623 | if( multiuserinput[%d] == 1){inner_html+=\"<td>(<input type='text' size='5' value='x1:x2:x3:...' id='input_closedpoly_x' style='text-align:center;' /><b>) --- (</b> <input type='text' size='5' value='y1:y2:y3:...' id='input_closedpoly_y' style='text-align:center;'/>)</td><td><input type='button' id='canvasdraw_ok_button' onclick='javascript:update_draw_area%d(%d,input_closedpoly_x,input_closedpoly_y,null);' value='OK' /></td></tr>\";}else{inner_html+=\"</tr>\";};", |
617 | if( multiuserinput[%d] == 1){inner_html+=\"<td>(<input type='text' size='5' value='x1:x2:x3:...' id='input_closedpoly_x' style='text-align:center;' /><b>) --- (</b> <input type='text' size='5' value='y1:y2:y3:...' id='input_closedpoly_y' style='text-align:center;'/>)</td><td><input type='button' id='canvasdraw_ok_button' onclick='javascript:update_draw_area%d(%d,input_closedpoly_x,input_closedpoly_y,null);' value='OK' /></td></tr>\";}else{inner_html+=\"</tr>\";};", |
624 | u,i,canvas_root_id,u,i,canvas_root_id,u); |
618 | u,i,canvas_root_id,u,i,canvas_root_id,u); |
625 | } else { |
619 | } else { |
626 | fprintf(js_include_file,"userdraw_primitive = %d;",u); |
620 | fprintf(js_include_file,"userdraw_primitive = %d;",u); |
627 | } |
621 | } |
628 | break; |
622 | break; |
629 | /* text : always uses user input field !! */ |
623 | /* text : always uses user input field !! */ |
630 | case 13: |
624 | case 13: |
631 | fprintf(js_include_file,"function text(x,y,event_which,num){\ |
625 | fprintf(js_include_file,"function text(x,y,event_which,num){\ |
632 | if(event_which == 1){ return; };\ |
626 | if(event_which == 1){ return; };\ |
633 | var xy = multi_snap_check(x,y,text_snap);\ |
627 | var xy = multi_snap_check(x,y,text_snap);\ |
634 | if( num == 0 ){\ |
628 | if( num == 0 ){\ |
635 | text_x[0] = xy[0];\ |
629 | text_x[0] = xy[0];\ |
636 | text_y[0] =xy[1];\ |
630 | text_y[0] =xy[1];\ |
Line 660... | Line 654... | ||
660 | context_text.font = multifont_family;\ |
654 | context_text.font = multifont_family;\ |
661 | context_text.fillStyle = \"rgba(\"+multifont_color+\",\"+multistrokeopacity[%d]+\")\";\ |
655 | context_text.fillStyle = \"rgba(\"+multifont_color+\",\"+multistrokeopacity[%d]+\")\";\ |
662 | var text_snap = multisnaptogrid[%d];\ |
656 | var text_snap = multisnaptogrid[%d];\ |
663 | var text_x = new Array();var text_y = new Array(); var text_abc = new Array();",canvas_root_id,u,i,i); |
657 | var text_x = new Array();var text_y = new Array(); var text_abc = new Array();",canvas_root_id,u,i,i); |
664 | 658 | ||
665 | if( no_controls != 1 ){ /* for BPR...*/ |
659 | if( no_controls != 1 ){ /* for BPR...*/ |
666 | fprintf(js_include_file,"inner_html+=\"<tr><td><input type='button' onclick='javascript:userdraw_primitive=%d;multidraw_object_cnt=0;' value='\"+multilabel[%d]+\"' /></td><td><input type='button' onclick='javascript:clear_draw_area%d(%d);' value='delete' /></td><td><input type='text' size='6' value='' id='input_text_r' />\";if( multiuserinput[%d] == 1){inner_html+=\"(<input type='text' size='2' value='x' id='input_text_x' style='text-align:center;' />:<input type='text' size='2' value='y' id='input_text_y' style='text-align:center;'/>)</td><td><input type='button' id='canvasdraw_ok_button' onclick='javascript:update_draw_area%d(%d,input_text_x,input_text_y,input_text_r);' value='OK' /></td>\";}else{inner_html+=\"</td>\";};",u,i,canvas_root_id,u,i,canvas_root_id,u); |
660 | fprintf(js_include_file,"inner_html+=\"<tr><td><input type='button' onclick='javascript:userdraw_primitive=%d;multidraw_object_cnt=0;' value='\"+multilabel[%d]+\"' /></td><td><input type='button' onclick='javascript:clear_draw_area%d(%d);' value='delete' /></td><td><input type='text' size='6' value='' id='input_text_r' />\";if( multiuserinput[%d] == 1){inner_html+=\"(<input type='text' size='2' value='x' id='input_text_x' style='text-align:center;' />:<input type='text' size='2' value='y' id='input_text_y' style='text-align:center;'/>)</td><td><input type='button' id='canvasdraw_ok_button' onclick='javascript:update_draw_area%d(%d,input_text_x,input_text_y,input_text_r);' value='OK' /></td>\";}else{inner_html+=\"</td>\";};",u,i,canvas_root_id,u,i,canvas_root_id,u); |
667 | } else { |
661 | } else { |
668 | fprintf(js_include_file,"userdraw_primitive = %d;",u); |
662 | fprintf(js_include_file,"userdraw_primitive = %d;",u); |
669 | } |
663 | } |
670 | fprintf(js_include_file,"inner_html+=\"</tr>\";"); |
664 | fprintf(js_include_file,"inner_html+=\"</tr>\";"); |
671 | break; |
665 | break; |
672 | /* rect/rects */ |
666 | /* rect/rects */ |
673 | case 14 ... 15 : |
667 | case 14 ... 15 : |
674 | fprintf(js_include_file,"function rects(x,y,event_which,num){\ |
668 | fprintf(js_include_file,"function rects(x,y,event_which,num){\ |
675 | var xy = multi_snap_check(x,y,rects_snap);\ |
669 | var xy = multi_snap_check(x,y,rects_snap);\ |
676 | if(event_which == 0){\ |
670 | if(event_which == 0){\ |
677 | if( num == 0 && multidraw_object_cnt == 0 ){rects_x = [];rects_y = [];};\ |
671 | if( num == 0 && multidraw_object_cnt == 0 ){rects_x = [];rects_y = [];};\ |
678 | rects_x.push(xy[0]);rects_y.push(xy[1]);\ |
672 | rects_x.push(xy[0]);rects_y.push(xy[1]);\ |
679 | multidraw_object_cnt++;\ |
673 | multidraw_object_cnt++;\ |
680 | } else {\ |
674 | } else {\ |
681 | if( multidraw_object_cnt == 1 ){\ |
675 | if( multidraw_object_cnt == 1 ){\ |
682 | rects_x.push(xy[0]);rects_y.push(xy[1]);\ |
676 | rects_x.push(xy[0]);rects_y.push(xy[1]);\ |
683 | draw_rects();\ |
677 | draw_rects();\ |
684 | rects_x.pop();rects_y.pop();\ |
678 | rects_x.pop();rects_y.pop();\ |
685 | };\ |
679 | };\ |
686 | };\ |
680 | };\ |
687 | if( multidraw_object_cnt == 2 ){\ |
681 | if( multidraw_object_cnt == 2 ){\ |
688 | multidraw_object_cnt = 0;\ |
682 | multidraw_object_cnt = 0;\ |
689 | draw_rects();\ |
683 | draw_rects();\ |
690 | };\ |
684 | };\ |
Line 710... | Line 704... | ||
710 | if(context_rects.mozDash){context_rects.mozDash = [2,4]};};};\ |
704 | if(context_rects.mozDash){context_rects.mozDash = [2,4]};};};\ |
711 | if(multifill[%d] != 0 ){var my_fill_color=\"rgba(\"+multifillcolors[%d]+\",\"+multifillopacity[%d]+\")\";if( multifill[%d] > 1 ){context_rects.fillStyle = create_Pattern(0,0,parseInt(multifill[%d]),my_fill_color);}else{context_rects.fillStyle = my_fill_color;};}else{context_rects.fillStyle = \"rgba( 255,255,255,0)\";};\ |
705 | if(multifill[%d] != 0 ){var my_fill_color=\"rgba(\"+multifillcolors[%d]+\",\"+multifillopacity[%d]+\")\";if( multifill[%d] > 1 ){context_rects.fillStyle = create_Pattern(0,0,parseInt(multifill[%d]),my_fill_color);}else{context_rects.fillStyle = my_fill_color;};}else{context_rects.fillStyle = \"rgba( 255,255,255,0)\";};\ |
712 | var rects_x = new Array();var rects_y = new Array();var rects_snap = multisnaptogrid[%d];", |
706 | var rects_x = new Array();var rects_y = new Array();var rects_snap = multisnaptogrid[%d];", |
713 | canvas_root_id,u,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i); |
707 | canvas_root_id,u,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i); |
714 | 708 | ||
715 | if( no_controls != 1 ){ |
709 | if( no_controls != 1 ){ |
716 | fprintf(js_include_file,"inner_html+=\"<tr><td><input type='button' onclick='javascript:userdraw_primitive=%d;multidraw_object_cnt = 0;' value='\"+multilabel[%d]+\"' /></td><td><input type='button' onclick='javascript:clear_draw_area%d(%d);' value='delete' /></td>\";\ |
710 | fprintf(js_include_file,"inner_html+=\"<tr><td><input type='button' onclick='javascript:userdraw_primitive=%d;multidraw_object_cnt = 0;' value='\"+multilabel[%d]+\"' /></td><td><input type='button' onclick='javascript:clear_draw_area%d(%d);' value='delete' /></td>\";\ |
717 | if( multiuserinput[%d] == 1){inner_html+=\"<td>(<input type='text' size='5' value='x1 : y1' id='input_rects_x' style='text-align:center;' />) --- (<input type='text' size='5' value='x2 : y2' id='input_rects_y' style='text-align:center;' />)</td><td><input type='button' id='canvasdraw_ok_button' onclick='javascript:update_draw_area%d(%d,input_rects_x,input_rects_y,null);' value='OK' /></td></tr>\";}else{inner_html+=\"</tr>\";};", |
711 | if( multiuserinput[%d] == 1){inner_html+=\"<td>(<input type='text' size='5' value='x1 : y1' id='input_rects_x' style='text-align:center;' />) --- (<input type='text' size='5' value='x2 : y2' id='input_rects_y' style='text-align:center;' />)</td><td><input type='button' id='canvasdraw_ok_button' onclick='javascript:update_draw_area%d(%d,input_rects_x,input_rects_y,null);' value='OK' /></td></tr>\";}else{inner_html+=\"</tr>\";};", |
718 | u,i,canvas_root_id,u,i,canvas_root_id,u); |
712 | u,i,canvas_root_id,u,i,canvas_root_id,u); |
719 | } else { |
713 | } else { |
720 | fprintf(js_include_file,"userdraw_primitive = %d;",u); |
714 | fprintf(js_include_file,"userdraw_primitive = %d;",u); |
721 | } |
715 | } |
722 | break; |
716 | break; |
723 | /* poly/polys */ |
717 | /* poly/polys */ |
724 | case 16 ... 17 : |
718 | case 16 ... 17 : |
725 | fprintf(js_include_file,"var polynum = %d;function polys(x,y,event_which,num){\ |
719 | fprintf(js_include_file,"var polynum = %d;function polys(x,y,event_which,num){\ |
726 | var last = polys_x.length - 1;\ |
720 | var last = polys_x.length - 1;\ |
727 | var xy = multi_snap_check(x,y,polys_snap);\ |
721 | var xy = multi_snap_check(x,y,polys_snap);\ |
728 | if(event_which == 0){\ |
722 | if(event_which == 0){\ |
729 | if(num == 0 && multidraw_object_cnt == 0){\ |
723 | if(num == 0 && multidraw_object_cnt == 0){\ |
730 | polys_x = [];polys_y = [];\ |
724 | polys_x = [];polys_y = [];\ |
Line 772... | Line 766... | ||
772 | else{if(context_polys.mozDash){context_polys.mozDash = [2,4]};};};\ |
766 | else{if(context_polys.mozDash){context_polys.mozDash = [2,4]};};};\ |
773 | var polys_x = new Array();var polys_y = new Array();\ |
767 | var polys_x = new Array();var polys_y = new Array();\ |
774 | var polys_snap = multisnaptogrid[%d];", |
768 | var polys_snap = multisnaptogrid[%d];", |
775 | polynum,canvas_root_id,u,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i); |
769 | polynum,canvas_root_id,u,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i); |
776 | 770 | ||
777 | if( no_controls != 1 ){ |
771 | if( no_controls != 1 ){ |
778 | fprintf(js_include_file,"inner_html+=\"<tr><td><input type='button' onclick='javascript:userdraw_primitive=%d;multidraw_object_cnt = 0;' value='\"+multilabel[%d]+\"' /></td><td><input type='button' onclick='javascript:clear_draw_area%d(%d);' value='delete' /></td>\";\ |
772 | fprintf(js_include_file,"inner_html+=\"<tr><td><input type='button' onclick='javascript:userdraw_primitive=%d;multidraw_object_cnt = 0;' value='\"+multilabel[%d]+\"' /></td><td><input type='button' onclick='javascript:clear_draw_area%d(%d);' value='delete' /></td>\";\ |
779 | if(multiuserinput[%d] == 1 ){inner_html+=\"<td>(<input type='text' size='8' value='x1,x2...x_n' id='input_polys_x' /> ---- <input type='text' size='8' value='y1,y2...y_n' id='input_polys_y' />)</td><td><input type='button' id='canvasdraw_ok_button' onclick='javascript:update_draw_area%d(%d,input_rects_x,input_rects_y,null);' value='OK' /></td></tr>\";}else{inner_html+=\"</tr>\";};", |
773 | if(multiuserinput[%d] == 1 ){inner_html+=\"<td>(<input type='text' size='8' value='x1,x2...x_n' id='input_polys_x' /> ---- <input type='text' size='8' value='y1,y2...y_n' id='input_polys_y' />)</td><td><input type='button' id='canvasdraw_ok_button' onclick='javascript:update_draw_area%d(%d,input_rects_x,input_rects_y,null);' value='OK' /></td></tr>\";}else{inner_html+=\"</tr>\";};", |
780 | u,i,canvas_root_id,u,i,canvas_root_id,u); |
774 | u,i,canvas_root_id,u,i,canvas_root_id,u); |
781 | } else { |
775 | } else { |
782 | fprintf(js_include_file,"userdraw_primitive = %d;",u); |
776 | fprintf(js_include_file,"userdraw_primitive = %d;",u); |
783 | } |
777 | } |
784 | break; |
778 | break; |
785 | /* parallelogram/parallelograms */ |
779 | /* parallelogram/parallelograms */ |
786 | case 18 ... 19: |
780 | case 18 ... 19: |
787 | fprintf(js_include_file,"function parallelogram(x,y,event_which,num){\ |
781 | fprintf(js_include_file,"function parallelogram(x,y,event_which,num){\ |
788 | var l2 = parallelogram_x.length;\ |
782 | var l2 = parallelogram_x.length;\ |
789 | var l1 = l2 - 1;var l0 = l2 - 2;\ |
783 | var l1 = l2 - 1;var l0 = l2 - 2;\ |
790 | var xy = multi_snap_check(x,y,parallelogram_snap);\ |
784 | var xy = multi_snap_check(x,y,parallelogram_snap);\ |
791 | if(event_which == 0){\ |
785 | if(event_which == 0){\ |
792 | if(multidraw_object_cnt == 0){\ |
786 | if(multidraw_object_cnt == 0){\ |
Line 858... | Line 852... | ||
858 | if(multidash[%d] == 1 ){ if( context_parallelogram.setLineDash ){context_parallelogram.setLineDash([2,4]);}\ |
852 | if(multidash[%d] == 1 ){ if( context_parallelogram.setLineDash ){context_parallelogram.setLineDash([2,4]);}\ |
859 | else{if(context_parallelogram.mozDash){context_parallelogram.mozDash = [2,4]};};};\ |
853 | else{if(context_parallelogram.mozDash){context_parallelogram.mozDash = [2,4]};};};\ |
860 | var parallelogram_x = new Array();var parallelogram_y = new Array();var parallelogram_snap = multisnaptogrid[%d];", |
854 | var parallelogram_x = new Array();var parallelogram_y = new Array();var parallelogram_snap = multisnaptogrid[%d];", |
861 | canvas_root_id,u,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i); |
855 | canvas_root_id,u,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i); |
862 | 856 | ||
863 | if( no_controls != 1 ){ |
857 | if( no_controls != 1 ){ |
864 | fprintf(js_include_file,"inner_html+=\"<tr><td><input type='button' onclick='javascript:userdraw_primitive=%d;multidraw_object_cnt=0;' value='\"+multilabel[%d]+\"' /></td><td><input type='button' onclick='javascript:clear_draw_area%d(%d);' value='delete' /></td>\";\ |
858 | fprintf(js_include_file,"inner_html+=\"<tr><td><input type='button' onclick='javascript:userdraw_primitive=%d;multidraw_object_cnt=0;' value='\"+multilabel[%d]+\"' /></td><td><input type='button' onclick='javascript:clear_draw_area%d(%d);' value='delete' /></td>\";\ |
865 | if(multiuserinput[%d] == 1 ){inner_html+=\"<td>(<input type='text' size='8' value='x1,x2...x_n' id='input_parallelogram_x' /> --- <input type='text' size='8' value='y1,y2...y_n' id='input_parallelogram_y' />)</td><td><input type='button' id='canvasdraw_ok_button' onclick='javascript:update_draw_area%d(%d,input_parallelogram_x,input_parallelogram_y,null);' value='OK' /></td></tr>\";}else{inner_html+=\"</tr>\";};", |
859 | if(multiuserinput[%d] == 1 ){inner_html+=\"<td>(<input type='text' size='8' value='x1,x2...x_n' id='input_parallelogram_x' /> --- <input type='text' size='8' value='y1,y2...y_n' id='input_parallelogram_y' />)</td><td><input type='button' id='canvasdraw_ok_button' onclick='javascript:update_draw_area%d(%d,input_parallelogram_x,input_parallelogram_y,null);' value='OK' /></td></tr>\";}else{inner_html+=\"</tr>\";};", |
866 | u,i,canvas_root_id,u,i,canvas_root_id,u); |
860 | u,i,canvas_root_id,u,i,canvas_root_id,u); |
867 | } else { |
861 | } else { |
868 | fprintf(js_include_file,"userdraw_primitive = %d;",u); |
862 | fprintf(js_include_file,"userdraw_primitive = %d;",u); |
869 | } |
863 | } |
870 | break; |
864 | break; |
871 | /* |
865 | /* |
872 | images : identical ! to userdraw images,bogus_color |
866 | images : identical ! to userdraw images,bogus_color |
873 | 15/1/2021 : corrected long standing flaw regarding "centered" on external stuff |
867 | 15/1/2021 : corrected long standing flaw regarding "centered" on external stuff |
874 | tested: bitmap,svg,TeX [tested KaTeX] |
868 | tested: bitmap,svg,TeX [tested KaTeX] |
875 | */ |
869 | */ |
876 | case 20: |
870 | case 20: |
877 | fprintf(js_include_file,"var current_id = null;var external_div_cnt=0;\ |
871 | fprintf(js_include_file,"var current_id = null;var external_div_cnt=0;\ |
878 | function image_adjust(image,x,y){\ |
872 | function image_adjust(image,x,y){\ |
879 | var centered = %d;\ |
873 | var centered = %d;\ |
880 | var w = parseInt(image.width);var h = parseInt(image.height);\ |
874 | var w = parseInt(image.width);var h = parseInt(image.height);\ |
881 | if(w == 0 || h == 0 ){\ |
875 | if(w == 0 || h == 0 ){\ |
882 | w = parseInt(window.getComputedStyle(image).width);\ |
876 | w = parseInt(window.getComputedStyle(image).width);\ |
Line 920... | Line 914... | ||
920 | var w = parseInt(thing.clientWidth);\ |
914 | var w = parseInt(thing.clientWidth);\ |
921 | var h = parseInt(thing.clientHeight);\ |
915 | var h = parseInt(thing.clientHeight);\ |
922 | fix_div.innerHTML = thing.innerHTML;\ |
916 | fix_div.innerHTML = thing.innerHTML;\ |
923 | fix_div.setAttribute('style','display:none;position;absolute;width:'+w+'px;height:'+h+'px');\ |
917 | fix_div.setAttribute('style','display:none;position;absolute;width:'+w+'px;height:'+h+'px');\ |
924 | fix_div.width = w;fix_div.height = h;\ |
918 | fix_div.width = w;fix_div.height = h;\ |
925 | canvas_div.appendChild(fix_div);\ |
919 | canvas_div.appendChild(fix_div);\ |
926 | current_id = new_id;\ |
920 | current_id = new_id;\ |
927 | external_div_cnt++;\ |
921 | external_div_cnt++;\ |
928 | return;\ |
922 | return;\ |
929 | };\ |
923 | };\ |
930 | function draw_mathml_svg(thing,id){\ |
924 | function draw_mathml_svg(thing,id){\ |
Line 939... | Line 933... | ||
939 | image.src= url;\ |
933 | image.src= url;\ |
940 | image.id = 'placed_'+id;\ |
934 | image.id = 'placed_'+id;\ |
941 | image.onload = function(){\ |
935 | image.onload = function(){\ |
942 | current_id = image.id;\ |
936 | current_id = image.id;\ |
943 | fix_div.innerHTML='<img src='+image.src+' id='+image.id+' alt=\"this should not happen today...!\"/>';\ |
937 | fix_div.innerHTML='<img src='+image.src+' id='+image.id+' alt=\"this should not happen today...!\"/>';\ |
944 | };\ |
938 | };\ |
945 | return;\ |
939 | return;\ |
946 | };\ |
940 | };\ |
947 | function images(x,y,event_which,num){\ |
941 | function images(x,y,event_which,num){\ |
948 | if(event_which == 1){ return;};\ |
942 | if(event_which == 1){ return;};\ |
949 | if(num == 1 && current_id){\ |
943 | if(num == 1 && current_id){\ |
Line 951... | Line 945... | ||
951 | images_x.push(xy[0]);\ |
945 | images_x.push(xy[0]);\ |
952 | images_y.push(xy[1]);\ |
946 | images_y.push(xy[1]);\ |
953 | images_id.push(current_id);\ |
947 | images_id.push(current_id);\ |
954 | reset_placeable_selection();\ |
948 | reset_placeable_selection();\ |
955 | current_id = null;\ |
949 | current_id = null;\ |
956 | };\ |
950 | };\ |
957 | draw_images();\ |
951 | draw_images();\ |
958 | };\ |
952 | };\ |
959 | function draw_images(){\ |
953 | function draw_images(){\ |
960 | var xy;var img;var tag;\ |
954 | var xy;var img;var tag;\ |
961 | for(var i=0; i<2;i++){\ |
955 | for(var i=0; i<2;i++){\ |
Line 980... | Line 974... | ||
980 | context_images.font = multifont_family;\ |
974 | context_images.font = multifont_family;\ |
981 | context_images.fillStyle = \"rgba(\"+multifont_color+\",\"+multistrokeopacity[%d]+\")\";\ |
975 | context_images.fillStyle = \"rgba(\"+multifont_color+\",\"+multistrokeopacity[%d]+\")\";\ |
982 | var images_snap = multisnaptogrid[%d];\ |
976 | var images_snap = multisnaptogrid[%d];\ |
983 | var images_x = new Array();var images_y = new Array();\ |
977 | var images_x = new Array();var images_y = new Array();\ |
984 | var images_id = new Array();",use_offset,canvas_root_id,u,i,i); |
978 | var images_id = new Array();",use_offset,canvas_root_id,u,i,i); |
985 | if( no_controls != 1 ){ |
979 | if( no_controls != 1 ){ |
986 | fprintf(js_include_file,"inner_html+=\"<tr><td><input type='button' onclick='javascript:userdraw_primitive=%d;multidraw_object_cnt=0;' value='\"+multilabel[%d]+\"' /></td><td><input type='button' onclick='javascript:clear_draw_area%d(%d);' value='delete' /></td>\";\ |
980 | fprintf(js_include_file,"inner_html+=\"<tr><td><input type='button' onclick='javascript:userdraw_primitive=%d;multidraw_object_cnt=0;' value='\"+multilabel[%d]+\"' /></td><td><input type='button' onclick='javascript:clear_draw_area%d(%d);' value='delete' /></td>\";\ |
987 | if( typeof(imagepalette) === 'object' ){\ |
981 | if( typeof(imagepalette) === 'object' ){\ |
988 | inner_html+=\"<td><table class='%s'><tr>\";\ |
982 | inner_html+=\"<td><table class='%s'><tr>\";\ |
989 | for(var im=0; im < imagepalette.length; im++){\ |
983 | for(var im=0; im < imagepalette.length; im++){\ |
990 | if( im %% 4 == 0 ){ inner_html+=\"</tr><tr>\";};\ |
984 | if( im %% 4 == 0 ){ inner_html+=\"</tr><tr>\";};\ |
991 | inner_html+=\"<td><img onclick='javascript:place_image_on_canvas(this.id);' src='\"+imagepalette[im]+\"' id='imagepalette_\"+im+\"' alt='none'/></td>\";};\ |
985 | inner_html+=\"<td><img onclick='javascript:place_image_on_canvas(this.id);' src='\"+imagepalette[im]+\"' id='imagepalette_\"+im+\"' alt='none'/></td>\";};\ |
992 | inner_html+=\"</tr></table></td><td> </td></tr>\";}else{inner_html+=\"<td> </td><td> </td></tr>\";};",u,i,canvas_root_id,u,table_css); |
986 | inner_html+=\"</tr></table></td><td> </td></tr>\";}else{inner_html+=\"<td> </td><td> </td></tr>\";};",u,i,canvas_root_id,u,table_css); |
993 | } else { |
987 | } else { |
994 | fprintf(js_include_file,"inner_html+=\"</table>\";tooltip_div.innerHTML += inner_html;userdraw_primitive = %d;",u); |
988 | fprintf(js_include_file,"inner_html+=\"</table>\";tooltip_div.innerHTML += inner_html;userdraw_primitive = %d;",u); |
995 | } |
989 | } |
996 | break; |
990 | break; |
997 | /* curvedarrow/curvedarrows */ |
991 | /* curvedarrow/curvedarrows */ |
998 | case 21 ... 22: |
992 | case 21 ... 22: |
999 | fprintf(js_include_file,"function curvedarrows(x,y,event_which,num){\ |
993 | fprintf(js_include_file,"function curvedarrows(x,y,event_which,num){\ |
1000 | var xy = [x,y];\ |
994 | var xy = [x,y];\ |
1001 | if(event_which == 0){\ |
995 | if(event_which == 0){\ |
1002 | xy = multi_snap_check(x,y,curvedarrows_snap);\ |
996 | xy = multi_snap_check(x,y,curvedarrows_snap);\ |
1003 | if(num == 0 && multidraw_object_cnt == 0){curvedarrows_x = [];curvedarrows_y = [];curvedarrows_x[0] = xy[0];curvedarrows_y[0] = xy[1];}\ |
997 | if(num == 0 && multidraw_object_cnt == 0){curvedarrows_x = [];curvedarrows_y = [];curvedarrows_x[0] = xy[0];curvedarrows_y[0] = xy[1];}\ |
1004 | else{curvedarrows_x.push(xy[0]);curvedarrows_y.push(xy[1]);};multidraw_object_cnt++;\ |
998 | else{curvedarrows_x.push(xy[0]);curvedarrows_y.push(xy[1]);};multidraw_object_cnt++;\ |
Line 1036... | Line 1030... | ||
1036 | context_curvedarrows.mozDash = [2,4]};};};\ |
1030 | context_curvedarrows.mozDash = [2,4]};};};\ |
1037 | var curvedarrows_x = new Array();var curvedarrows_y = new Array();\ |
1031 | var curvedarrows_x = new Array();var curvedarrows_y = new Array();\ |
1038 | var curvedarrows_snap = multisnaptogrid[%d];", |
1032 | var curvedarrows_snap = multisnaptogrid[%d];", |
1039 | canvas_root_id,u,i,i,i,i,i,i,i,i,i,i,i,i); |
1033 | canvas_root_id,u,i,i,i,i,i,i,i,i,i,i,i,i); |
1040 | 1034 | ||
1041 | if( no_controls != 1 ){ |
1035 | if( no_controls != 1 ){ |
1042 | fprintf(js_include_file,"inner_html+=\"<tr><td><input type='button' onclick='javascript:userdraw_primitive=%d;multidraw_object_cnt = 0;' value='\"+multilabel[%d]+\"' /></td><td><input type='button' onclick='javascript:clear_draw_area%d(%d);' value='delete' /></td>\";\ |
1036 | fprintf(js_include_file,"inner_html+=\"<tr><td><input type='button' onclick='javascript:userdraw_primitive=%d;multidraw_object_cnt = 0;' value='\"+multilabel[%d]+\"' /></td><td><input type='button' onclick='javascript:clear_draw_area%d(%d);' value='delete' /></td>\";\ |
1043 | if( multiuserinput[%d] == 1 ){inner_html+=\"<td><b>(<input type='text' size='5' value='x1 : y1' id='input_curvedarrows_x' />) -- (<input type='text' size='5' value='x2 : y2' id='input_curvedarrows_y' />) -- (<input type='text' size='5' value='x3 : y3' id='input_curvedarrows_r' />)</b></td><td><input type='button' id='canvasdraw_ok_button' onclick='javascript:update_draw_area%d(%d,input_curvedarrows_x,input_curvedarrows_y,input_curvedarrows_r);' value='OK' /></td></tr>\";}else{inner_html+=\"</tr>\";};", |
1037 | if( multiuserinput[%d] == 1 ){inner_html+=\"<td><b>(<input type='text' size='5' value='x1 : y1' id='input_curvedarrows_x' />) -- (<input type='text' size='5' value='x2 : y2' id='input_curvedarrows_y' />) -- (<input type='text' size='5' value='x3 : y3' id='input_curvedarrows_r' />)</b></td><td><input type='button' id='canvasdraw_ok_button' onclick='javascript:update_draw_area%d(%d,input_curvedarrows_x,input_curvedarrows_y,input_curvedarrows_r);' value='OK' /></td></tr>\";}else{inner_html+=\"</tr>\";};", |
1044 | u,i,canvas_root_id,u,i,canvas_root_id,u); |
1038 | u,i,canvas_root_id,u,i,canvas_root_id,u); |
1045 | } else { |
1039 | } else { |
1046 | fprintf(js_include_file,"userdraw_primitive = %d;",u); |
1040 | fprintf(js_include_file,"userdraw_primitive = %d;",u); |
1047 | } |
1041 | } |
1048 | break; |
1042 | break; |
1049 | /* curvedarrow2/curvedarrows2 */ |
1043 | /* curvedarrow2/curvedarrows2 */ |
1050 | case 23 ... 24: |
1044 | case 23 ... 24: |
1051 | fprintf(js_include_file,"function curvedarrows2(x,y,event_which,num){\ |
1045 | fprintf(js_include_file,"function curvedarrows2(x,y,event_which,num){\ |
1052 | var xy=[x,y];\ |
1046 | var xy=[x,y];\ |
1053 | if(event_which == 0){\ |
1047 | if(event_which == 0){\ |
1054 | xy = multi_snap_check(x,y,curvedarrows2_snap);\ |
1048 | xy = multi_snap_check(x,y,curvedarrows2_snap);\ |
1055 | if(num == 0 && multidraw_object_cnt == 0){curvedarrows2_x = [];curvedarrows2_y = [];curvedarrows2_x[0] = xy[0];curvedarrows2_y[0] = xy[1];}\ |
1049 | if(num == 0 && multidraw_object_cnt == 0){curvedarrows2_x = [];curvedarrows2_y = [];curvedarrows2_x[0] = xy[0];curvedarrows2_y[0] = xy[1];}\ |
1056 | else{curvedarrows2_x.push(xy[0]);curvedarrows2_y.push(xy[1]);};multidraw_object_cnt++;\ |
1050 | else{curvedarrows2_x.push(xy[0]);curvedarrows2_y.push(xy[1]);};multidraw_object_cnt++;\ |
Line 1092... | Line 1086... | ||
1092 | context_curvedarrows2.setLineDash([2,4]);}else{if(context_curvedarrows2.mozDash){\ |
1086 | context_curvedarrows2.setLineDash([2,4]);}else{if(context_curvedarrows2.mozDash){\ |
1093 | context_curvedarrows2.mozDash = [2,4]};};};\ |
1087 | context_curvedarrows2.mozDash = [2,4]};};};\ |
1094 | var curvedarrows2_x = new Array();var curvedarrows2_y = new Array();\ |
1088 | var curvedarrows2_x = new Array();var curvedarrows2_y = new Array();\ |
1095 | var curvedarrows2_snap = multisnaptogrid[%d];",canvas_root_id,u,i,i,i,i,i,i,i,i,i,i,i,i); |
1089 | var curvedarrows2_snap = multisnaptogrid[%d];",canvas_root_id,u,i,i,i,i,i,i,i,i,i,i,i,i); |
1096 | 1090 | ||
1097 | if( no_controls != 1 ){ |
1091 | if( no_controls != 1 ){ |
1098 | fprintf(js_include_file,"inner_html+=\"<tr><td><input type='button' onclick='javascript:userdraw_primitive=%d;multidraw_object_cnt = 0;' value='\"+multilabel[%d]+\"' /></td><td><input type='button' onclick='javascript:clear_draw_area%d(%d);' value='delete' /></td>\";\ |
1092 | fprintf(js_include_file,"inner_html+=\"<tr><td><input type='button' onclick='javascript:userdraw_primitive=%d;multidraw_object_cnt = 0;' value='\"+multilabel[%d]+\"' /></td><td><input type='button' onclick='javascript:clear_draw_area%d(%d);' value='delete' /></td>\";\ |
1099 | if( multiuserinput[%d] == 1 ){inner_html+=\"<td><b>(<input type='text' size='5' value='x1 : y1' id='input_curvedarrows2_x' />) -- (<input type='text' size='5' value='x2 : y2' id='input_curvedarrows2_y' />) -- (<input type='text' size='5' value='x3 : y3' id='input_curvedarrows2_r' />)</b></td><td><input type='button' id='canvasdraw_ok_button' onclick='javascript:update_draw_area%d(%d,input_curvedarrows2_x,input_curvedarrows2_y,input_curvedarrows2_r);' value='OK' /></td></tr>\";}else{inner_html+=\"</tr>\";};", |
1093 | if( multiuserinput[%d] == 1 ){inner_html+=\"<td><b>(<input type='text' size='5' value='x1 : y1' id='input_curvedarrows2_x' />) -- (<input type='text' size='5' value='x2 : y2' id='input_curvedarrows2_y' />) -- (<input type='text' size='5' value='x3 : y3' id='input_curvedarrows2_r' />)</b></td><td><input type='button' id='canvasdraw_ok_button' onclick='javascript:update_draw_area%d(%d,input_curvedarrows2_x,input_curvedarrows2_y,input_curvedarrows2_r);' value='OK' /></td></tr>\";}else{inner_html+=\"</tr>\";};", |
1100 | u,i,canvas_root_id,u,i,canvas_root_id,u); |
1094 | u,i,canvas_root_id,u,i,canvas_root_id,u); |
1101 | } else { |
1095 | } else { |
1102 | fprintf(js_include_file,"userdraw_primitive = %d;",u); |
1096 | fprintf(js_include_file,"userdraw_primitive = %d;",u); |
1103 | } |
1097 | } |
1104 | break; |
1098 | break; |
1105 | case 25 ... 26: |
1099 | case 25 ... 26: |
1106 | fprintf(js_include_file,"function crosshairs(x,y,event_which,num){\ |
1100 | fprintf(js_include_file,"function crosshairs(x,y,event_which,num){\ |
1107 | if(event_which == 1){ return; };\ |
1101 | if(event_which == 1){ return; };\ |
1108 | var xy = multi_snap_check(x,y,crosshairs_snap);\ |
1102 | var xy = multi_snap_check(x,y,crosshairs_snap);\ |
1109 | if( num == 0 ){\ |
1103 | if( num == 0 ){\ |
1110 | crosshairs_x[0] = xy[0];\ |
1104 | crosshairs_x[0] = xy[0];\ |
1111 | crosshairs_y[0] = xy[1];\ |
1105 | crosshairs_y[0] = xy[1];\ |
1112 | } else {\ |
1106 | } else {\ |
1113 | crosshairs_x.push(xy[0]);\ |
1107 | crosshairs_x.push(xy[0]);\ |
1114 | crosshairs_y.push(xy[1]);\ |
1108 | crosshairs_y.push(xy[1]);\ |
1115 | };\ |
1109 | };\ |
1116 | draw_crosshairs();\ |
1110 | draw_crosshairs();\ |
1117 | };\ |
1111 | };\ |
1118 | function draw_crosshairs(){\ |
1112 | function draw_crosshairs(){\ |
1119 | var crosshair_size = %d;\ |
1113 | var crosshair_size = %d;\ |
1120 | context_crosshairs.clearRect(0,0,xsize,ysize);\ |
1114 | context_crosshairs.clearRect(0,0,xsize,ysize);\ |
1121 | var x1,x2,y1,y2;\ |
1115 | var x1,x2,y1,y2;\ |
1122 | for(var p = 0 ; p < crosshairs_x.length ; p++ ){\ |
1116 | for(var p = 0 ; p < crosshairs_x.length ; p++ ){\ |
Line 1142... | Line 1136... | ||
1142 | context_crosshairs.strokeStyle = \"rgba(\"+multistrokecolors[%d]+\",\"+multistrokeopacity[%d]+\")\";\ |
1136 | context_crosshairs.strokeStyle = \"rgba(\"+multistrokecolors[%d]+\",\"+multistrokeopacity[%d]+\")\";\ |
1143 | context_crosshairs.fillStyle = context_crosshairs.strokeStyle;\ |
1137 | context_crosshairs.fillStyle = context_crosshairs.strokeStyle;\ |
1144 | context_crosshairs.lineWidth = multilinewidth[%d];if(multilinewidth[%d] %%2 == 1){ context_crosshairs.translate(0.5,0.5);};\ |
1138 | context_crosshairs.lineWidth = multilinewidth[%d];if(multilinewidth[%d] %%2 == 1){ context_crosshairs.translate(0.5,0.5);};\ |
1145 | var crosshairs_x = new Array();var crosshairs_y = new Array();\ |
1139 | var crosshairs_x = new Array();var crosshairs_y = new Array();\ |
1146 | var crosshairs_snap = multisnaptogrid[%d];",crosshair_size,canvas_root_id,i,i,i,i,i,i,i,i,i,i,i,i); |
1140 | var crosshairs_snap = multisnaptogrid[%d];",crosshair_size,canvas_root_id,i,i,i,i,i,i,i,i,i,i,i,i); |
1147 | if( no_controls != 1){ |
1141 | if( no_controls != 1){ |
1148 | fprintf(js_include_file,"\ |
1142 | fprintf(js_include_file,"\ |
1149 | inner_html+=\"<tr><td><input type='button' onclick='javascript:userdraw_primitive=%d;multidraw_object_cnt = 0;' value='\"+multilabel[%d]+\"' /></td><td><input type='button' onclick='javascript:clear_draw_area%d(%d);' value='delete' /></td>\";\ |
1143 | inner_html+=\"<tr><td><input type='button' onclick='javascript:userdraw_primitive=%d;multidraw_object_cnt = 0;' value='\"+multilabel[%d]+\"' /></td><td><input type='button' onclick='javascript:clear_draw_area%d(%d);' value='delete' /></td>\";\ |
1150 | if( multiuserinput[%d] == 1 ){inner_html+=\"<td>(<input type='text' size='5' value='' id='input_crosshairs_x' />:<input type='text' size='5' value='' id='input_crosshairs_y' />)</td><td><input type='button' id='canvasdraw_ok_button' onclick='javascript:update_draw_area%d(%d,input_crosshairs_x,input_crosshairs_y,null);' value='OK' /></td></tr>\";}else{inner_html+=\"</tr>\";};", |
1144 | if( multiuserinput[%d] == 1 ){inner_html+=\"<td>(<input type='text' size='5' value='' id='input_crosshairs_x' />:<input type='text' size='5' value='' id='input_crosshairs_y' />)</td><td><input type='button' id='canvasdraw_ok_button' onclick='javascript:update_draw_area%d(%d,input_crosshairs_x,input_crosshairs_y,null);' value='OK' /></td></tr>\";}else{inner_html+=\"</tr>\";};", |
1151 | u,i,canvas_root_id,u,i,canvas_root_id,u); |
1145 | u,i,canvas_root_id,u,i,canvas_root_id,u); |
1152 | } else { |
1146 | } else { |
1153 | fprintf(js_include_file,"userdraw_primitive = %d;",u); |
1147 | fprintf(js_include_file,"userdraw_primitive = %d;",u); |
1154 | } |
1148 | } |
1155 | break; |
1149 | break; |
1156 | case 27:break; |
1150 | case 27:break; |
1157 | 1151 | ||
1158 | /* einde switch */ |
1152 | /* einde switch */ |
1159 | default : break; |
1153 | default : break; |
1160 | } |
1154 | } |
1161 | } /* end for loop */ |
1155 | } /* end for loop */ |
1162 | 1156 | ||
1163 | /* id_z may be used for radius , text etc...e.g. no x-values,y-values, x&y-valuepairs*/ |
1157 | /* id_z may be used for radius , text etc...e.g. no x-values,y-values, x&y-valuepairs*/ |
1164 | fprintf(js_include_file,"update_draw_area%d = function(desc,id_x,id_y,id_z){\ |
1158 | fprintf(js_include_file,"update_draw_area%d = function(desc,id_x,id_y,id_z){\ |
1165 | if( desc == 20 ){ draw_images();return;};\ |
1159 | if( desc == 20 ){ draw_images();return;};\ |
1166 | var x1,x2,x3,y1,y2,y3,z1,r,A,B,C;\ |
1160 | var x1,x2,x3,y1,y2,y3,z1,r,A,B,C;\ |
Line 1204... | Line 1198... | ||
1204 | case 25: fprintf(js_include_file,"case 25:crosshairs(x1,y1,0,0);break;"); break; |
1198 | case 25: fprintf(js_include_file,"case 25:crosshairs(x1,y1,0,0);break;"); break; |
1205 | case 26: fprintf(js_include_file,"case 26:crosshairs(x1,y1,0,1);break;"); break; |
1199 | case 26: fprintf(js_include_file,"case 26:crosshairs(x1,y1,0,1);break;"); break; |
1206 | default:break; |
1200 | default:break; |
1207 | } |
1201 | } |
1208 | } |
1202 | } |
1209 | fprintf(js_include_file,"default: break;};return;};"); |
1203 | fprintf(js_include_file,"default: break;};return;};"); |
1210 | 1204 | ||
1211 | /* begin clear_draw_area()*/ |
1205 | /* begin clear_draw_area()*/ |
1212 | fprintf(js_include_file,"clear_draw_area%d = function(type){switch(type){",canvas_root_id); |
1206 | fprintf(js_include_file,"clear_draw_area%d = function(type){switch(type){",canvas_root_id); |
1213 | for(i=0; i < MAX_MULTI_PRIMITIVES ; i++ ){ |
1207 | for(i=0; i < MAX_MULTI_PRIMITIVES ; i++ ){ |
1214 | switch( draw_nums[i] ){ |
1208 | switch( draw_nums[i] ){ |
1215 | case -1: break; |
1209 | case -1: break; |
1216 | case 0: fprintf(js_include_file,"case 0:context_points.clearRect(0,0,xsize,ysize);points_x = [];points_y = [];break;");break; |
1210 | case 0: fprintf(js_include_file,"case 0:context_points.clearRect(0,0,xsize,ysize);points_x = [];points_y = [];break;");break; |
1217 | case 1: fprintf(js_include_file,"case 1:points_x.pop();points_y.pop();draw_points();break;");break; |
1211 | case 1: fprintf(js_include_file,"case 1:points_x.pop();points_y.pop();draw_points();break;");break; |
1218 | case 2: fprintf(js_include_file,"case 2:context_circles.clearRect(0,0,xsize,ysize);circles_x = [];circles_y = []; multi_radius = [];break;");break; |
1212 | case 2: fprintf(js_include_file,"case 2:context_circles.clearRect(0,0,xsize,ysize);circles_x = [];circles_y = []; multi_radius = [];break;");break; |
1219 | case 3: fprintf(js_include_file,"case 3:circles_x.pop();circles_y.pop(); multi_radius.pop();draw_circles();break;");break; |
1213 | case 3: fprintf(js_include_file,"case 3:circles_x.pop();circles_y.pop(); multi_radius.pop();draw_circles();break;");break; |
1220 | case 4: fprintf(js_include_file,"case 4:context_lines.clearRect(0,0,xsize,ysize);lines_x = [];lines_y = [];break;");break; |
1214 | case 4: fprintf(js_include_file,"case 4:context_lines.clearRect(0,0,xsize,ysize);lines_x = [];lines_y = [];break;");break; |
1221 | case 5: fprintf(js_include_file,"case 5:lines_x.pop();lines_y.pop();lines_x.pop();lines_y.pop();draw_lines();break;");break; |
1215 | case 5: fprintf(js_include_file,"case 5:lines_x.pop();lines_y.pop();lines_x.pop();lines_y.pop();draw_lines();break;");break; |
1222 | case 6: fprintf(js_include_file,"case 6:context_segments.clearRect(0,0,xsize,ysize);segments_x = [];segments_y = [];break;");break; |
1216 | case 6: fprintf(js_include_file,"case 6:context_segments.clearRect(0,0,xsize,ysize);segments_x = [];segments_y = [];break;");break; |
1223 | case 7: fprintf(js_include_file,"case 7:segments_x.pop();segments_y.pop();segments_x.pop();segments_y.pop();draw_segments();break;");break; |
1217 | case 7: fprintf(js_include_file,"case 7:segments_x.pop();segments_y.pop();segments_x.pop();segments_y.pop();draw_segments();break;");break; |
1224 | case 8: fprintf(js_include_file,"case 8:context_arrows.clearRect(0,0,xsize,ysize);arrows_x = [];arrows_y = [];break;");break; |
1218 | case 8: fprintf(js_include_file,"case 8:context_arrows.clearRect(0,0,xsize,ysize);arrows_x = [];arrows_y = [];break;");break; |
1225 | case 9: fprintf(js_include_file,"case 9:arrows_x.pop();arrows_y.pop();arrows_x.pop();arrows_y.pop();draw_arrows();break;");break; |
1219 | case 9: fprintf(js_include_file,"case 9:arrows_x.pop();arrows_y.pop();arrows_x.pop();arrows_y.pop();draw_arrows();break;");break; |
1226 | case 10:fprintf(js_include_file,"case 10:context_triangles.clearRect(0,0,xsize,ysize); triangles_x = [];triangles_y = [];break;");break; |
1220 | case 10:fprintf(js_include_file,"case 10:context_triangles.clearRect(0,0,xsize,ysize); triangles_x = [];triangles_y = [];break;");break; |
1227 | case 11:fprintf(js_include_file,"case 11:for(var p=0;p<3;p++){triangles_x.pop();triangles_y.pop();};draw_triangles();break;");break; |
1221 | case 11:fprintf(js_include_file,"case 11:for(var p=0;p<3;p++){triangles_x.pop();triangles_y.pop();};draw_triangles();break;");break; |
1228 | case 12:fprintf(js_include_file,"case 12:context_closedpoly.clearRect(0,0,xsize,ysize);closedpoly_x = [];closedpoly_y = [];break;");break; |
1222 | case 12:fprintf(js_include_file,"case 12:context_closedpoly.clearRect(0,0,xsize,ysize);closedpoly_x = [];closedpoly_y = [];break;");break; |
1229 | case 13:fprintf(js_include_file,"case 13:context_text.clearRect(0,0,xsize,ysize);text_x.pop();text_y.pop();text_abc.pop();draw_text();break;");break; |
1223 | case 13:fprintf(js_include_file,"case 13:context_text.clearRect(0,0,xsize,ysize);text_x.pop();text_y.pop();text_abc.pop();draw_text();break;");break; |
1230 | case 14:fprintf(js_include_file,"case 14:context_rects.clearRect(0,0,xsize,ysize);rects_x = [];rects_y = [];break;");break; |
1224 | case 14:fprintf(js_include_file,"case 14:context_rects.clearRect(0,0,xsize,ysize);rects_x = [];rects_y = [];break;");break; |
1231 | case 15:fprintf(js_include_file,"case 15:rects_x.pop();rects_y.pop();rects_x.pop();rects_y.pop();draw_rects();break;");break; |
1225 | case 15:fprintf(js_include_file,"case 15:rects_x.pop();rects_y.pop();rects_x.pop();rects_y.pop();draw_rects();break;");break; |
1232 | case 16:fprintf(js_include_file,"case 16:context_polys.clearRect(0,0,xsize,ysize); polys_x = [];polys_y = [];break;");break; |
1226 | case 16:fprintf(js_include_file,"case 16:context_polys.clearRect(0,0,xsize,ysize); polys_x = [];polys_y = [];break;");break; |
1233 | case 17:fprintf(js_include_file,"case 17:for(var p=0;p<polynum;p++){polys_x.pop();polys_y.pop();};draw_polys();break;");break; |
1227 | case 17:fprintf(js_include_file,"case 17:for(var p=0;p<polynum;p++){polys_x.pop();polys_y.pop();};draw_polys();break;");break; |
1234 | case 18:fprintf(js_include_file,"case 18:context_parallelogram.clearRect(0,0,xsize,ysize); parallelogram_x = [];parallelogram_y = [];break;");break; |
1228 | case 18:fprintf(js_include_file,"case 18:context_parallelogram.clearRect(0,0,xsize,ysize); parallelogram_x = [];parallelogram_y = [];break;");break; |
1235 | case 19:fprintf(js_include_file,"case 19:for(var p = 0; p < 4;p++){ parallelogram_x.pop();parallelogram_y.pop();};draw_parallelogram();break;");break; |
1229 | case 19:fprintf(js_include_file,"case 19:for(var p = 0; p < 4;p++){ parallelogram_x.pop();parallelogram_y.pop();};draw_parallelogram();break;");break; |
1236 | case 20:fprintf(js_include_file,"case 20:context_images.clearRect(0,0,xsize,ysize);var len = images_id.length;if( len == 0 ){return;};var img = document.getElementById(images_id[len-1]);if( img.tagName == 'DIV' ){ img.innerHTML=null;};images_x.pop();images_y.pop();images_id.pop();draw_images();break;");break; |
1230 | case 20:fprintf(js_include_file,"case 20:context_images.clearRect(0,0,xsize,ysize);var len = images_id.length;if( len == 0 ){return;};var img = document.getElementById(images_id[len-1]);if( img.tagName == 'DIV' ){ img.innerHTML=null;};images_x.pop();images_y.pop();images_id.pop();draw_images();break;");break; |
1237 | case 21:fprintf(js_include_file,"case 21:context_curvedarrows.clearRect(0,0,xsize,ysize);curvedarrows_x = [];curvedarrows_y = [];break;");break; |
1231 | case 21:fprintf(js_include_file,"case 21:context_curvedarrows.clearRect(0,0,xsize,ysize);curvedarrows_x = [];curvedarrows_y = [];break;");break; |
1238 | case 22:fprintf(js_include_file,"case 22:curvedarrows_x.pop();curvedarrows_y.pop();curvedarrows_x.pop();curvedarrows_y.pop();curvedarrows_x.pop();curvedarrows_y.pop();draw_curvedarrows();break;");break; |
1232 | case 22:fprintf(js_include_file,"case 22:curvedarrows_x.pop();curvedarrows_y.pop();curvedarrows_x.pop();curvedarrows_y.pop();curvedarrows_x.pop();curvedarrows_y.pop();draw_curvedarrows();break;");break; |
1239 | case 23:fprintf(js_include_file,"case 23:context_curvedarrows2.clearRect(0,0,xsize,ysize);curvedarrows2_x = [];curvedarrows2_y = [];break;");break; |
1233 | case 23:fprintf(js_include_file,"case 23:context_curvedarrows2.clearRect(0,0,xsize,ysize);curvedarrows2_x = [];curvedarrows2_y = [];break;");break; |
1240 | case 24:fprintf(js_include_file,"case 24:curvedarrows2_x.pop();curvedarrows2_y.pop();curvedarrows2_x.pop();curvedarrows2_y.pop();curvedarrows2_x.pop();curvedarrows2_y.pop();draw_curvedarrows2();break;");break; |
1234 | case 24:fprintf(js_include_file,"case 24:curvedarrows2_x.pop();curvedarrows2_y.pop();curvedarrows2_x.pop();curvedarrows2_y.pop();curvedarrows2_x.pop();curvedarrows2_y.pop();draw_curvedarrows2();break;");break; |
1241 | case 25:fprintf(js_include_file,"case 25:context_crosshairs.clearRect(0,0,xsize,ysize);crosshairs_x = [];crosshairs_y = [];break;");break; |
1235 | case 25:fprintf(js_include_file,"case 25:context_crosshairs.clearRect(0,0,xsize,ysize);crosshairs_x = [];crosshairs_y = [];break;");break; |
1242 | case 26:fprintf(js_include_file,"case 26:crosshairs_x.pop();crosshairs_y.pop();draw_crosshairs();break;");break; |
1236 | case 26:fprintf(js_include_file,"case 26:crosshairs_x.pop();crosshairs_y.pop();draw_crosshairs();break;");break; |
1243 | default:break; |
1237 | default:break; |
- | 1238 | } |
|
1244 | } |
1239 | } |
1245 | } |
- | |
1246 | fprintf(js_include_file,"};return;};"); |
1240 | fprintf(js_include_file,"};return;};"); |
1247 | /* end clear_draw_area();*/ |
1241 | /* end clear_draw_area();*/ |
1248 | 1242 | ||
1249 | 1243 | ||
1250 | /* add </table> is button controls are needed */ |
1244 | /* add </table> is button controls are needed */ |
1251 | if( no_controls != 1 ){fprintf(js_include_file,"inner_html+=\"</table>\";tooltip_div.innerHTML = inner_html;"); } |
1245 | if( no_controls != 1 ){fprintf(js_include_file,"inner_html+=\"</table>\";tooltip_div.innerHTML = inner_html;"); } |
1252 | free(str); |
1246 | free(str); |
1253 | 1247 | ||
1254 | } |
1248 | } |
1255 | /* end 'void add_js_multidraw()' */ |
1249 | /* end 'void add_js_multidraw()' */ |
1256 | 1250 | ||
1257 | 1251 |