Rev 7796 | Rev 7823 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 7796 | Rev 7797 | ||
---|---|---|---|
Line 97... | Line 97... | ||
97 | int int_data[MAX_INT+1]; |
97 | int int_data[MAX_INT+1]; |
98 | for(i=0;i<MAX_INT;i++){int_data[i]=0;double_data[i]=0;} |
98 | for(i=0;i<MAX_INT;i++){int_data[i]=0;double_data[i]=0;} |
99 | int use_parametric = FALSE;/* will be reset after parametric plotting */ |
99 | int use_parametric = FALSE;/* will be reset after parametric plotting */ |
100 | int use_axis = FALSE; |
100 | int use_axis = FALSE; |
101 | int use_axis_numbering = FALSE; |
101 | int use_axis_numbering = FALSE; |
- | 102 | int use_pan_and_zoom = FALSE; |
|
102 | int line_width = 1; |
103 | int line_width = 1; |
103 | int decimals = 2; |
104 | int decimals = 2; |
104 | int precision = 100; /* 10 = 1;100=2;1000=3 decimal display for mouse coordinates or grid coordinate */ |
105 | int precision = 100; /* 10 = 1;100=2;1000=3 decimal display for mouse coordinates or grid coordinate */ |
105 | int use_userdraw = FALSE; /* flag to indicate user interaction: incompatible with "drag & drop" code !! */ |
106 | int use_userdraw = FALSE; /* flag to indicate user interaction: incompatible with "drag & drop" code !! */ |
106 | int drag_type = -1;/* 0,1,2 : xy,x,y */ |
107 | int drag_type = -1;/* 0,1,2 : xy,x,y */ |
Line 220... | Line 221... | ||
220 | fprintf(js_include_file,"\n<!-- begin generated javascript include for canvasdraw -->\n"); |
221 | fprintf(js_include_file,"\n<!-- begin generated javascript include for canvasdraw -->\n"); |
221 | fprintf(stdout,"<!-- include actual object code via include file -->\n<script type=\"text/javascript\" src=\"%s\"></script>\n",getfile_cmd); |
222 | fprintf(stdout,"<!-- include actual object code via include file -->\n<script type=\"text/javascript\" src=\"%s\"></script>\n",getfile_cmd); |
222 | fprintf(js_include_file,"var wims_canvas_function%d = function(){\n<!-- common used stuff -->\n\ |
223 | fprintf(js_include_file,"var wims_canvas_function%d = function(){\n<!-- common used stuff -->\n\ |
223 | var xsize = %d;\ |
224 | var xsize = %d;\ |
224 | var ysize = %d;\ |
225 | var ysize = %d;\ |
- | 226 | var precision = 100;\ |
|
225 | var canvas_div = document.getElementById(\"canvas_div%d\");\ |
227 | var canvas_div = document.getElementById(\"canvas_div%d\");\ |
226 | create_canvas%d = function(canvas_type,size_x,size_y){var cnv;if(document.getElementById(\"wims_canvas%d\"+canvas_type)){ cnv = document.getElementById(\"wims_canvas%d\"+canvas_type);}else{try{ cnv = document.createElement(\"canvas\"); }catch(e){alert(\"Your browser does not support HTML5 CANVAS:GET FIREFOX !\");return;};canvas_div.appendChild(cnv);};cnv.width = size_x;cnv.height = size_y;cnv.style.top = 0;cnv.style.left = 0;cnv.style.position = \"absolute\";cnv.id = \"wims_canvas%d\"+canvas_type;return cnv;};\ |
228 | create_canvas%d = function(canvas_type,size_x,size_y){var cnv;if(document.getElementById(\"wims_canvas%d\"+canvas_type)){ cnv = document.getElementById(\"wims_canvas%d\"+canvas_type);}else{try{ cnv = document.createElement(\"canvas\"); }catch(e){alert(\"Your browser does not support HTML5 CANVAS:GET FIREFOX !\");return;};canvas_div.appendChild(cnv);};cnv.width = size_x;cnv.height = size_y;cnv.style.top = 0;cnv.style.left = 0;cnv.style.position = \"absolute\";cnv.id = \"wims_canvas%d\"+canvas_type;return cnv;};\ |
227 | function findPosX(i){ var obj = i;var curleft = 0;if(obj.offsetParent){while(1){curleft += obj.offsetLeft;if(!obj.offsetParent){break;};obj = obj.offsetParent;};}else{if(obj.x){curleft += obj.x;};};return curleft;};function findPosY(i){var obj = i;var curtop = 0;if(obj.offsetParent){while(1){curtop += obj.offsetTop;if(!obj.offsetParent){break;};obj = obj.offsetParent;};}else{if(obj.y){curtop += obj.y;};};return curtop;};\ |
229 | function findPosX(i){ var obj = i;var curleft = 0;if(obj.offsetParent){while(1){curleft += obj.offsetLeft;if(!obj.offsetParent){break;};obj = obj.offsetParent;};}else{if(obj.x){curleft += obj.x;};};return curleft;};function findPosY(i){var obj = i;var curtop = 0;if(obj.offsetParent){while(1){curtop += obj.offsetTop;if(!obj.offsetParent){break;};obj = obj.offsetParent;};}else{if(obj.y){curtop += obj.y;};};return curtop;};\ |
228 | function x2px(x){if(use_xlogscale == 0 ){return x*xsize/(xmax - xmin) - xsize*xmin/(xmax - xmin);}else{var x_max = Math.log(xmax)/Math.log(xlogbase);var x_min = Math.log(xmin)/Math.log(xlogbase);var x_in = Math.log(x)/Math.log(xlogbase);return x_in*xsize/(x_max - x_min) - xsize*x_min/(x_max - x_min);};};\ |
230 | function x2px(x){if(use_xlogscale == 0 ){return x*xsize/(xmax - xmin) - xsize*xmin/(xmax - xmin);}else{var x_max = Math.log(xmax)/Math.log(xlogbase);var x_min = Math.log(xmin)/Math.log(xlogbase);var x_in = Math.log(x)/Math.log(xlogbase);return x_in*xsize/(x_max - x_min) - xsize*x_min/(x_max - x_min);};};\ |
229 | function px2x(px){if(use_xlogscale == 0 ){return (Math.round((px*(xmax - xmin)/xsize + xmin)*precision))/precision;}else{var x_max = Math.log(xmax)/Math.log(xlogbase);var x_min = Math.log(xmin)/Math.log(xlogbase);var x_out = x_min +px*(x_max - x_min)/(xsize);return Math.pow(xlogbase,x_out);};};\ |
231 | function px2x(px){if(use_xlogscale == 0 ){return (Math.round((px*(xmax - xmin)/xsize + xmin)*precision))/precision;}else{var x_max = Math.log(xmax)/Math.log(xlogbase);var x_min = Math.log(xmin)/Math.log(xlogbase);var x_out = x_min +px*(x_max - x_min)/(xsize);return Math.pow(xlogbase,x_out);};};\ |
Line 1977... | Line 1979... | ||
1977 | @ command 'opacity' may be used to set stroke_opacity of 'buttons |
1979 | @ command 'opacity' may be used to set stroke_opacity of 'buttons |
1978 | @ NOTE: only objects that may be set draggable / clickable will be zoomed / panned |
1980 | @ NOTE: only objects that may be set draggable / clickable will be zoomed / panned |
1979 | @ NOTE: when an object is dragged, zooming / panning will cause the coordinates to be reset to the original position :( <br />e.g. dragging / panning will get lost. (array with 'drag data' is erased)<br />This is a design flaw and not a feature !! |
1981 | @ NOTE: when an object is dragged, zooming / panning will cause the coordinates to be reset to the original position :( <br />e.g. dragging / panning will get lost. (array with 'drag data' is erased)<br />This is a design flaw and not a feature !! |
1980 | */ |
1982 | */ |
1981 | fprintf(js_include_file,"use_pan_and_zoom = 1;"); |
1983 | fprintf(js_include_file,"use_pan_and_zoom = 1;"); |
- | 1984 | use_pan_and_zoom = TRUE; |
|
1982 | if( js_function[DRAW_ZOOM_BUTTONS] != 1 ){ js_function[DRAW_ZOOM_BUTTONS] = 1;} |
1985 | if( js_function[DRAW_ZOOM_BUTTONS] != 1 ){ js_function[DRAW_ZOOM_BUTTONS] = 1;} |
1983 | /* we use BG_CANVAS (0) */ |
1986 | /* we use BG_CANVAS (0) */ |
1984 | stroke_color = get_color(infile,1); |
1987 | stroke_color = get_color(infile,1); |
1985 | string_length = snprintf(NULL,0," draw_zoom_buttons(%d,\"%s\",%f);",BG_CANVAS,stroke_color,stroke_opacity); |
1988 | string_length = snprintf(NULL,0," draw_zoom_buttons(%d,\"%s\",%f);",BG_CANVAS,stroke_color,stroke_opacity); |
1986 | check_string_length(string_length);tmp_buffer = my_newmem(string_length+1); |
1989 | check_string_length(string_length);tmp_buffer = my_newmem(string_length+1); |
Line 2701... | Line 2704... | ||
2701 | /* using mouse coordinate display ? */ |
2704 | /* using mouse coordinate display ? */ |
2702 | if( use_mouse_coordinates == TRUE ){ |
2705 | if( use_mouse_coordinates == TRUE ){ |
2703 | tmp_buffer = my_newmem(26); |
2706 | tmp_buffer = my_newmem(26); |
2704 | snprintf(tmp_buffer,25,"use_mouse_coordinates();\n");add_to_buffer(tmp_buffer); |
2707 | snprintf(tmp_buffer,25,"use_mouse_coordinates();\n");add_to_buffer(tmp_buffer); |
2705 | } |
2708 | } |
- | 2709 | if( use_pan_and_zoom == TRUE ){ |
|
2706 | /* |
2710 | /* in case of zooming ... */ |
2707 | fprintf(js_include_file,"\n<!-- some extra global stuff : need to rethink panning and zooming !!! -->\n\ |
2711 | fprintf(js_include_file,"\n<!-- some extra global stuff : need to rethink panning and zooming !!! -->\n\ |
2708 | |
2712 | precision = %d;var xmin_start=xmin;var xmax_start=xmax;\ |
2709 | var ymin_start=ymin;var ymax_start=xmax;\ |
2713 | var ymin_start=ymin;var ymax_start=xmax;\ |
2710 | var zoom_x_increment=0;var zoom_y_increment=0;\ |
2714 | var zoom_x_increment=0;var zoom_y_increment=0;\ |
2711 | var pan_x_increment=0;var pan_y_increment=0;\ |
2715 | var pan_x_increment=0;var pan_y_increment=0;\ |
2712 | if(use_ylogscale == 0 ){\ |
2716 | if(use_ylogscale == 0 ){\ |
2713 | zoom_x_increment = (xmax - xmin)/20;zoom_y_increment = (xmax - xmin)/20;pan_x_increment = (xmax - xmin)/20;pan_y_increment = (ymax - ymin)/20;\ |
2717 | zoom_x_increment = (xmax - xmin)/20;zoom_y_increment = (xmax - xmin)/20;pan_x_increment = (xmax - xmin)/20;pan_y_increment = (ymax - ymin)/20;\ |
Line 2729... | Line 2733... | ||
2729 | if(xmax<=xmin){xmin=xmin_start;xmax=xmax_start;};\ |
2733 | if(xmax<=xmin){xmin=xmin_start;xmax=xmax_start;};\ |
2730 | if(ymax<=ymin){ymin=ymin_start;ymax=ymax_start;};\ |
2734 | if(ymax<=ymin){ymin=ymin_start;ymax=ymax_start;};\ |
2731 | try{dragstuff.Zoom(xmin,xmax,ymin,ymax);}catch(e){}\ |
2735 | try{dragstuff.Zoom(xmin,xmax,ymin,ymax);}catch(e){}\ |
2732 | %s\ |
2736 | %s\ |
2733 | };\ |
2737 | };\ |
- | 2738 | start_canvas%d(333);\ |
|
2734 | };\n\ |
2739 | };\n\ |
2735 | <!-- end wims_canvas_function -->\n\ |
2740 | <!-- end wims_canvas_function -->\n\ |
2736 | wims_canvas_function%d();\n",precision,canvas_root_id,buffer,canvas_root_id); |
2741 | wims_canvas_function%d();\n",precision,canvas_root_id,buffer,canvas_root_id,canvas_root_id); |
- | 2742 | } |
|
- | 2743 | else |
|
- | 2744 | { |
|
- | 2745 | /* no zoom, just add buffer */ |
|
- | 2746 | fprintf(js_include_file,"\n<!-- add buffer -->\n\ |
|
- | 2747 | %s\ |
|
- | 2748 | };\n\ |
|
- | 2749 | <!-- end wims_canvas_function -->\n\ |
|
- | 2750 | wims_canvas_function%d();\n",buffer,canvas_root_id); |
|
- | 2751 | } |
|
2737 | /* done writing the javascript include file */ |
2752 | /* done writing the javascript include file */ |
2738 | fclose(js_include_file); |
2753 | fclose(js_include_file); |
2739 | 2754 | ||
2740 | } |
2755 | } |
2741 | 2756 |