I’m afraid u did. This line
var /** @type {SVGStyleElement} */ style = new SVGStyleElement(); Results in TypeError: Illegal constructor On 2021/12/12 13:49:21 Harbs wrote: > Someone who’s using Spark DropDownListButton: > > Please check that I didn’t break this… > > Thanks, > Harbs > > > On Dec 12, 2021, at 3:46 PM, ha...@apache.org wrote: > > > > This is an automated email from the ASF dual-hosted git repository. > > > > harbs pushed a commit to branch develop > > in repository https://gitbox.apache.org/repos/asf/royale-asjs.git > > > > > > The following commit(s) were added to refs/heads/develop by this push: > > new 39b4dcf Removed innerHTML from DropDownListButton > > 39b4dcf is described below > > > > commit 39b4dcf092c451675db4d7e762ea6747574be6f3 > > Author: Harbs <ha...@in-tools.com> > > AuthorDate: Sun Dec 12 15:46:42 2021 +0200 > > > > Removed innerHTML from DropDownListButton > > --- > > .../supportClasses/DropDownListButton.as | 161 > > +++++++++++++++------ > > 1 file changed, 118 insertions(+), 43 deletions(-) > > > > diff --git > > a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/supportClasses/DropDownListButton.as > > > > b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/supportClasses/DropDownListButton.as > > index 420e1df..de5c2cc 100644 > > --- > > a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/supportClasses/DropDownListButton.as > > +++ > > b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/supportClasses/DropDownListButton.as > > @@ -20,8 +20,21 @@ > > package spark.components.supportClasses > > { > > import spark.components.Button; > > + COMPILE::JS > > + { > > + import org.apache.royale.svg.elements.Svg; > > + import org.apache.royale.svg.elements.ClipPath; > > + import org.apache.royale.svg.elements.Text; > > + import org.apache.royale.svg.elements.Rect; > > + import org.apache.royale.svg.elements.Path; > > + import org.apache.royale.core.WrappedHTMLElement; > > + import org.apache.royale.core.WrappedHTMLElement; > > + import org.apache.royale.svg.elements.Svg; > > + import org.apache.royale.svg.elements.ClipPath; > > + import org.apache.royale.svg.GraphicShape; > > + } > > > > - /** > > + /** > > */ > > public class DropDownListButton extends Button > > { > > @@ -30,7 +43,7 @@ package spark.components.supportClasses > > > > /** > > * Constructor. > > - * > > + * > > * @langversion 3.0 > > * @playerversion Flash 10 > > * @playerversion AIR 1.5 > > @@ -38,57 +51,119 @@ package spark.components.supportClasses > > */ > > public function DropDownListButton() > > { > > - super(); > > instanceId = instanceCounter.toString(); > > instanceCounter++; > > + super(); > > } > > > > private var instanceId:String; > > > > - override public function setActualSize(w:Number, h:Number):void > > - { > > - super.setActualSize(w, h); > > - COMPILE::JS > > - { > > - updateSkin(w, h); > > - } > > - } > > + override public function setActualSize(w:Number, h:Number):void > > + { > > + super.setActualSize(w, h); > > + COMPILE::JS > > + { > > + updateSkin(w, h); > > + } > > + } > > > > - COMPILE::JS > > - override public function set label(value:String):void > > - { > > - super.label = value; > > - updateSkin(width, height); > > - } > > + COMPILE::JS > > + override public function set label(value:String):void > > + { > > + super.label = value; > > + updateSkin(width, height); > > + } > > > > - COMPILE::JS > > - private function updateSkin(w:Number, h:Number):void > > - { > > - var clipid:String = "txtClip" + instanceId; > > + COMPILE::JS > > + private function updateSkin(w:Number, h:Number):void > > + { > > if (h < 4) return; > > - element.innerHTML = '<svg width="' + w + 'px" height="' + > > - h + 'px" xmlns="http://www.w3.org/2000/svg"><clipPath > > id="' + clipid + '"><rect x="0" y="0" height="' + h + > > - 'px" width="' + (w - 29) + > > 'px"/></clipPath><text y="3px" clip-path="url(#' + clipid + ')">' + > > - label + '</text><style><![CDATA[' + > > - 'text{ dominant-baseline: hanging;' + > > - /* font: 12px Verdana, Helvetica, Arial, sans-serif;*/ > > - '}]]></style><rect x="' + > > - (w - 26) + 'px" width="1px" height="' + (h - 4) + > > 'px"/><path d="M' + > > - (w - 21) + ',5 L ' + (w - 13) + ',5 L ' + > > - (w - 17) + ',12 L ' + (w - 21) + ',5"</path></svg>'; > > - > > - } > > + text.element.textContent = label; > > + svg.width = w; > > + svg.element.style.width = w + "px"; > > + svg.height = h; > > + svg.element.style.height = h + "px"; > > + rect.x = w - 26; > > + rect.height = h - 4; > > + var d:String = 'M' + (w - 21) + ',5 L ' + (w - 13) + > > ',5 L ' + > > + (w - 17) + ',12 L ' + (w - 21) + ',5'; > > + path.element.setAttribute("d",d); > > + // element.innerHTML = '<svg width="' + w + 'px" > > height="' + > > + // h + 'px" > > xmlns="http://www.w3.org/2000/svg"><clipPath id="' + clipid + '"><rect > > x="0" y="0" height="' + h + > > + // 'px" width="' + (w - 29) + > > 'px"/></clipPath><text y="3px" clip-path="url(#' + clipid + ')">' + > > + // label + '</text><style><![CDATA[' + > > + // 'text{ dominant-baseline: hanging;' + > > + // /* font: 12px Verdana, Helvetica, Arial, > > sans-serif;*/ > > + // '}]]></style><rect x="' + > > + // (w - 26) + 'px" width="1px" height="' + (h - 4) > > + 'px"/><path d="M' + > > + // (w - 21) + ',5 L ' + (w - 13) + ',5 L ' + > > + // (w - 17) + ',12 L ' + (w - 21) + > > ',5"</path></svg>'; > > + > > + } > > > > - > > //-------------------------------------------------------------------------- > > - // > > - // Overridden methods > > - // > > - > > //-------------------------------------------------------------------------- > > - > > - override public function get measuredHeight():Number > > - { > > - return 21; // maybe measure font someday if fontSize is large > > - } > > + override protected function createElement():WrappedHTMLElement > > + { > > + var elem:WrappedHTMLElement = super.createElement(); > > + svg = new Svg(); > > + clipPath = new ClipPath(); > > + var clipid:String = "txtClip" + instanceId; > > + clipPath.id = clipid; > > + clipRect = new Rect(); > > + clipRect.x = 0; > > + clipRect.y = 0; > > + clipPath.addElement(clipRect); > > + svg.addElement(clipPath); > > + text = new Text(); > > + text.y = 3; > > + text.element.setAttribute("clip-path",'url(#' + clipid > > + ')'); > > + svg.addElement(text) > > + var style:SVGStyleElement = new SVGStyleElement(); > > + style.innerHTML = '<![CDATA[' + > > + 'text{ dominant-baseline: hanging;' + > > + /* font: 12px Verdana, Helvetica, Arial, > > sans-serif;*/ > > + '}]]>'; > > + svg.element.appendChild(style); > > + rect = new Rect(); > > + rect.width = 1; > > + svg.addElement(rect); > > + path = new Path(); > > + svg.addElement(path); > > + return elem; > > + } > > + COMPILE::JS > > + private var svg:Svg; > > + COMPILE::JS > > + private var clipPath:ClipPath; > > + COMPILE::JS > > + private var clipRect:Rect; > > + COMPILE::JS > > + private var text:Text; > > + COMPILE::JS > > + private var rect:Rect; > > + COMPILE::JS > > + private var path:Path; > > + //style > > + > > + /** > > + * svg > > + * clipPath > > + * rect > > + * text > > + * style > > + * rect > > + * path > > + */ > > + > > + > > //-------------------------------------------------------------------------- > > + // > > + // Overridden methods > > + // > > + > > //-------------------------------------------------------------------------- > > + > > + override public function get measuredHeight():Number > > + { > > + return 21; // maybe measure font someday if fontSize is > > large > > + } > > > > } > > } > > \ No newline at end of file > >