Turned SVGTransformableElement and SVGLocatableElement into SVGGraphicsElement. Made SVGTextContentElement inherit from SVGGraphicsElement.
authorDirk Schulze <dschulze@adobe.com>
Thu, 17 Jan 2013 21:13:16 -0800
changeset 427 a8cda583f19b
parent 426 ab020852f879
child 428 6a6786a5f032
Turned SVGTransformableElement and SVGLocatableElement into SVGGraphicsElement. Made SVGTextContentElement inherit from SVGGraphicsElement.
master/changes.html
master/text.html
master/types.html
--- a/master/changes.html	Fri Jan 18 16:14:02 2013 +1100
+++ b/master/changes.html	Thu Jan 17 21:13:16 2013 -0800
@@ -52,8 +52,8 @@
 <ul>
   <li>Removed the SVGStylable and SVGLangSpace interfaces and moved all of their members on to <a>SVGElement</a>.</li>
 
-  <li>Turned SVGLocatable and SVGTransformable into <a>SVGLocatableElement</a> and <a>SVGTransformableElement</a>,
-  which directly inherit from <a>SVGElement</a>.</li>
+  <li>Turned SVGLocatable and SVGTransformable into <a>SVGGraphicsElement</a>,
+  which directly inherits from <a>SVGElement</a>.</li>
 
   <li>Added an <a>SVGGraphicsElement</a> interface.</li>
 
--- a/master/text.html	Fri Jan 18 16:14:02 2013 +1100
+++ b/master/text.html	Thu Jan 17 21:13:16 2013 -0800
@@ -4699,7 +4699,7 @@
 will return 2 since there are two UTF-16 code units (the surrogate pair)
 used to represent that one character.
 </p>
-<pre class="idl">interface <b>SVGTextContentElement</b> : <a>SVGGeometryElement</a> {
+<pre class="idl">interface <b>SVGTextContentElement</b> : <a>SVGGraphicsElement</a> {
 
   // lengthAdjust Types
   const unsigned short <a href="text.html#__svg__SVGTextContentElement__LENGTHADJUST_UNKNOWN">LENGTHADJUST_UNKNOWN</a> = 0;
--- a/master/types.html	Fri Jan 18 16:14:02 2013 +1100
+++ b/master/types.html	Thu Jan 17 21:13:16 2013 -0800
@@ -4128,8 +4128,7 @@
 </dd>
 </dl>
 
-
-<h3 id="InterfaceSVGLocatableElement">Interface SVGLocatableElement</h3>
+<h3 id="InterfaceSVGGraphicsElement">Interface SVGGraphicsElement</h3>
 
 <div class="annotation svg2-requirement">
   <table>
@@ -4152,232 +4151,179 @@
   </table>
 </div>
 
-<p class="issue">Now that there are no elements that implement <a>SVGLocatableElement</a>
-but not <a>SVGTransformableElement</a>, can we just merge these interfaces?  <a>SVGSVGElement</a>,
-which was the one element like this, now inherits from <a>SVGGraphicsElement</a>.</p>
-
-<p>Interface <a>SVGLocatableElement</a> is for all elements to which the
-<a>'transform'</a> property applies or which can have a bounding box in current user space.</p>
-
-<pre class="idl">interface <b>SVGLocatableElement</b> : <a>SVGElement</a> {
-
-  readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGElement">SVGElement</a>? <a href="types.html#__svg__SVGLocatableElement__nearestViewportElement">nearestViewportElement</a>;
-  readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGElement">SVGElement</a>? <a href="types.html#__svg__SVGLocatableElement__farthestViewportElement">farthestViewportElement</a>;
-
-  <a class="idlinterface" href="types.html#InterfaceSVGRect">SVGRect</a> <a href="types.html#__svg__SVGLocatableElement__getBBox">getBBox</a>();
-  <a class="idlinterface" href="types.html#InterfaceSVGRect">SVGRect</a> <a href="types.html#__svg__SVGLocatableElement__getStrokeBBox">getStrokeBBox</a>();
-  <a class="idlinterface" href="coords.html#InterfaceSVGMatrix">SVGMatrix</a>? <a href="types.html#__svg__SVGLocatableElement__getCTM">getCTM</a>();
-  <a class="idlinterface" href="coords.html#InterfaceSVGMatrix">SVGMatrix</a>? <a href="types.html#__svg__SVGLocatableElement__getScreenCTM">getScreenCTM</a>();
-  <a class="idlinterface" href="coords.html#InterfaceSVGMatrix">SVGMatrix</a> <a href="types.html#__svg__SVGLocatableElement__getTransformToElement">getTransformToElement</a>(<a class="idlinterface" href="types.html#InterfaceSVGLocatableElement">SVGLocatableElement</a> element);
-};</pre><dl class="interface">
-<dt class="attributes-header">Attributes:</dt>
-<dd>
-<dl class="attributes">
-
-<dt id="__svg__SVGLocatableElement__nearestViewportElement" class="attribute first-child"><b>nearestViewportElement</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="types.html#InterfaceSVGElement">SVGElement</a>?)</span></dt>
-<dd class="attribute">
-<div>
-The element which established the current viewport. Often, the nearest
-ancestor <a>'svg'</a> element. Null if the current element is the
-<a>outermost svg element</a>.
-
-</div>
-</dd>
-
-<dt id="__svg__SVGLocatableElement__farthestViewportElement" class="attribute"><b>farthestViewportElement</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="types.html#InterfaceSVGElement">SVGElement</a>?)</span></dt>
-<dd class="attribute">
-<div>
-The farthest ancestor <a>'svg'</a> element. Null if the current element
-is the <a>outermost svg element</a>.
-
-</div>
-</dd>
-</dl>
-</dd>
-<dt class="operations-header">Operations:</dt>
-<dd>
-<dl class="attributes">
-
-<dt id="__svg__SVGLocatableElement__getBBox" class="operation first-child"><a class="idlinterface" href="types.html#InterfaceSVGRect">SVGRect</a> <b>getBBox</b>()
-</dt>
-<dd class="operation">
-<div>
-Returns the tight bounding box in current user space (i.e., after
-application of the <a>'transform'</a> property) on the
-geometry of all contained graphics elements, exclusive of stroking, clipping, masking and
-filter effects. Note that getBBox must return the actual bounding box
-at the time the method was called, even in case the element has not
-yet been rendered. 
-
-
-</div>
-<dl class="operation">
-<dt class="returns-header">Returns</dt>
-<dd>
-<div> An <a>SVGRect</a> object that defines the bounding box.
-
-</div>
-</dd>
-</dl>
-</dd>
-
-<dt id="__svg__SVGLocatableElement__getStrokeBBox" class="operation"><a class="idlinterface" href="types.html#InterfaceSVGRect">SVGRect</a> <b>getStrokeBBox</b>()
-</dt>
-<dd class="operation">
-<div>
-Returns the union of the tight bounding box (see <a>getBBox</a>), the stroke
-bounding box and the stroke bounding box of applied markers in current user space
-(i.e., after application of the <a>'transform'</a> property) on the
-geometry of all contained graphics elements, exclusive of clipping, masking and
-filter effects. The stroke bounding box takes the stroke style
-properties <a>'stroke-width'</a>, <a>'stroke-linecap'</a>, <a>'stroke-linejoin'</a>,
-<a>'stroke-miterlimit'</a>, <a>'stroke-dasharray'</a> and <a>'stroke-dashoffset'</a>
-into account. Note that getStrokeBBox must
-return the actual union of the bounding box at the time the method was called,
-even in case the element has not yet been rendered.
-</div>
-<dl class="operation">
-<dt class="returns-header">Returns</dt>
-<dd>
-<div> An <a>SVGRect</a> object that defines the stroke bounding box.
-
-</div>
-</dd>
-</dl>
-</dd>
-
-<dt id="__svg__SVGLocatableElement__getCTM" class="operation"><a class="idlinterface" href="coords.html#InterfaceSVGMatrix">SVGMatrix</a>? <b>getCTM</b>()
-</dt>
-<dd class="operation">
-<div>
-Returns the transformation matrix from current user units (i.e., after
-application of the <a>'transform'</a> property) to the viewport
-coordinate system for the <a>nearestViewportElement</a>. Note that null 
-is returned if this element is not hooked into the document tree.
-
-
-</div>
-<dl class="operation">
-<dt class="returns-header">Returns</dt>
-<dd>
-<div> An <a>SVGMatrix</a> object that defines the CTM.
-
-</div>
-</dd>
-</dl>
-</dd>
-
-<dt id="__svg__SVGLocatableElement__getScreenCTM" class="operation"><a class="idlinterface" href="coords.html#InterfaceSVGMatrix">SVGMatrix</a>? <b>getScreenCTM</b>()
-</dt>
-<dd class="operation">
-<div>
-Returns the transformation matrix from current user units (i.e., after
-application of the <a>'transform'</a> property) to the parent
-user agent's notice of a "pixel". For display devices, ideally this
-represents a physical screen pixel. For other devices or environments
-where physical pixel sizes are not known, then an algorithm similar to
-the CSS 2.1 definition of a "pixel" can be used instead.  Note that null 
-is returned if this element is not hooked into the document tree. This 
-method would have been more aptly named as <code>getClientCTM</code>, 
-but the name <code>getScreenCTM</code> is kept for historical reasons.
-
-
-</div>
-<dl class="operation">
-<dt class="returns-header">Returns</dt>
-<dd>
-<div> An <a>SVGMatrix</a> object that defines the given
-transformation matrix.
-
-</div>
-</dd>
-</dl>
-</dd>
-
-<dt id="__svg__SVGLocatableElement__getTransformToElement" class="operation"><a class="idlinterface" href="coords.html#InterfaceSVGMatrix">SVGMatrix</a> <b>getTransformToElement</b>(<a class="idlinterface" href="types.html#InterfaceSVGLocatableElement">SVGLocatableElement</a> <var>element</var>)
-</dt>
-<dd class="operation">
-<div>
-Returns the transformation matrix from the user coordinate system on the
-current element (after application of the <a>'transform'</a> property)
-to the user coordinate system on parameter <var>element</var>
-(after application of its <a>'transform'</a> property). 
-
-
-</div>
-<dl class="operation">
-<dt class="parameters-header">Parameters</dt>
-<dd>
-<ol class="parameters">
-<li class="parameter first-child">
-<div><a class="idlinterface" href="types.html#InterfaceSVGElement">SVGElement</a> <var>element</var></div> 
-<div> The target element.
-
-</div>
-</li>
-</ol>
-</dd>
-<dt class="returns-header">Returns</dt>
-<dd>
-<div> An <a>SVGMatrix</a> object that defines the transformation.
-
-</div>
-</dd>
-<dt class="exceptions-header">Exceptions</dt>
-<dd>
-<dl class="exceptions">
-<dt class="exception first-child"><a>InvalidStateError</a>
-</dt>
-<dd class="exception"> Raised if the currently
-defined transformation matrices make it impossible to compute the
-given matrix (e.g., because one of the transformations is singular). 
-
-</dd>
-</dl>
-</dd>
-</dl>
-</dd>
-</dl>
-</dd>
-</dl>
-
-
-<h3 id="InterfaceSVGTransformableElement">Interface SVGTransformableElement</h3>
-
-<p>Interface <a>SVGTransformableElement</a> contains properties and methods that
-apply to all elements to which the <a>'transform'</a> property applies.</p>
-
-<pre class="idl">interface <b>SVGTransformableElement</b> : <a>SVGLocatableElement</a> {
-  readonly attribute <a class="idlinterface" href="coords.html#InterfaceSVGAnimatedTransformList">SVGAnimatedTransformList</a> <a href="types.html#__svg__SVGTransformableElement__transform">transform</a>;
-};</pre><dl class="interface">
-<dt class="attributes-header">Attributes:</dt>
-<dd>
-<dl class="attributes">
-
-<dt id="__svg__SVGTransformableElement__transform" class="attribute first-child"><b>transform</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="coords.html#InterfaceSVGAnimatedTransformList">SVGAnimatedTransformList</a>)</span></dt>
-<dd class="attribute">
-<div>
-Corresponds to attribute <a>'transform'</a> on the given element.
-
-</div>
-</dd>
-</dl>
-</dd>
-</dl>
-
-<p class="issue">This needs to be updated to reflect the value of the <a>'transform'</a>
-property.</p>
-
-<h3 id="InterfaceSVGGraphicsElement">Interface SVGGraphicsElement</h3>
-
 <p>Interface <a>SVGGraphicsElement</a> represents SVG elements whose primary purpose
-is to directly render graphics into a group.</p>
-
-<pre class="idl">interface <b>SVGGraphicsElement</b> : <a>SVGTransformableElement</a> {
+is to directly render graphics into a group. The
+<a>'transform'</a> property applies to all <a>SVGGraphicsElement</a>. All <a>SVGGraphicsElement</a>
+have a bounding box in current user space.</p>
+
+<pre class="idl">interface <b>SVGGraphicsElement</b> : <a>SVGElement</a> {
+  readonly attribute <a class="idlinterface" href="coords.html#InterfaceSVGAnimatedTransformList">SVGAnimatedTransformList</a> <a href="types.html#__svg__SVGGraphicsElement__transform">transform</a>;
+
+  readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGElement">SVGElement</a>? <a href="types.html#__svg__SVGGraphicsElement__nearestViewportElement">nearestViewportElement</a>;
+  readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGElement">SVGElement</a>? <a href="types.html#__svg__SVGGraphicsElement__farthestViewportElement">farthestViewportElement</a>;
+
+  <a class="idlinterface" href="types.html#InterfaceSVGRect">SVGRect</a> <a href="types.html#__svg__SVGGraphicsElement__getBBox">getBBox</a>();
+  <a class="idlinterface" href="types.html#InterfaceSVGRect">SVGRect</a> <a href="types.html#__svg__SVGGraphicsElement__getStrokeBBox">getStrokeBBox</a>();
+  <a class="idlinterface" href="coords.html#InterfaceSVGMatrix">SVGMatrix</a>? <a href="types.html#__svg__SVGGraphicsElement__getCTM">getCTM</a>();
+  <a class="idlinterface" href="coords.html#InterfaceSVGMatrix">SVGMatrix</a>? <a href="types.html#__svg__SVGGraphicsElement__getScreenCTM">getScreenCTM</a>();
+  <a class="idlinterface" href="coords.html#InterfaceSVGMatrix">SVGMatrix</a> <a href="types.html#__svg__SVGGraphicsElement__getTransformToElement">getTransformToElement</a>(<a class="idlinterface" href="types.html#InterfaceSVGGraphicsElement">SVGGraphicsElement</a> element);
 };
 
 <a>SVGGraphicsElement</a> implements <a>SVGTests</a>;</pre>
 
+<dl class="interface">
+  <dt class="attributes-header">Attributes:</dt>
+  <dd>
+    <dl class="attributes">
+      <dt id="__svg__SVGGraphicsElement__transform" class="attribute first-child"><b>transform</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="coords.html#InterfaceSVGAnimatedTransformList">SVGAnimatedTransformList</a>)</span></dt>
+      <dd class="attribute">
+        <div>
+          Corresponds to attribute <a>'transform'</a> on the given element.
+        </div>
+      </dd>
+      <dt id="__svg__SVGGraphicsElement__nearestViewportElement" class="attribute first-child"><b>nearestViewportElement</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="types.html#InterfaceSVGElement">SVGElement</a>?)</span></dt>
+      <dd class="attribute">
+        <div>
+          The element which established the current viewport. Often, the nearest
+          ancestor <a>'svg'</a> element. Null if the current element is the
+          <a>outermost svg element</a>.
+        </div>
+      </dd>
+      <dt id="__svg__SVGGraphicsElement__farthestViewportElement" class="attribute"><b>farthestViewportElement</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="types.html#InterfaceSVGElement">SVGElement</a>?)</span></dt>
+      <dd class="attribute">
+        <div>
+          The farthest ancestor <a>'svg'</a> element. Null if the current element
+          is the <a>outermost svg element</a>.
+        </div>
+      </dd>
+    </dl>
+  </dd>
+  <dd>
+  <dt class="operations-header">Operations:</dt>
+  <dd>
+    <dl class="attributes">
+      <dt id="__svg__SVGGraphicsElement__getBBox" class="operation first-child"><a class="idlinterface" href="types.html#InterfaceSVGRect">SVGRect</a> <b>getBBox</b>()</dt>
+      <dd class="operation">
+        <div>
+          Returns the tight bounding box in current user space (i.e., after
+          application of the <a>'transform'</a> property) on the
+          geometry of all contained graphics elements, exclusive of stroking, clipping, masking and
+          filter effects. Note that getBBox must return the actual bounding box
+          at the time the method was called, even in case the element has not
+          yet been rendered.
+        </div>
+        <dl class="operation">
+          <dt class="returns-header">Returns</dt>
+          <dd>
+            <div>
+              An <a>SVGRect</a> object that defines the bounding box.
+            </div>
+          </dd>
+        </dl>
+      </dd>
+      <dt id="__svg__SVGGraphicsElement__getStrokeBBox" class="operation"><a class="idlinterface" href="types.html#InterfaceSVGRect">SVGRect</a> <b>getStrokeBBox</b>()</dt>
+      <dd class="operation">
+        <div>
+          Returns the union of the tight bounding box (see <a>getBBox</a>), the stroke
+          bounding box and the stroke bounding box of applied markers in current user space
+          (i.e., after application of the <a>'transform'</a> property) on the
+          geometry of all contained graphics elements, exclusive of clipping, masking and
+          filter effects. The stroke bounding box takes the stroke style
+          properties <a>'stroke-width'</a>, <a>'stroke-linecap'</a>, <a>'stroke-linejoin'</a>,
+          <a>'stroke-miterlimit'</a>, <a>'stroke-dasharray'</a> and <a>'stroke-dashoffset'</a>
+          into account. Note that getStrokeBBox must
+          return the actual union of the bounding box at the time the method was called,
+          even in case the element has not yet been rendered.
+        </div>
+        <dl class="operation">
+          <dt class="returns-header">Returns</dt>
+          <dd>
+            <div>
+              An <a>SVGRect</a> object that defines the stroke bounding box.
+            </div>
+          </dd>
+        </dl>
+      </dd>
+      <dt id="__svg__SVGGraphicsElement__getCTM" class="operation"><a class="idlinterface" href="coords.html#InterfaceSVGMatrix">SVGMatrix</a>? <b>getCTM</b>()</dt>
+      <dd class="operation">
+        <div>
+          Returns the transformation matrix from current user units (i.e., after
+          application of the <a>'transform'</a> property) to the viewport
+          coordinate system for the <a>nearestViewportElement</a>. Note that null 
+          is returned if this element is not hooked into the document tree.
+        </div>
+        <dl class="operation">
+          <dt class="returns-header">Returns</dt>
+          <dd>
+            <div>
+              An <a>SVGMatrix</a> object that defines the CTM.
+            </div>
+          </dd>
+        </dl>
+      </dd>
+      <dt id="__svg__SVGGraphicsElement__getScreenCTM" class="operation"><a class="idlinterface" href="coords.html#InterfaceSVGMatrix">SVGMatrix</a>? <b>getScreenCTM</b>()</dt>
+      <dd class="operation">
+        <div>
+          Returns the transformation matrix from current user units (i.e., after
+          application of the <a>'transform'</a> property) to the parent
+          user agent's notice of a "pixel". For display devices, ideally this
+          represents a physical screen pixel. For other devices or environments
+          where physical pixel sizes are not known, then an algorithm similar to
+          the CSS 2.1 definition of a "pixel" can be used instead.  Note that null 
+          is returned if this element is not hooked into the document tree. This 
+          method would have been more aptly named as <code>getClientCTM</code>, 
+          but the name <code>getScreenCTM</code> is kept for historical reasons.
+        </div>
+        <dl class="operation">
+          <dt class="returns-header">Returns</dt>
+          <dd>
+            <div>
+              An <a>SVGMatrix</a> object that defines the given
+              transformation matrix.
+            </div>
+          </dd>
+        </dl>
+      </dd>
+      <dt id="__svg__SVGGraphicsElement__getTransformToElement" class="operation"><a class="idlinterface" href="coords.html#InterfaceSVGMatrix">SVGMatrix</a> <b>getTransformToElement</b>(<a class="idlinterface" href="types.html#InterfaceSVGGraphicsElement">SVGGraphicsElement</a> <var>element</var>)</dt>
+      <dd class="operation">
+        <div>
+          Returns the transformation matrix from the user coordinate system on the
+          current element (after application of the <a>'transform'</a> property)
+          to the user coordinate system on parameter <var>element</var>
+          (after application of its <a>'transform'</a> property). 
+        </div>
+        <dl class="operation">
+        <dt class="parameters-header">Parameters</dt>
+        <dd>
+          <ol class="parameters">
+            <li class="parameter first-child">
+              <div><a class="idlinterface" href="types.html#InterfaceSVGElement">SVGElement</a> <var>element</var></div> 
+              <div>
+                The target element.
+              </div>
+            </li>
+          </ol>
+        </dd>
+        <dt class="returns-header">Returns</dt>
+        <dd>
+          <div>
+            An <a>SVGMatrix</a> object that defines the transformation.
+          </div>
+        </dd>
+        <dt class="exceptions-header">Exceptions</dt>
+        <dd>
+          <dl class="exceptions">
+          <dt class="exception first-child"><a>InvalidStateError</a></dt>
+          <dd class="exception">
+            Raised if the currently
+            defined transformation matrices make it impossible to compute the
+            given matrix (e.g., because one of the transformations is singular). 
+          </dd>
+        </dl>
+      </dd>
+    </dl>
+  </dd>
+</dl>
 
 <div class="ready-for-wg-review">
 <h3 id="InterfaceSVGGeometryElement">Interface SVGGeometryElement</h3>
@@ -4444,7 +4390,9 @@
     </dl>
   </dd>
 </dl>
-</div>
+
+<p class="issue">This needs to be updated to reflect the value of the <a>'transform'</a>
+property.</p>
 
 <h3 id="InterfaceSVGTests">Interface SVGTests</h3>