Subversion Repositories wimsdev

Rev

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

Rev 16722 Rev 16834
Line 726... Line 726...
726
 3=xyoffset
726
 3=xyoffset
727
 4=centered
727
 4=centered
728
*/
728
*/
729
fprintf(js_include_file,"\n/* draw sub sup imitation in canvas */\
729
fprintf(js_include_file,"\n/* draw sub sup imitation in canvas */\
730
function draw_subsup(ctx,x,y,txt,use_offset){\
730
function draw_subsup(ctx,x,y,txt,use_offset){\
-
 
731
 var fnt = ctx.font;\
-
 
732
 var S = fnt.replace(/[A-Za-z]/g, '');\
-
 
733
 var s = 0.8*S;\
-
 
734
 var px;if(fnt.indexOf('px')>0){px = 'px';}else{if(fnt.indexOf('em')>0){px = 'em';}else{px = 'pt';}};\
731
 var C;var c;var len = txt.length;var baseline = 'middle';var space = 0;ctx.save();var subsup=0;\
735
 var C;var c;var len = txt.length;var baseline = 'middle';var space = 0;ctx.save();var subsup=0;\
732
 var m = 0.4*(ctx.measureText(txt).width);\
736
 var m = 0.4*(ctx.measureText(txt).width);\
733
 var h = ctx.measureText('M').width;\
737
 var h = ctx.measureText('M').width;\
734
 switch(use_offset){\
738
 switch(use_offset){\
735
  case 0:break;\
739
  case 0:break;\
Line 737... Line 741...
737
  case 2:x=x+h;break;\
741
  case 2:x=x+h;break;\
738
  case 3:x=x+h;y=y-h;;break;\
742
  case 3:x=x+h;y=y-h;;break;\
739
  case 4:x=x-m;break;\
743
  case 4:x=x-m;break;\
740
  default:break;\
744
  default:break;\
741
 };\
745
 };\
742
 var S = parseInt(ctx.font) || 10;var s = 0.8*(parseInt(ctx.font)) || 8;\
-
 
743
 ctx.font = S+'px Helvetica';ctx.textBaseline = baseline;\
746
 ctx.font = S+px+' Helvetica';ctx.textBaseline = baseline;\
744
 for( c = 0 ; c < len ;c++){\
747
 for( c = 0 ; c < len ;c++){\
745
  C = txt.charAt(c);space = 0;\
748
  C = txt.charAt(c);space = 0;\
746
  if(C == '_'){ctx.font = s+'px Helvetica';subsup = 1;c++;space = 3;baseline='top';C = txt.charAt(c);}\
749
  if(C == '_'){ctx.font = s+px+' Helvetica';subsup = 1;c++;space = 3;baseline='top';C = txt.charAt(c);}\
747
  else\
750
  else\
748
  if(C == '^'){ctx.font = s+'px Helvetica';subsup = 1;c++;space = 3;baseline='bottom';C = txt.charAt(c);}\
751
  if(C == '^'){ctx.font = s+px+' Helvetica';subsup = 1;c++;space = 3;baseline='bottom';C = txt.charAt(c);}\
749
  else\
752
  else\
750
  if(C == ' '){ctx.font = S+'px Helvetica';if(subsup == 1){space = 0.6*s - (ctx.measureText('M').width);subsup = 0;};baseline = 'middle';}\
753
  if(C == ' '){ctx.font = S+px+' Helvetica';if(subsup == 1){space = 0.6*s - (ctx.measureText('M').width);subsup = 0;};baseline = 'middle';}\
751
  else\
754
  else\
752
  if(C >= '0' && C <= '9'){ctx.font = s+'px Helvetica';}\
755
  if(C >= '0' && C <= '9'){ctx.font = s+'px Helvetica';}\
753
  else{ctx.font = S+'px Helvetica';};\
756
  else{ctx.font = S+px+' Helvetica';};\
754
  ctx.textBaseline = baseline;ctx.fillText(C,x,y);x = space + x + ctx.measureText(C).width;\
757
  ctx.textBaseline = baseline;ctx.fillText(C,x,y);x = space + x + ctx.measureText(C).width;\
755
 };\
758
 };\
756
 ctx.stroke();\
759
 ctx.stroke();\
757
 ctx.restore();\
760
 ctx.restore();\
758
 return;\
761
 return;\