svnno****@sourc*****
svnno****@sourc*****
2011年 3月 30日 (水) 23:29:45 JST
Revision: 2531 http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=2531 Author: dhrname Date: 2011-03-30 23:29:45 +0900 (Wed, 30 Mar 2011) Log Message: ----------- NAIBU._setPaint関数のvar文を整理 Modified Paths: -------------- branches/07x/074/org/w3c/dom/svg.js Modified: branches/07x/074/org/w3c/dom/svg.js =================================================================== --- branches/07x/074/org/w3c/dom/svg.js 2011-03-30 14:13:49 UTC (rev 2530) +++ branches/07x/074/org/w3c/dom/svg.js 2011-03-30 14:29:45 UTC (rev 2531) @@ -2375,31 +2375,38 @@ /*以下では、スタイルシートを用いて、fill-とstroke-関連の *処理を行う。SVGPaintインターフェースをも用いる */ - var tod = tar.ownerDocument, el = tar._tar; + var tod = tar.ownerDocument, + el = tar._tar, + style = tod.defaultView.getComputedStyle(tar, ""), + fill = style.getPropertyCSSValue("fill"), + stroke = style.getPropertyCSSValue("stroke"), + fillElement, tgebtfill, fc, + num = /*CSSPrimitiveValue.CSS_NUMBER*/ 1, + t, evtt, fillOpacity, strs, cursor, vis, disp, + strokeElement, strokeOpacity, tgebtstroke, sgsw, w, h, swx, tsd, strokedasharray; if (!el) { return; } - var style = tod.defaultView.getComputedStyle(tar, ""); - var fill = style.getPropertyCSSValue("fill"), stroke = style.getPropertyCSSValue("stroke"); if (fill.paintType === /*SVGPaint.SVG_PAINTTYPE_RGBCOLOR*/ 1 || fill.paintType === /*SVGPaint.SVG_PAINTTYPE_CURRENTCOLOR*/ 102) { if (fill.paintType === /*SVGPaint.SVG_PAINTTYPE_CURRENTCOLOR*/ 102) { /*再度、設定。css.jsのsetPropertyを参照*/ style.setProperty("color", style.getPropertyValue("color")); } if (!!tar._fillElement) { - var fillElement = tar._fillElement; - var tgebtfill = el.getElementsByTagName("fill"); + fillElement = tar._fillElement; + tgebtfill = el.getElementsByTagName("fill"); if (tgebtfill.length > 0) { /*あらかじめ消しおかないと、効果が出ない*/ el.removeChild(tgebtfill[0]); } tgebtfill = null; } else { - var fillElement = _doc.createElement("v:fill"); + fillElement = _doc.createElement("v:fill"); } - var fc = fill.rgbColor, num = /*CSSPrimitiveValue.CSS_NUMBER*/ 1; + fc = fill.rgbColor; + num = /*CSSPrimitiveValue.CSS_NUMBER*/ 1; fillElement.setAttribute("color", "rgb(" +fc.red.getFloatValue(num)+ "," +fc.green.getFloatValue(num)+ "," +fc.blue.getFloatValue(num)+ ")"); - var fillOpacity = +(style.getPropertyValue("fill-opacity")) * style._list._opacity; //opacityを掛け合わせる + fillOpacity = +(style.getPropertyValue("fill-opacity")) * style._list._opacity; //opacityを掛け合わせる if (fillOpacity < 1) { fillElement.setAttribute("opacity", fillOpacity+""); } @@ -2414,14 +2421,15 @@ /*以下では、Gradation関連の要素に、イベントを渡すことで、 *この要素の、グラデーション描画を行う */ - var t = tod.getElementById(fill.uri); + t = tod.getElementById(fill.uri); if (t) { - var evtt = tod.createEvent("MutationEvents"); + evtt = tod.createEvent("MutationEvents"); evtt.initMutationEvent("DOMNodeInsertedIntoDocument", false, false, null, null, null, null, null); evtt._tar = !!tar._fillElement ? tar._fillElement : _doc.createElement("v:fill"); - evtt._style = style, evtt._ttar = tar; + evtt._style = style; + evtt._ttar = tar; t.dispatchEvent(evtt); - if (t.localName !== "radialGradient" && !!!tar._fillElement) { + if ((t.localName !== "radialGradient") && !!!tar._fillElement) { el.appendChild(evtt._tar); tar._fillElement = evtt._tar; //キャッシュを作る } @@ -2436,24 +2444,26 @@ style.setProperty("color", style.getPropertyValue("color")); } if (!!tar._strokeElement) { - var strokeElement = tar._strokeElement; - var tgebtstroke = el.getElementsByTagName("stroke") + strokeElement = tar._strokeElement; + tgebtstroke = el.getElementsByTagName("stroke") if (tgebtstroke.length > 0) { el.removeChild(tgebtstroke[0]); } tgebtstroke = null; } else { - var strokeElement = _doc.createElement("v:stroke"); + strokeElement = _doc.createElement("v:stroke"); } - var sgsw = style.getPropertyCSSValue("stroke-width"), w = tod.documentElement.viewport.width, h = tod.documentElement.viewport.height; + sgsw = style.getPropertyCSSValue("stroke-width"); + w = tod.documentElement.viewport.width; + h = tod.documentElement.viewport.height; sgsw._percent = _math.sqrt((w*w + h*h) / 2); - var swx = sgsw.getFloatValue(CSSPrimitiveValue.CSS_NUMBER) * _math.sqrt(_math.abs(matrix._determinant())); + swx = sgsw.getFloatValue(CSSPrimitiveValue.CSS_NUMBER) * _math.sqrt(_math.abs(matrix._determinant())); strokeElement.setAttribute("weight", swx + "px"); sgsw = w = h = null; if (!stroke.uri) { - var fc = stroke.rgbColor, num = /*CSSPrimitiveValue.CSS_NUMBER*/ 1; + fc = stroke.rgbColor; strokeElement.setAttribute("color", "rgb(" +fc.red.getFloatValue(num)+ "," +fc.green.getFloatValue(num)+ "," +fc.blue.getFloatValue(num)+ ")"); - var strokeOpacity = +(style.getPropertyValue("stroke-opacity")) * (+(style.getPropertyValue("opacity"))); //opacityを掛け合わせる + strokeOpacity = +(style.getPropertyValue("stroke-opacity")) * (+(style.getPropertyValue("opacity"))); //opacityを掛け合わせる if (swx < 1) { strokeOpacity *= swx; //太さが1px未満なら色を薄くする } @@ -2469,14 +2479,14 @@ } else { strokeElement.setAttribute("endcap", style.getPropertyValue("stroke-linecap")); } - var tsd = style.getPropertyValue("stroke-dasharray"); + tsd = style.getPropertyValue("stroke-dasharray"); if (tsd !== "none") { if (tsd.indexOf(",") > 0) { //コンマ区切りの文字列の場合 - var strs = tsd.split(","); + strs = tsd.split(","); for (var i = 0, sli = strs.length; i < sli; ++i) { strs[i] = _math.ceil(+(strs[i]) / parseFloat(style.getPropertyValue("stroke-width"))); //精密ではないので注意 } - var strokedasharray = strs.join(" "); + strokedasharray = strs.join(" "); if (strs.length % 2 === 1) { strokedasharray += " " + strokedasharray; } @@ -2494,15 +2504,15 @@ } else { el.stroked = "false"; } - var cursor = style.getPropertyValue("cursor"); + cursor = style.getPropertyValue("cursor"); if (cursor !== "auto" && cursor !== "") { el.style.cursor = cursor; } - var vis = style.getPropertyValue("visibility"); + vis = style.getPropertyValue("visibility"); if (vis !== "visiblee") { //初期値でないならば el.style.visibility = vis; } - var disp = style.getPropertyValue("display"); + disp = style.getPropertyValue("display"); if (disp === "none") { el.style.display = "none"; } else if (disp !== "inline-block") {