[ Index ] |
|
Code source de CMS made simple 1.0.5 |
1 /*********************************************************************** 2 ** Title.........: Javascript Graphics 3 ** Version.......: 1.0 4 ** Author........: Xiang Wei ZHUO <wei@zhuo.org> 5 ** Filename......: wz_jsgraphics.js 6 ** Last changed..: 31 Aug 2003 7 ** Notes.........: Modified for Image Editor, added extra commands 8 **/ 9 10 /* This notice must be untouched at all times. 11 12 wz_jsgraphics.js v. 2.03 13 The latest version is available at 14 http://www.walterzorn.com 15 or http://www.devira.com 16 or http://www.walterzorn.de 17 18 Copyright (c) 2002-2003 Walter Zorn. All rights reserved. 19 Created 3. 11. 2002 by Walter Zorn <walter@kreuzotter.de> 20 Last modified: 11. 6. 2003 21 22 High Performance JavaScript Graphics Library. 23 Provides methods 24 - to draw lines, rectangles, ellipses, polygons 25 with specifiable line thickness, 26 - to fill rectangles and ellipses 27 - to draw text. 28 NOTE: Operations, functions and branching have rather been optimized 29 to efficiency and speed than to shortness of source code. 30 31 This program is free software; 32 you can redistribute it and/or modify it under the terms of the 33 GNU General Public License as published by the Free Software Foundation; 34 either version 2 of the License, or (at your option) any later version. 35 This program is distributed in the hope that it will be useful, 36 but WITHOUT ANY WARRANTY; 37 without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 38 See the GNU General Public License 39 at http://www.gnu.org/copyleft/gpl.html for more details. 40 */ 41 42 43 44 45 46 var jg_ihtm, jg_ie, jg_dom, 47 jg_n4 = (document.layers && typeof document.classes != "undefined"); 48 49 50 51 52 53 function chkDHTM(x, i) 54 { 55 x = document.body || null; 56 jg_ie = (x && typeof x.insertAdjacentHTML != "undefined"); 57 jg_dom = (x && !jg_ie && 58 typeof x.appendChild != "undefined" && 59 typeof document.createRange != "undefined" && 60 typeof (i = document.createRange()).setStartBefore != "undefined" && 61 typeof i.createContextualFragment != "undefined"); 62 jg_ihtm = (!jg_ie && !jg_dom && x && typeof x.innerHTML != "undefined"); 63 } 64 65 66 67 68 69 function pntDoc() 70 { 71 this.wnd.document.write(this.htm); 72 this.htm = ''; 73 } 74 75 76 77 78 79 function pntCnvDom() 80 { 81 var x = document.createRange(); 82 x.setStartBefore(this.cnv); 83 x = x.createContextualFragment(this.htm); 84 this.cnv.appendChild(x); 85 this.htm = ''; 86 } 87 88 89 90 91 92 function pntCnvIe() 93 { 94 this.cnv.insertAdjacentHTML("BeforeEnd", this.htm); 95 this.htm = ''; 96 } 97 98 99 100 101 102 function pntCnvIhtm() 103 { 104 this.cnv.innerHTML += this.htm; 105 this.htm = ''; 106 } 107 108 109 110 111 112 function pntCnv() 113 { 114 this.htm = ''; 115 } 116 117 118 119 120 121 function mkDiv(x, y, w, h) 122 { 123 this.htm += '<div style="position:absolute;'+ 124 'left:' + x + 'px;'+ 125 'top:' + y + 'px;'+ 126 'width:' + w + 'px;'+ 127 'height:' + h + 'px;'+ 128 'clip:rect(0,'+w+'px,'+h+'px,0);'+ 129 'overflow:hidden;background-color:' + this.color + ';'+ 130 '"><\/div>'; 131 132 //alert(this.htm); 133 } 134 135 136 137 138 function mkDivPrint(x, y, w, h) 139 { 140 this.htm += '<div style="position:absolute;'+ 141 'border-left:' + w + 'px solid ' + this.color + ';'+ 142 'left:' + x + 'px;'+ 143 'top:' + y + 'px;'+ 144 'width:' + w + 'px;'+ 145 'height:' + h + 'px;'+ 146 'clip:rect(0,'+w+'px,'+h+'px,0);'+ 147 'overflow:hidden;background-color:' + this.color + ';'+ 148 '"><\/div>'; 149 } 150 151 152 153 154 155 function mkLyr(x, y, w, h) 156 { 157 this.htm += '<layer '+ 158 'left="' + x + '" '+ 159 'top="' + y + '" '+ 160 'width="' + w + '" '+ 161 'height="' + h + '" '+ 162 'bgcolor="' + this.color + '"><\/layer>\n'; 163 } 164 165 166 167 168 169 function mkLbl(txt, x, y) 170 { 171 this.htm += '<div style="position:absolute;white-space:nowrap;'+ 172 'left:' + x + 'px;'+ 173 'top:' + y + 'px;'+ 174 'font-family:' + this.ftFam + ';'+ 175 'font-size:' + this.ftSz + ';'+ 176 'color:' + this.color + ';' + this.ftSty + '">'+ 177 txt + 178 '<\/div>'; 179 } 180 181 182 183 184 185 function mkLin(x1, y1, x2, y2) 186 { 187 if (x1 > x2) 188 { 189 var _x2 = x2; 190 var _y2 = y2; 191 x2 = x1; 192 y2 = y1; 193 x1 = _x2; 194 y1 = _y2; 195 } 196 var dx = x2-x1, dy = Math.abs(y2-y1), 197 x = x1, y = y1, 198 yIncr = (y1 > y2)? -1 : 1; 199 200 if (dx >= dy) 201 { 202 var pr = dy<<1, 203 pru = pr - (dx<<1), 204 p = pr-dx, 205 ox = x; 206 while ((dx--) > 0) 207 { 208 ++x; 209 if (p > 0) 210 { 211 this.mkDiv(ox, y, x-ox, 1); 212 y += yIncr; 213 p += pru; 214 ox = x; 215 } 216 else p += pr; 217 } 218 this.mkDiv(ox, y, x2-ox+1, 1); 219 } 220 221 else 222 { 223 var pr = dx<<1, 224 pru = pr - (dy<<1), 225 p = pr-dy, 226 oy = y; 227 if (y2 <= y1) 228 { 229 while ((dy--) > 0) 230 { 231 if (p > 0) 232 { 233 this.mkDiv(x++, y, 1, oy-y+1); 234 y += yIncr; 235 p += pru; 236 oy = y; 237 } 238 else 239 { 240 y += yIncr; 241 p += pr; 242 } 243 } 244 this.mkDiv(x2, y2, 1, oy-y2+1); 245 } 246 else 247 { 248 while ((dy--) > 0) 249 { 250 y += yIncr; 251 if (p > 0) 252 { 253 this.mkDiv(x++, oy, 1, y-oy); 254 p += pru; 255 oy = y; 256 } 257 else p += pr; 258 } 259 this.mkDiv(x2, oy, 1, y2-oy+1); 260 } 261 } 262 } 263 264 265 266 267 268 function mkLin2D(x1, y1, x2, y2) 269 { 270 if (x1 > x2) 271 { 272 var _x2 = x2; 273 var _y2 = y2; 274 x2 = x1; 275 y2 = y1; 276 x1 = _x2; 277 y1 = _y2; 278 } 279 var dx = x2-x1, dy = Math.abs(y2-y1), 280 x = x1, y = y1, 281 yIncr = (y1 > y2)? -1 : 1; 282 283 284 var s = this.stroke; 285 if (dx >= dy) 286 { 287 if (s-0x3 > 0) 288 { 289 var _s = (s*dx*Math.sqrt(1+dy*dy/(dx*dx))-dx-(s>>1)*dy) / dx; 290 _s = (!(s-0x4)? Math.ceil(_s) : Math.round(_s)) + 1; 291 } 292 else var _s = s; 293 var ad = Math.ceil(s/2); 294 295 var pr = dy<<1, 296 pru = pr - (dx<<1), 297 p = pr-dx, 298 ox = x; 299 while ((dx--) > 0) 300 { 301 ++x; 302 if (p > 0) 303 { 304 this.mkDiv(ox, y, x-ox+ad, _s); 305 y += yIncr; 306 p += pru; 307 ox = x; 308 } 309 else p += pr; 310 } 311 this.mkDiv(ox, y, x2-ox+ad+1, _s); 312 } 313 314 else 315 { 316 if (s-0x3 > 0) 317 { 318 var _s = (s*dy*Math.sqrt(1+dx*dx/(dy*dy))-(s>>1)*dx-dy) / dy; 319 _s = (!(s-0x4)? Math.ceil(_s) : Math.round(_s)) + 1; 320 } 321 else var _s = s; 322 var ad = Math.round(s/2); 323 324 var pr = dx<<1, 325 pru = pr - (dy<<1), 326 p = pr-dy, 327 oy = y; 328 if (y2 <= y1) 329 { 330 ++ad; 331 while ((dy--) > 0) 332 { 333 if (p > 0) 334 { 335 this.mkDiv(x++, y, _s, oy-y+ad); 336 y += yIncr; 337 p += pru; 338 oy = y; 339 } 340 else 341 { 342 y += yIncr; 343 p += pr; 344 } 345 } 346 this.mkDiv(x2, y2, _s, oy-y2+ad); 347 } 348 else 349 { 350 while ((dy--) > 0) 351 { 352 y += yIncr; 353 if (p > 0) 354 { 355 this.mkDiv(x++, oy, _s, y-oy+ad); 356 p += pru; 357 oy = y; 358 } 359 else p += pr; 360 } 361 this.mkDiv(x2, oy, _s, y2-oy+ad+1); 362 } 363 } 364 } 365 366 367 368 369 370 function mkLinDott(x1, y1, x2, y2) 371 { 372 if (x1 > x2) 373 { 374 var _x2 = x2; 375 var _y2 = y2; 376 x2 = x1; 377 y2 = y1; 378 x1 = _x2; 379 y1 = _y2; 380 } 381 var dx = x2-x1, dy = Math.abs(y2-y1), 382 x = x1, y = y1, 383 yIncr = (y1 > y2)? -1 : 1, 384 drw = true; 385 if (dx >= dy) 386 { 387 var pr = dy<<1, 388 pru = pr - (dx<<1), 389 p = pr-dx; 390 while ((dx--) > 0) 391 { 392 if (drw) this.mkDiv(x, y, 1, 1); 393 drw = !drw; 394 if (p > 0) 395 { 396 y += yIncr; 397 p += pru; 398 } 399 else p += pr; 400 ++x; 401 } 402 if (drw) this.mkDiv(x, y, 1, 1); 403 } 404 405 else 406 { 407 var pr = dx<<1, 408 pru = pr - (dy<<1), 409 p = pr-dy; 410 while ((dy--) > 0) 411 { 412 if (drw) this.mkDiv(x, y, 1, 1); 413 drw = !drw; 414 y += yIncr; 415 if (p > 0) 416 { 417 ++x; 418 p += pru; 419 } 420 else p += pr; 421 } 422 if (drw) this.mkDiv(x, y, 1, 1); 423 } 424 } 425 426 427 428 429 430 function mkOv(left, top, width, height) 431 { 432 var a = width>>1, b = height>>1, 433 wod = width&1, hod = (height&1)+1, 434 cx = left+a, cy = top+b, 435 x = 0, y = b, 436 ox = 0, oy = b, 437 aa = (a*a)<<1, bb = (b*b)<<1, 438 st = (aa>>1)*(1-(b<<1)) + bb, 439 tt = (bb>>1) - aa*((b<<1)-1), 440 w, h; 441 while (y > 0) 442 { 443 if (st < 0) 444 { 445 st += bb*((x<<1)+0x3); 446 tt += (bb<<1)*(++x); 447 } 448 else if (tt < 0) 449 { 450 st += bb*((x<<1)+0x3) - (aa<<1)*(y-1); 451 tt += (bb<<1)*(++x) - aa*(((y--)<<1)-0x3); 452 w = x-ox; 453 h = oy-y; 454 if (w&0x2 && h&0x2) 455 { 456 this.mkOvQds(cx, cy, -x+0x2, ox+wod, -oy, oy-1+hod, 1, 1); 457 this.mkOvQds(cx, cy, -x+1, x-1+wod, -y-1, y+hod, 1, 1); 458 } 459 else this.mkOvQds(cx, cy, -x+1, ox+wod, -oy, oy-h+hod, w, h); 460 ox = x; 461 oy = y; 462 } 463 else 464 { 465 tt -= aa*((y<<1)-0x3); 466 st -= (aa<<1)*(--y); 467 } 468 } 469 this.mkDiv(cx-a, cy-oy, a-ox+1, (oy<<1)+hod); 470 this.mkDiv(cx+ox+wod, cy-oy, a-ox+1, (oy<<1)+hod); 471 } 472 473 474 475 476 477 function mkOv2D(left, top, width, height) 478 { 479 var s = this.stroke; 480 width += s-1; 481 height += s-1; 482 var a = width>>1, b = height>>1, 483 wod = width&1, hod = (height&1)+1, 484 cx = left+a, cy = top+b, 485 x = 0, y = b, 486 aa = (a*a)<<1, bb = (b*b)<<1, 487 st = (aa>>1)*(1-(b<<1)) + bb, 488 tt = (bb>>1) - aa*((b<<1)-1); 489 490 491 if (s-0x4 < 0 && (!(s-0x2) || width-0x33 > 0 && height-0x33 > 0)) 492 { 493 var ox = 0, oy = b, 494 w, h, 495 pxl, pxr, pxt, pxb, pxw; 496 while (y > 0) 497 { 498 if (st < 0) 499 { 500 st += bb*((x<<1)+0x3); 501 tt += (bb<<1)*(++x); 502 } 503 else if (tt < 0) 504 { 505 st += bb*((x<<1)+0x3) - (aa<<1)*(y-1); 506 tt += (bb<<1)*(++x) - aa*(((y--)<<1)-0x3); 507 w = x-ox; 508 h = oy-y; 509 510 if (w-1) 511 { 512 pxw = w+1+(s&1); 513 h = s; 514 } 515 else if (h-1) 516 { 517 pxw = s; 518 h += 1+(s&1); 519 } 520 else pxw = h = s; 521 this.mkOvQds(cx, cy, -x+1, ox-pxw+w+wod, -oy, -h+oy+hod, pxw, h); 522 ox = x; 523 oy = y; 524 } 525 else 526 { 527 tt -= aa*((y<<1)-0x3); 528 st -= (aa<<1)*(--y); 529 } 530 } 531 this.mkDiv(cx-a, cy-oy, s, (oy<<1)+hod); 532 this.mkDiv(cx+a+wod-s+1, cy-oy, s, (oy<<1)+hod); 533 } 534 535 536 else 537 { 538 var _a = (width-((s-1)<<1))>>1, 539 _b = (height-((s-1)<<1))>>1, 540 _x = 0, _y = _b, 541 _aa = (_a*_a)<<1, _bb = (_b*_b)<<1, 542 _st = (_aa>>1)*(1-(_b<<1)) + _bb, 543 _tt = (_bb>>1) - _aa*((_b<<1)-1), 544 545 pxl = new Array(), 546 pxt = new Array(), 547 _pxb = new Array(); 548 pxl[0] = 0; 549 pxt[0] = b; 550 _pxb[0] = _b-1; 551 while (y > 0) 552 { 553 if (st < 0) 554 { 555 st += bb*((x<<1)+0x3); 556 tt += (bb<<1)*(++x); 557 pxl[pxl.length] = x; 558 pxt[pxt.length] = y; 559 } 560 else if (tt < 0) 561 { 562 st += bb*((x<<1)+0x3) - (aa<<1)*(y-1); 563 tt += (bb<<1)*(++x) - aa*(((y--)<<1)-0x3); 564 pxl[pxl.length] = x; 565 pxt[pxt.length] = y; 566 } 567 else 568 { 569 tt -= aa*((y<<1)-0x3); 570 st -= (aa<<1)*(--y); 571 } 572 573 if (_y > 0) 574 { 575 if (_st < 0) 576 { 577 _st += _bb*((_x<<1)+0x3); 578 _tt += (_bb<<1)*(++_x); 579 _pxb[_pxb.length] = _y-1; 580 } 581 else if (_tt < 0) 582 { 583 _st += _bb*((_x<<1)+0x3) - (_aa<<1)*(_y-1); 584 _tt += (_bb<<1)*(++_x) - _aa*(((_y--)<<1)-0x3); 585 _pxb[_pxb.length] = _y-1; 586 } 587 else 588 { 589 _tt -= _aa*((_y<<1)-0x3); 590 _st -= (_aa<<1)*(--_y); 591 _pxb[_pxb.length-1]--; 592 } 593 } 594 } 595 596 var ox = 0, oy = b, 597 _oy = _pxb[0], 598 l = pxl.length, 599 w, h; 600 for (var i = 0; i < l; i++) 601 { 602 if (typeof _pxb[i] != "undefined") 603 { 604 if (_pxb[i] < _oy || pxt[i] < oy) 605 { 606 x = pxl[i]; 607 this.mkOvQds(cx, cy, -x+1, ox+wod, -oy, _oy+hod, x-ox, oy-_oy); 608 ox = x; 609 oy = pxt[i]; 610 _oy = _pxb[i]; 611 } 612 } 613 else 614 { 615 x = pxl[i]; 616 this.mkDiv(cx-x+1, cy-oy, 1, (oy<<1)+hod); 617 this.mkDiv(cx+ox+wod, cy-oy, 1, (oy<<1)+hod); 618 ox = x; 619 oy = pxt[i]; 620 } 621 } 622 this.mkDiv(cx-a, cy-oy, 1, (oy<<1)+hod); 623 this.mkDiv(cx+ox+wod, cy-oy, 1, (oy<<1)+hod); 624 } 625 } 626 627 628 629 630 631 function mkOvDott(left, top, width, height) 632 { 633 var a = width>>1, b = height>>1, 634 wod = width&1, hod = height&1, 635 cx = left+a, cy = top+b, 636 x = 0, y = b, 637 aa2 = (a*a)<<1, aa4 = aa2<<1, bb = (b*b)<<1, 638 st = (aa2>>1)*(1-(b<<1)) + bb, 639 tt = (bb>>1) - aa2*((b<<1)-1), 640 drw = true; 641 while (y > 0) 642 { 643 if (st < 0) 644 { 645 st += bb*((x<<1)+0x3); 646 tt += (bb<<1)*(++x); 647 } 648 else if (tt < 0) 649 { 650 st += bb*((x<<1)+0x3) - aa4*(y-1); 651 tt += (bb<<1)*(++x) - aa2*(((y--)<<1)-0x3); 652 } 653 else 654 { 655 tt -= aa2*((y<<1)-0x3); 656 st -= aa4*(--y); 657 } 658 if (drw) this.mkOvQds(cx, cy, -x, x+wod, -y, y+hod, 1, 1); 659 drw = !drw; 660 } 661 } 662 663 664 665 666 667 function mkRect(x, y, w, h) 668 { 669 var s = this.stroke; 670 this.mkDiv(x, y, w, s); 671 this.mkDiv(x+w, y, s, h); 672 this.mkDiv(x, y+h, w+s, s); 673 this.mkDiv(x, y+s, s, h-s); 674 } 675 676 677 678 679 680 function mkRectDott(x, y, w, h) 681 { 682 this.drawLine(x, y, x+w, y); 683 this.drawLine(x+w, y, x+w, y+h); 684 this.drawLine(x, y+h, x+w, y+h); 685 this.drawLine(x, y, x, y+h); 686 } 687 688 689 690 691 692 function jsgFont() 693 { 694 this.PLAIN = 'font-weight:normal;'; 695 this.BOLD = 'font-weight:bold;'; 696 this.ITALIC = 'font-style:italic;'; 697 this.ITALIC_BOLD = this.ITALIC + this.BOLD; 698 this.BOLD_ITALIC = this.ITALIC_BOLD; 699 } 700 var Font = new jsgFont(); 701 702 703 704 705 706 function jsgStroke() 707 { 708 this.DOTTED = -1; 709 } 710 var Stroke = new jsgStroke(); 711 712 713 714 715 716 function jsGraphics(id, wnd) 717 { 718 this.setColor = new Function('arg', 'this.color = arg;'); 719 720 721 this.getColor = new Function('return this.color'); 722 723 this.setStroke = function(x) 724 { 725 this.stroke = x; 726 if (!(x+1)) 727 { 728 this.drawLine = mkLinDott; 729 this.mkOv = mkOvDott; 730 this.drawRect = mkRectDott; 731 } 732 else if (x-1 > 0) 733 { 734 this.drawLine = mkLin2D; 735 this.mkOv = mkOv2D; 736 this.drawRect = mkRect; 737 } 738 else 739 { 740 this.drawLine = mkLin; 741 this.mkOv = mkOv; 742 this.drawRect = mkRect; 743 } 744 }; 745 746 747 748 this.setPrintable = function(arg) 749 { 750 this.printable = arg; 751 this.mkDiv = jg_n4? mkLyr : arg? mkDivPrint : mkDiv; 752 }; 753 754 755 756 this.setFont = function(fam, sz, sty) 757 { 758 this.ftFam = fam; 759 this.ftSz = sz; 760 this.ftSty = sty || Font.PLAIN; 761 }; 762 763 764 765 this.drawPolyline = this.drawPolyLine = function(x, y, s) 766 { 767 var i = x.length-1; while (i >= 0) 768 this.drawLine(x[i], y[i], x[--i], y[i]); 769 }; 770 771 772 773 this.fillRect = function(x, y, w, h) 774 { 775 this.mkDiv(x, y, w, h); 776 }; 777 778 779 this.fillRectPattern = function(x, y, w, h, url) 780 { 781 this.htm += '<div style="position:absolute;'+ 782 'left:' + x + 'px;'+ 783 'top:' + y + 'px;'+ 784 'width:' + w + 'px;'+ 785 'height:' + h + 'px;'+ 786 'clip:rect(0,'+w+'px,'+h+'px,0);'+ 787 'overflow:hidden;'+ 788 //'background-color:' + this.color + ';'+ 789 "background-image: url('" + url + "');"+ 790 "layer-background-image: url('" + url + "');"+ 791 'z-index:100;"><\/div>'; 792 //alert(this.htm); 793 } 794 795 this.drawHandle = function(x, y, w, h, cursor) 796 { 797 798 this.htm += '<div style="position:absolute;'+ 799 'left:' + x + 'px;'+ 800 'top:' + y + 'px;'+ 801 'width:' + w + 'px;'+ 802 'height:' + h + 'px;'+ 803 'clip:rect(0,'+w+'px,'+h+'px,0);'+ 804 'padding: 2px;overflow:hidden;'+ 805 "cursor: '" + cursor + "';"+ 806 '" class="handleBox" id="' + cursor + '" ><\/div>'; 807 } 808 809 this.drawHandleBox = function(x, y, w, h, cursor) 810 { 811 812 this.htm += '<div style="position:absolute;'+ 813 'left:' + x + 'px;'+ 814 'top:' + y + 'px;'+ 815 'width:' + w + 'px;'+ 816 'height:' + h + 'px;'+ 817 'clip:rect(0,'+(w+2)+'px,'+(h+2)+'px,0);'+ 818 'overflow:hidden; border: solid 1px '+ this.color+';'+ 819 "cursor: '" + cursor + "';"+ 820 '" class="handleBox" id="' + cursor + '" ><\/div>'; 821 822 823 } 824 825 this.drawPolygon = function(x, y) 826 { 827 this.drawPolyline(x, y); 828 this.drawLine(x[x.length-1], y[x.length-1], x[0], y[0]); 829 }; 830 831 832 833 this.drawEllipse = this.drawOval = function(x, y, w, h) 834 { 835 this.mkOv(x, y, w, h); 836 }; 837 838 839 840 this.fillEllipse = this.fillOval = function(left, top, w, h) 841 { 842 var a = (w -= 1)>>1, b = (h -= 1)>>1, 843 wod = (w&1)+1, hod = (h&1)+1, 844 cx = left+a, cy = top+b, 845 x = 0, y = b, 846 ox = 0, oy = b, 847 aa2 = (a*a)<<1, aa4 = aa2<<1, bb = (b*b)<<1, 848 st = (aa2>>1)*(1-(b<<1)) + bb, 849 tt = (bb>>1) - aa2*((b<<1)-1), 850 pxl, dw, dh; 851 if (w+1) while (y > 0) 852 { 853 if (st < 0) 854 { 855 st += bb*((x<<1)+0x3); 856 tt += (bb<<1)*(++x); 857 } 858 else if (tt < 0) 859 { 860 st += bb*((x<<1)+0x3) - aa4*(y-1); 861 pxl = cx-x; 862 dw = (x<<1)+wod; 863 tt += (bb<<1)*(++x) - aa2*(((y--)<<1)-0x3); 864 dh = oy-y; 865 this.mkDiv(pxl, cy-oy, dw, dh); 866 this.mkDiv(pxl, cy+oy-dh+hod, dw, dh); 867 ox = x; 868 oy = y; 869 } 870 else 871 { 872 tt -= aa2*((y<<1)-0x3); 873 st -= aa4*(--y); 874 } 875 } 876 this.mkDiv(cx-a, cy-oy, w+1, (oy<<1)+hod); 877 }; 878 879 880 881 this.drawString = mkLbl; 882 883 884 885 this.clear = function() 886 { 887 this.htm = ""; 888 if (this.cnv) this.cnv.innerHTML = this.defhtm; 889 890 }; 891 892 893 894 this.mkOvQds = function(cx, cy, xl, xr, yt, yb, w, h) 895 { 896 this.mkDiv(xr+cx, yt+cy, w, h); 897 this.mkDiv(xr+cx, yb+cy, w, h); 898 this.mkDiv(xl+cx, yb+cy, w, h); 899 this.mkDiv(xl+cx, yt+cy, w, h); 900 }; 901 902 903 this.setStroke(1); 904 this.setPrintable(false); 905 this.setFont('verdana,geneva,helvetica,sans-serif', String.fromCharCode(0x31, 0x32, 0x70, 0x78), Font.PLAIN); 906 this.color = '#000000'; 907 this.htm = ''; 908 this.wnd = wnd || window; 909 910 911 if (!(jg_ie || jg_dom || jg_ihtm)) chkDHTM(); 912 if (typeof id != 'string' || !id) this.paint = pntDoc; 913 else 914 { 915 this.cnv = document.all? (this.wnd.document.all[id] || null) 916 : document.getElementById? (this.wnd.document.getElementById(id) || null) 917 : null; 918 this.defhtm = (this.cnv && this.cnv.innerHTML)? this.cnv.innerHTML : ''; 919 this.paint = jg_dom? pntCnvDom : jg_ie? pntCnvIe : jg_ihtm? pntCnvIhtm : pntCnv; 920 } 921 }
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Tue Apr 3 18:50:37 2007 | par Balluche grâce à PHPXref 0.7 |