Subversion Repositories wimsdev

Rev

Rev 16827 | Rev 16872 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 16827 Rev 16844
Line 4... Line 4...
4
fprintf(js_include_file,"\n/* draw zoom buttons */\
4
fprintf(js_include_file,"\n/* draw zoom buttons */\
5
var draw_zoom_buttons = function(){\
5
var draw_zoom_buttons = function(){\
6
 var obj;var canvas_type =%d;\
6
 var obj;var canvas_type =%d;\
7
 if( document.getElementById(\"wims_canvas%d\"+canvas_type) ){\
7
 if( document.getElementById(\"wims_canvas%d\"+canvas_type) ){\
8
  obj = document.getElementById(\"wims_canvas%d\"+canvas_type);\
8
  obj = document.getElementById(\"wims_canvas%d\"+canvas_type);\
9
 }\
-
 
10
 else\
9
 } else {\
11
 {\
-
 
12
  obj = create_canvas%d(canvas_type,xsize,ysize);\
10
  obj = create_canvas%d(canvas_type,xsize,ysize);\
13
 };\
11
 };\
14
 var ctx = obj.getContext(\"2d\");\
12
 var ctx = obj.getContext(\"2d\");\
15
 ctx.font =\"20px Arial\";\
13
 ctx.font =\"20px Arial\";\
16
 ctx.textAlign = \"right\";\
14
 ctx.textAlign = \"right\";\
Line 26... Line 24...
26
};draw_zoom_buttons();",BG_CANVAS,canvas_root_id,canvas_root_id,canvas_root_id,stroke_color,stroke_opacity);
24
};draw_zoom_buttons();",BG_CANVAS,canvas_root_id,canvas_root_id,canvas_root_id,stroke_color,stroke_opacity);
27
}
25
}
28
 
26
 
29
void add_js_popup(char *getfile_cmd){
27
void add_js_popup(char *getfile_cmd){
30
fprintf(stdout,"\n<!-- begin command popup %d -->\n\
28
fprintf(stdout,"\n<!-- begin command popup %d -->\n\
31
<script type=\"text/javascript\">\n\
29
<script>\n\
32
if( wims_status != 'done'){\
30
if( wims_status != 'done'){\
33
 var popup = window.open('','','toolbar=no,scrollbars=yes,menubar=no,location=no,resizable=yes,top=4,left=4,status=no, width = %dpx, height = %dpx');\
31
 var popup = window.open('','','toolbar=no,scrollbars=yes,menubar=no,location=no,resizable=yes,top=4,left=4,status=no, width = %dpx, height = %dpx');\
34
 var popupHTML =\"<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'>\\n<html><head></head>\\n<body><div style='width:%dpx;height:%dpx;position:relative' id='canvas_div%d'></div><div id='tooltip_placeholder_div%d' style='display:block;position:relative;margin-left:auto;margin-right:auto;margin-bottom:4px;'><span id='tooltip_placeholder%d' style='display:none;'></span></div></body></html>\";\
32
 var popupHTML =\"<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'>\\n<html><head></head>\\n<body><div style='width:%dpx;height:%dpx;position:relative' id='canvas_div%d'></div><div id='tooltip_placeholder_div%d' style='display:block;position:relative;margin-left:auto;margin-right:auto;margin-bottom:4px;'><span id='tooltip_placeholder%d' style='display:none;'></span></div></body></html>\";\
35
 popup.document.write(popupHTML);\
33
 popup.document.write(popupHTML);\
36
 var s0 = popup.document.createElement(\"script\");\
34
 var s0 = popup.document.createElement(\"script\");\
37
 s0.text=\"var wims_status = window.opener.wims_status; var use_dragdrop_reply = window.opener.use_dragdrop_reply;window.opener.canvas_scripts.push('%d');\";\
35
 s0.text=\"var wims_status = window.opener.wims_status; var use_dragdrop_reply = window.opener.use_dragdrop_reply;window.opener.canvas_scripts.push('%d');\";\
38
 popup.document.getElementsByTagName(\"HEAD\")[0].appendChild(s0);\
36
 popup.document.getElementsByTagName(\"HEAD\")[0].appendChild(s0);\
39
 var s1 = popup.document.createElement(\"script\");\
37
 var s1 = popup.document.createElement(\"script\");\
40
 s1.type = \"text/javascript\";\
-
 
41
 s1.src = \"%s\";\
38
 s1.src = \"%s\";\
42
 popup.document.getElementsByTagName(\"HEAD\")[0].appendChild(s1);\
39
 popup.document.getElementsByTagName(\"HEAD\")[0].appendChild(s1);\
43
 popup.document.close();\
40
 popup.document.close();\
44
 }else{\
41
 } else {\
45
 var canvas_div = document.getElementById('canvas_div%d');\
42
  var canvas_div = document.getElementById('canvas_div%d');\
46
 canvas_div.style.display='block';\
43
  canvas_div.style.display='block';\
47
 };\n</script>\n<!-- end command popup %d -->\n",
44
 };\n</script>\n<!-- end command popup %d -->\n",
48
canvas_root_id,
45
canvas_root_id,
49
xsize+40,ysize+40,
46
xsize+40,ysize+40,
50
xsize,ysize,
47
xsize,ysize,
51
canvas_root_id,
48
canvas_root_id,
Line 57... Line 54...
57
canvas_root_id);
54
canvas_root_id);
58
}
55
}
59
 
56
 
60
void add_js_tooltip(char *tooltip_text,char *bgcolor){
57
void add_js_tooltip(char *tooltip_text,char *bgcolor){
61
fprintf(stdout,"\n<!-- begin command intooltip %d -->\n\
58
fprintf(stdout,"\n<!-- begin command intooltip %d -->\n\
62
<script type=\"text/javascript\">\n\
59
<script>\n\
63
var xsize = %d;\
60
var xsize = %d;\
64
var ysize = %d;\
61
var ysize = %d;\
65
var tooltip%d_obj_x = 0;\
62
var tooltip%d_obj_x = 0;\
66
var tooltip%d_obj_y = 0;\
63
var tooltip%d_obj_y = 0;\
67
var tooltip%d_flipflop = 0;\
64
var tooltip%d_flipflop = 0;\
Line 82... Line 79...
82
 if(action.clientX){\
79
 if(action.clientX){\
83
  tooltip%d_obj.style.left = (tooltip%d_mouseX(action) + 10) +\"px\";\
80
  tooltip%d_obj.style.left = (tooltip%d_mouseX(action) + 10) +\"px\";\
84
  var ytop = tooltip%d_mouseY(action);\
81
  var ytop = tooltip%d_mouseY(action);\
85
  if(ytop + ysize < window.innerHeight){\
82
  if(ytop + ysize < window.innerHeight){\
86
   tooltip%d_obj.style.top = (ytop - 10) +\"px\";\
83
   tooltip%d_obj.style.top = (ytop - 10) +\"px\";\
87
  }\
-
 
88
  else\
84
  } else {\
89
  {\
-
 
90
   tooltip%d_obj.style.top = parseInt(ytop - 0.8*ysize) +\"px\";\
85
   tooltip%d_obj.style.top = parseInt(ytop - 0.8*ysize) +\"px\";\
91
  };\
86
  };\
92
 }\
-
 
93
 else\
87
 } else {\
94
 {\
-
 
95
  return null;\
88
  return null;\
96
 };\
89
 };\
97
};\
90
};\
98
function tooltip%d_mouseX(action){\
91
function tooltip%d_mouseX(action){\
99
 if(action.pageX){\
92
 if(action.pageX){\
100
  return action.pageX;\
93
  return action.pageX;\
101
 }\
-
 
102
 else\
94
 } else {\
103
 {\
-
 
104
  if(action.clientX){\
95
  if(action.clientX){\
105
   return action.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft);\
96
   return action.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft);\
106
  }\
-
 
107
  else\
97
  } else {\
108
  {\
-
 
109
   return null;\
98
   return null;\
110
  };\
99
  };\
111
 };\
100
 };\
112
};\
101
};\
113
function tooltip%d_mouseY(action){\
102
function tooltip%d_mouseY(action){\
114
 if(action.pageY){\
103
 if(action.pageY){\
115
  return action.pageY;\
104
  return action.pageY;\
116
 }\
-
 
117
 else\
105
 } else {\
118
 {\
-
 
119
  if(action.clientY){\
106
  if(action.clientY){\
120
   return action.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop :document.body.scrollTop);\
107
   return action.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop :document.body.scrollTop);\
121
  }\
-
 
122
  else\
108
  } else {\
123
  {\
-
 
124
   return null;\
109
   return null;\
125
  };\
110
  };\
126
 };\
111
 };\
127
};\
112
};\
128
function tooltip%d_show(){\
113
function tooltip%d_show(){\
129
 if(tooltip%d_flipflop == 0){\
114
 if(tooltip%d_flipflop == 0){\
130
  tooltip%d_obj.style.display = \"block\";\
115
  tooltip%d_obj.style.display = \"block\";\
131
  tooltip%d_flipflop = 1;\
116
  tooltip%d_flipflop = 1;\
132
 }\
-
 
133
 else\
117
 } else {\
134
 {\
-
 
135
  tooltip%d_flipflop = 0;\
118
  tooltip%d_flipflop = 0;\
136
  tooltip%d_obj.style.display = \"none\";\
119
  tooltip%d_obj.style.display = \"none\";\
137
 };\
120
 };\
138
};\n</script>\n<!-- end command intooltip %d -->\n",canvas_root_id,xsize,ysize,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,tooltip_text,canvas_root_id,bgcolor,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id);
121
};\n</script>\n<!-- end command intooltip %d -->\n",canvas_root_id,xsize,ysize,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,tooltip_text,canvas_root_id,bgcolor,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id,canvas_root_id);
139
 
122
 
Line 378... Line 361...
378
/*
361
/*
379
 x-value of the mouse will be used to calculate via javascript the corresponding y-value using the verbatim js-math function
362
 x-value of the mouse will be used to calculate via javascript the corresponding y-value using the verbatim js-math function
380
 a configurable crosshair and vertical/horizontal crosshair lines will be drawn
363
 a configurable crosshair and vertical/horizontal crosshair lines will be drawn
381
 function is called "use_mouse_coordinates() and thus can not be combined with command 'mouse'
364
 function is called "use_mouse_coordinates() and thus can not be combined with command 'mouse'
382
*/
365
*/
383
void add_trace_js_mouse(int canvas_cnt,char *stroke_color,char *jsmath,int font_size,double stroke_opacity,int line_width,int crosshair_size,char *css_class){
366
void add_trace_js_mouse(int canvas_cnt, char *stroke_color, char *jsmath,
-
 
367
  int font_size, double stroke_opacity, int line_width,
-
 
368
  int crosshair_size,char *css_class){
384
fprintf(js_include_file,"\n/* add_trace_jsmath */\
369
fprintf(js_include_file,"\n/* add_trace_jsmath */\
385
use_jsmath=1;\
370
use_jsmath=1;\
386
function use_trace_jsmath(){\
371
function use_trace_jsmath(){\
387
if( wims_status == \"done\" ){return;};\
372
if( wims_status == \"done\" ){return;};\
388
 var label_x = \"x\";var label_y = \"y\";\
373
 var label_x = \"x\";var label_y = \"y\";\
Line 618... Line 603...
618
 var add_y = safe_eval( document.getElementById(\"userinput_y\").value );\
603
 var add_y = safe_eval( document.getElementById(\"userinput_y\").value );\
619
 if( add_x != null && add_y != null ){\
604
 if( add_x != null && add_y != null ){\
620
  if( %d == 1 ){\
605
  if( %d == 1 ){\
621
   userdraw_x[0] = x2px(add_x);\
606
   userdraw_x[0] = x2px(add_x);\
622
   userdraw_y[0] = y2px(add_y);\
607
   userdraw_y[0] = y2px(add_y);\
623
  }\
-
 
624
  else\
608
  } else {\
625
  {\
-
 
626
    userdraw_x[lu] = x2px(add_x);\
609
    userdraw_x[lu] = x2px(add_x);\
627
    userdraw_y[lu] = y2px(add_y);\
610
    userdraw_y[lu] = y2px(add_y);\
628
    xy_cnt++;\
611
    xy_cnt++;\
629
  };\
612
  };\
630
  context_userdraw.clearRect(0,0,xsize,ysize);\
613
  context_userdraw.clearRect(0,0,xsize,ysize);\
Line 638... Line 621...
638
void add_input_arrow(int num){
621
void add_input_arrow(int num){
639
fprintf(js_include_file,"\n/* add_input_arrow */\
622
fprintf(js_include_file,"\n/* add_input_arrow */\
640
function user_redraw(t){\
623
function user_redraw(t){\
641
 var lu = userdraw_x.length;\
624
 var lu = userdraw_x.length;\
642
 if( t == -1 && lu > 1 ){\
625
 if( t == -1 && lu > 1 ){\
643
  userdraw_x.splice(lu-2,2);\
626
  userdraw_x.splice(lu-2,2);\
644
  userdraw_y.splice(lu-2,2);\
627
  userdraw_y.splice(lu-2,2);\
645
  context_userdraw.clearRect(0,0,xsize,ysize);\
628
  context_userdraw.clearRect(0,0,xsize,ysize);\
646
  draw_arrows(context_userdraw,userdraw_x,userdraw_y,arrow_head,line_width,stroke_color,stroke_opacity,use_dashed,dashtype0,dashtype1,type,use_rotate,angle,0,[1,0,0,1,0,0]);\
629
  draw_arrows(context_userdraw,userdraw_x,userdraw_y,arrow_head,line_width,stroke_color,stroke_opacity,use_dashed,dashtype0,dashtype1,type,use_rotate,angle,0,[1,0,0,1,0,0]);\
647
  return;\
630
  return;\
648
 };\
631
 };\
649
 var add_x1 = safe_eval( document.getElementById(\"userinput_x1\").value );\
632
 var add_x1 = safe_eval( document.getElementById(\"userinput_x1\").value );\
650
 var add_y1 = safe_eval( document.getElementById(\"userinput_y1\").value );\
633
 var add_y1 = safe_eval( document.getElementById(\"userinput_y1\").value );\
651
 var add_x2 = safe_eval( document.getElementById(\"userinput_x2\").value );\
634
 var add_x2 = safe_eval( document.getElementById(\"userinput_x2\").value );\
652
 var add_y2 = safe_eval( document.getElementById(\"userinput_y2\").value );\
635
 var add_y2 = safe_eval( document.getElementById(\"userinput_y2\").value );\
653
 if( add_x1 != null && add_y1 != null && add_x2 != null && add_y2 != null ){\
636
 if( add_x1 != null && add_y1 != null && add_x2 != null && add_y2 != null ){\
654
  if( %d == 2 ){\
637
  if( %d == 2 ){\
655
    var s = userdraw_x.length;\
638
    var s = userdraw_x.length;\
656
    userdraw_x[lu] = x2px(add_x1);\
639
    userdraw_x[lu] = x2px(add_x1);\
657
    userdraw_y[lu] = y2px(add_y1);\
640
    userdraw_y[lu] = y2px(add_y1);\
658
    userdraw_x[lu+1] = x2px(add_x2);\
641
    userdraw_x[lu+1] = x2px(add_x2);\
659
    userdraw_y[lu+1] = y2px(add_y2);\
642
    userdraw_y[lu+1] = y2px(add_y2);\
660
  }\
-
 
661
  else\
643
  } else {\
662
  {\
-
 
663
   userdraw_x[0] = x2px(add_x1);\
644
   userdraw_x[0] = x2px(add_x1);\
664
   userdraw_y[0] = y2px(add_y1);\
645
   userdraw_y[0] = y2px(add_y1);\
665
   userdraw_x[1] = x2px(add_x2);\
646
   userdraw_x[1] = x2px(add_x2);\
666
   userdraw_y[1] = y2px(add_y2);\
647
   userdraw_y[1] = y2px(add_y2);\
667
  };\
648
  };\
668
  context_userdraw.clearRect(0,0,xsize,ysize);\
649
  context_userdraw.clearRect(0,0,xsize,ysize);\
669
  draw_arrows(context_userdraw,userdraw_x,userdraw_y,arrow_head,line_width,stroke_color,stroke_opacity,use_dashed,dashtype0,dashtype1,type,use_rotate,angle,0,[1,0,0,1,0,0]);\
650
  draw_arrows(context_userdraw,userdraw_x,userdraw_y,arrow_head,line_width,stroke_color,stroke_opacity,use_dashed,dashtype0,dashtype1,type,use_rotate,angle,0,[1,0,0,1,0,0]);\
670
 };\
651
 };\
671
 return;\
652
 return;\
672
};",num);
653
};",num);
673
}
654
}
674
 
655
 
675
/* draw line via inputfields x/y */
656
/* draw line via inputfields x/y */
676
void add_input_line(int num){
657
void add_input_line(int num){
677
fprintf(js_include_file,"\n/* line via inputfields  */\
658
fprintf(js_include_file,"\n/* line via inputfields  */\
678
function user_redraw(t){\
659
function user_redraw(t){\
679
 var lu = userdraw_x.length;\
660
 var lu = userdraw_x.length;\
680
 if( t == -1 && lu > 1){\
661
 if( t == -1 && lu > 1){\
681
  userdraw_x.splice(lu-2,2);\
662
  userdraw_x.splice(lu-2,2);\
682
  userdraw_y.splice(lu-2,2);\
663
  userdraw_y.splice(lu-2,2);\
683
  context_userdraw.clearRect(0,0,xsize,ysize);\
664
  context_userdraw.clearRect(0,0,xsize,ysize);\
684
  draw_lines(context_userdraw,userdraw_x,userdraw_y,line_width,stroke_color,stroke_opacity,use_dashed,dashtype0,dashtype1,1,0,0);\
665
  draw_lines(context_userdraw,userdraw_x,userdraw_y,line_width,stroke_color,stroke_opacity,use_dashed,dashtype0,dashtype1,1,0,0);\
685
  return;\
666
  return;\
686
 };\
667
 };\
687
 var add_x1 = safe_eval( document.getElementById(\"userinput_x1\").value );\
668
 var add_x1 = safe_eval( document.getElementById(\"userinput_x1\").value );\
688
 var add_y1 = safe_eval( document.getElementById(\"userinput_y1\").value );\
669
 var add_y1 = safe_eval( document.getElementById(\"userinput_y1\").value );\
689
 var add_x2 = safe_eval( document.getElementById(\"userinput_x2\").value );\
670
 var add_x2 = safe_eval( document.getElementById(\"userinput_x2\").value );\
690
 var add_y2 = safe_eval( document.getElementById(\"userinput_y2\").value );\
671
 var add_y2 = safe_eval( document.getElementById(\"userinput_y2\").value );\
691
 if( add_x1 != null && add_y1 != null && add_x2 != null && add_y2 != null ){\
672
 if( add_x1 != null && add_y1 != null && add_x2 != null && add_y2 != null ){\
692
  if( %d == 2 ){\
673
  if( %d == 2 ){\
693
    userdraw_x[lu] = x2px(add_x1);\
674
    userdraw_x[lu] = x2px(add_x1);\
694
    userdraw_y[lu] = y2px(add_y1);\
675
    userdraw_y[lu] = y2px(add_y1);\
695
    userdraw_x[lu+1] = x2px(add_x2);\
676
    userdraw_x[lu+1] = x2px(add_x2);\
696
    userdraw_y[lu+1] = y2px(add_y2);\
677
    userdraw_y[lu+1] = y2px(add_y2);\
697
  }\
-
 
698
  else\
678
  } else {\
699
  {\
-
 
700
   userdraw_x[0] = x2px(add_x1);\
679
   userdraw_x[0] = x2px(add_x1);\
701
   userdraw_y[0] = y2px(add_y1);\
680
   userdraw_y[0] = y2px(add_y1);\
702
   userdraw_x[1] = x2px(add_x2);\
681
   userdraw_x[1] = x2px(add_x2);\
703
   userdraw_y[1] = y2px(add_y2);\
682
   userdraw_y[1] = y2px(add_y2);\
704
  };\
683
  };\
705
  context_userdraw.clearRect(0,0,xsize,ysize);\
684
  context_userdraw.clearRect(0,0,xsize,ysize);\
706
  draw_lines(context_userdraw,userdraw_x,userdraw_y,line_width,stroke_color,stroke_opacity,use_dashed,dashtype0,dashtype1,1,0,0);\
685
  draw_lines(context_userdraw,userdraw_x,userdraw_y,line_width,stroke_color,stroke_opacity,use_dashed,dashtype0,dashtype1,1,0,0);\
707
 };\
686
 };\
708
 return;\
687
 return;\
709
};",num);
688
};",num);
710
}
689
}
711
 
690
 
712
 
691
 
713
/* draw polyline via inputfields x/y */
692
/* draw polyline via inputfields x/y */
714
void add_input_polyline(){
693
void add_input_polyline(){
Line 734... Line 713...
734
 return;\
713
 return;\
735
};");
714
};");
736
}
715
}
737
/* draw segment(s) via inputfields x/y */
716
/* draw segment(s) via inputfields x/y */
738
void add_input_segment(int num){
717
void add_input_segment(int num){
739
fprintf(js_include_file,"\n/* add_input_segment */\
718
fprintf(js_include_file,"\n/* add_input_segment */\
740
function user_redraw(t){\
719
function user_redraw(t){\
741
 var lu = userdraw_x.length;\
720
 var lu = userdraw_x.length;\
742
 if( t == -1 && lu > 1){\
721
 if( t == -1 && lu > 1){\
743
  userdraw_x.splice(lu-2,2);\
722
  userdraw_x.splice(lu-2,2);\
744
  userdraw_y.splice(lu-2,2);\
723
  userdraw_y.splice(lu-2,2);\
745
  context_userdraw.clearRect(0,0,xsize,ysize);\
724
  context_userdraw.clearRect(0,0,xsize,ysize);\
746
  draw_segments(context_userdraw,userdraw_x,userdraw_y,line_width,stroke_color,stroke_opacity,use_dashed,dashtype0,dashtype1);\
725
  draw_segments(context_userdraw,userdraw_x,userdraw_y,line_width,stroke_color,stroke_opacity,use_dashed,dashtype0,dashtype1);\
747
  return;\
726
  return;\
748
 };\
727
 };\
749
 var add_x1 = safe_eval( document.getElementById(\"userinput_x1\").value );\
728
 var add_x1 = safe_eval( document.getElementById(\"userinput_x1\").value );\
750
 var add_y1 = safe_eval( document.getElementById(\"userinput_y1\").value );\
729
 var add_y1 = safe_eval( document.getElementById(\"userinput_y1\").value );\
751
 var add_x2 = safe_eval( document.getElementById(\"userinput_x2\").value );\
730
 var add_x2 = safe_eval( document.getElementById(\"userinput_x2\").value );\
752
 var add_y2 = safe_eval( document.getElementById(\"userinput_y2\").value );\
731
 var add_y2 = safe_eval( document.getElementById(\"userinput_y2\").value );\
753
 if( add_x1 != null && add_y1 != null && add_x2 != null && add_y2 != null ){\
732
 if( add_x1 != null && add_y1 != null && add_x2 != null && add_y2 != null ){\
754
  if( %d == 2 ){\
733
  if( %d == 2 ){\
755
    var s = userdraw_x.length;\
734
    var s = userdraw_x.length;\
756
    userdraw_x[s] = x2px(add_x1);\
735
    userdraw_x[s] = x2px(add_x1);\
757
    userdraw_y[s] = y2px(add_y1);\
736
    userdraw_y[s] = y2px(add_y1);\
758
    userdraw_x[s+1] = x2px(add_x2);\
737
    userdraw_x[s+1] = x2px(add_x2);\
759
    userdraw_y[s+1] = y2px(add_y2);\
738
    userdraw_y[s+1] = y2px(add_y2);\
760
  }\
-
 
761
  else\
739
  } else {\
762
  {\
-
 
763
   userdraw_x[0] = x2px(add_x1);\
740
   userdraw_x[0] = x2px(add_x1);\
764
   userdraw_y[0] = y2px(add_y1);\
741
   userdraw_y[0] = y2px(add_y1);\
765
   userdraw_x[1] = x2px(add_x2);\
742
   userdraw_x[1] = x2px(add_x2);\
766
   userdraw_y[1] = y2px(add_y2);\
743
   userdraw_y[1] = y2px(add_y2);\
767
  };\
744
  };\
768
  context_userdraw.clearRect(0,0,xsize,ysize);\
745
  context_userdraw.clearRect(0,0,xsize,ysize);\
769
  draw_segments(context_userdraw,userdraw_x,userdraw_y,line_width,stroke_color,stroke_opacity,use_dashed,dashtype0,dashtype1);\
746
  draw_segments(context_userdraw,userdraw_x,userdraw_y,line_width,stroke_color,stroke_opacity,use_dashed,dashtype0,dashtype1);\
770
 };\
747
 };\
771
 return;\
748
 return;\
Line 793... Line 770...
793
    var s = userdraw_x.length;\
770
    var s = userdraw_x.length;\
794
    userdraw_x[s] = x2px(add_x1);\
771
    userdraw_x[s] = x2px(add_x1);\
795
    userdraw_y[s] = y2px(add_y1);\
772
    userdraw_y[s] = y2px(add_y1);\
796
    userdraw_x[s+1] = x2px(add_x2);\
773
    userdraw_x[s+1] = x2px(add_x2);\
797
    userdraw_y[s+1] = y2px(add_y2);\
774
    userdraw_y[s+1] = y2px(add_y2);\
798
  }\
-
 
799
  else\
775
  } else {\
800
  {\
-
 
801
   userdraw_x[0] = x2px(add_x1);\
776
   userdraw_x[0] = x2px(add_x1);\
802
   userdraw_y[0] = y2px(add_y1);\
777
   userdraw_y[0] = y2px(add_y1);\
803
   userdraw_x[1] = x2px(add_x2);\
778
   userdraw_x[1] = x2px(add_x2);\
804
   userdraw_y[1] = y2px(add_y2);\
779
   userdraw_y[1] = y2px(add_y2);\
805
  };\
780
  };\
806
  context_userdraw.clearRect(0,0,xsize,ysize);\
781
  context_userdraw.clearRect(0,0,xsize,ysize);\
807
  draw_demilines(context_userdraw,userdraw_x,userdraw_y,line_width,stroke_color,stroke_opacity,use_dashed,dashtype0,dashtype1);\
782
  draw_demilines(context_userdraw,userdraw_x,userdraw_y,line_width,stroke_color,stroke_opacity,use_dashed,dashtype0,dashtype1);\
808
 };\
783
 };\
809
 return;\
784
 return;\
810
};",num);
785
};",num);
811
}
786
}
812
 
787
 
813
void add_clear_button(char *css_class,char *button_text){
788
void add_clear_button(char *css_class,char *button_text){
814
/* 25/11/2014 added clearing of reply array
789
/* 25/11/2014 added clearing of reply array
815
all members will be set to 0 eg reply[0] = 0 , reply[1] = 0 ...
790
all members will be set to 0 eg reply[0] = 0 , reply[1] = 0 ...
816
hope this does not interfere with existing work...
791
hope this does not interfere with existing work...
817
*/
792
*/
818
/*
793
/*
819
5/2016 changed  to 'setAttribute()' because of trouble on Chromium/Safari/IE
794
5/2016 changed  to 'setAttribute()' because of trouble on Chromium/Safari/IE
820
10/2016 corrected contex-reset-flaw when using "userdraw text,color" and added inputs to the things we can remove
795
10/2016 corrected contex-reset-flaw when using "userdraw text,color" and added inputs to the things we can remove
821
7/2017 added 'userdraw clickfill,color' to removable things...one user_filling per click
796
7/2017 added 'userdraw clickfill,color' to removable things...one user_filling per click
822
*/
797
*/
823
fprintf(js_include_file,"\n/* add clear button */\
798
fprintf(js_include_file,"\n/* add clear button */\
824
clear_draw_area%d = function(){\
799
clear_draw_area%d = function(){\
Line 1061... Line 1036...
1061
 var fill_data;\
1036
 var fill_data;\
1062
 var _setPixel;\
1037
 var _setPixel;\
1063
 function finish_filling(){\
1038
 function finish_filling(){\
1064
  if(document.getElementById(\"wims_canvas%d\"+fill_canvas_no)){\
1039
  if(document.getElementById(\"wims_canvas%d\"+fill_canvas_no)){\
1065
  console.log('dit canvas nummer '+fill_canvas_no+' bestaat al');\
1040
  console.log('dit canvas nummer '+fill_canvas_no+' bestaat al');\
1066
  }else{\
1041
  } else {\
1067
   var fill_canvas = create_canvas%d(fill_canvas_no,xsize,ysize);\
1042
   var fill_canvas = create_canvas%d(fill_canvas_no,xsize,ysize);\
1068
   var fill_canvas_ctx = fill_canvas.getContext(\"2d\");\
1043
   var fill_canvas_ctx = fill_canvas.getContext(\"2d\");\
1069
   fill_canvas_ctx.clearRect(0,0,xsize,ysize);\
1044
   fill_canvas_ctx.clearRect(0,0,xsize,ysize);\
1070
   fill_canvas_ctx.putImageData(image, 0, 0);\
1045
   fill_canvas_ctx.putImageData(image, 0, 0);\
1071
  };\
1046
  };\
Line 1085... Line 1060...
1085
    o = imageData[pixelPos+p];\
1060
    o = imageData[pixelPos+p];\
1086
    if( n != o ){ imageData[pixelPos+p] = n; } else { if( o == 255 ){ o = 253;} imageData[pixelPos+p] = o+1;};\
1061
    if( n != o ){ imageData[pixelPos+p] = n; } else { if( o == 255 ){ o = 253;} imageData[pixelPos+p] = o+1;};\
1087
   };\
1062
   };\
1088
   imageData[pixelPos+3] = 255;\
1063
   imageData[pixelPos+3] = 255;\
1089
  };\
1064
  };\
1090
 }\
-
 
1091
 else\
1065
 } else {\
1092
 {\
-
 
1093
  _setPixel = function(pixelPos){\
1066
  _setPixel = function(pixelPos){\
1094
   imageData[pixelPos] = color.r;\
1067
   imageData[pixelPos] = color.r;\
1095
   imageData[pixelPos+1] = color.g;\
1068
   imageData[pixelPos+1] = color.g;\
1096
   imageData[pixelPos+2] = color.b;\
1069
   imageData[pixelPos+2] = color.b;\
1097
   imageData[pixelPos+3] = color.a;\
1070
   imageData[pixelPos+3] = color.a;\
Line 1240... Line 1213...
1240
    ctx_temp.stroke();\
1213
    ctx_temp.stroke();\
1241
   };\
1214
   };\
1242
   ctx_temp.drawImage(canvas,ruler_x,ruler_y);\
1215
   ctx_temp.drawImage(canvas,ruler_x,ruler_y);\
1243
   once = false;\
1216
   once = false;\
1244
  }",canvas_root_id,use_snap,canvas_root_id,sizex,sizey,x,y,font,stroke_color,stroke_opacity,fill_color,fill_opacity,line_width);
1217
  }",canvas_root_id,use_snap,canvas_root_id,sizex,sizey,x,y,font,stroke_color,stroke_opacity,fill_color,fill_opacity,line_width);
1245
 
1218
 
1246
 if( dynamic == -1 ){
1219
 if( dynamic == -1 ){
1247
 fprintf(js_include_file,"\
1220
 fprintf(js_include_file,"\
1248
 ctx.drawImage(canvas_temp,0,0);\
1221
 ctx.drawImage(canvas_temp,0,0);\
1249
   if(wims_status != \"done\"){\
1222
   if(wims_status != \"done\"){\
1250
    canvas_div.addEventListener( 'mouseup'   , ruler_stop,false);\
1223
    canvas_div.addEventListener( 'mouseup'   , ruler_stop,false);\