Subversion Repositories wimsdev

Rev

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
  /* add global variables / contants */
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
  var precision = %d;var xmin_start=xmin;var xmax_start=xmax;\
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