Substantive: changing 'scrollrequest' to use x/y deltas as opposed to discrete constants. Added it as a type of UIManipulationRequestEvent, so there is no longer a need for the spearate UIScrollRequestEvent interface.
authorJames Craig <jcraig@apple.com>
Fri, 21 Dec 2012 10:13:22 -0800
changeset 61 8ad96438e4bf
parent 60 84201e8846cc
child 62 74abaa488438
Substantive: changing 'scrollrequest' to use x/y deltas as opposed to discrete constants. Added it as a type of UIManipulationRequestEvent, so there is no longer a need for the spearate UIScrollRequestEvent interface.
src/indie-ui-events.html
--- a/src/indie-ui-events.html	Fri Dec 21 09:26:30 2012 -0800
+++ b/src/indie-ui-events.html	Fri Dec 21 10:13:22 2012 -0800
@@ -363,6 +363,16 @@
 								<li>Context Info: <code>originX</code>, <code>originY</code>, <code>rotation</code></li>
 							</ul>
 						</dd>
+						<dt id="scrollrequest">Scroll Request <code class="event">scrollrequest</code></dt>
+						<dd>
+							<p>Initiated when the user agent sends a scroll request to the web application with accompanying x/y delta values.</p>
+							<p class="ednote">Need to specify algorithm for determining x/y deltas for events like pagedown/pageup. Should probably be max of receiver element width/height, or user agent viewport width/height (delta if overlapped inexactly), with potential for a smaller assistive technology viewport (e.g. if screen zoom does not show entirely of previous calculation's width/height).</p>
+							<ul>
+								<li>Bubbles: Yes</li>
+								<li>Cancelable: Yes</li>
+								<li>Context Info: <code>deltaX</code>, <code>deltaY</code></li>
+							</ul>
+						</dd>
 						<!-- zoom changes (e.g. maps or custom layout views) -->
 						<dt id="zoomrequest">Zoom Request <code class="event">zoomrequest</code></dt>
 						<dd>
@@ -374,6 +384,7 @@
 							</ul>
 						</dd>
 					</dl>
+					<p class="note">Move, Pan, and Scroll request events are functionally identical, but are specified individually to aid in authoring clarity when using similar concepts like 1) moving an object on a layout canvas, 2) panning a continuous view like a map, and 3) scrolling a scroll view.</p>
 				</section>
 
 				<section id="ContinuousUIManipulationRequestEvents">
@@ -424,53 +435,6 @@
 			</section>
 			<!-- :::::::::::::::::::: END UIManipulationRequestEvent :::::::::::::::::::: -->
 
-			<!-- :::::::::::::::::::: UIScrollRequestEvent :::::::::::::::::::: -->
-			<section id="UIScrollRequestEvent">
-				<h3>Interface UIScrollRequestEvent</h3>
-				<div class="ednote">Editorial Note: these constants may change, or they may be replaced with x/y deltas.</div>
-				<dl title="[Constructor(DOMString typeArg, optional UIScrollRequestEventInit dictUIScrollRequestEventInit)] interface UIScrollRequestEvent : UIRequestEvent" class="idl">
-					<!-- for custom scroll views or widgets (e.g. carousels, lists, grids)... not intended for native scroll views -->
-					<dt>const unsigned short LEFT         = TBD</dt><dd></dd>
-					<dt>const unsigned short UP           = TBD</dt><dd></dd>
-					<dt>const unsigned short RIGHT        = TBD</dt><dd></dd>
-					<dt>const unsigned short DOWN         = TBD</dt><dd></dd>
-					<dt>const unsigned short LEFT_LIMIT   = TBD</dt><dd></dd>
-					<dt>const unsigned short TOP_LIMIT    = TBD</dt><dd></dd>
-					<dt>const unsigned short RIGHT_LIMIT  = TBD</dt><dd></dd>
-					<dt>const unsigned short BOTTOM_LIMIT = TBD</dt><dd></dd>
-				</dl>
-				
-				<section id="UIScrollRequestEventInit">
-					<h4>UIScrollRequestEventInit</h4>
-					<dl title="dictionary UIScrollRequestEventInit" class="idl">
-						<!-- todo: Incorporate receiver into initializer -->
-						<dt>boolean bubbles = false</dt><dd></dd>
-						<dt>boolean cancelable = false</dt><dd></dd>
-						<dt>AbstractView? view = null</dt><dd></dd>
-						<dt>long detail = 0</dt><dd></dd>
-						<dt>unsigned short? scrollType = null</dt><dd>Type of scroll requested, as defined in the interface constants.</dd>
-					</dl>
-				</section>
-				
-				<section id="UIScrollRequestEvents">
-					<h4>UIScrollRequestEvent Types</h4>
-					<p>The single type of UIScrollRequestEvent that can occur is:</p>
-					<dl>
-						<dt id="scrollrequest">Scroll Request <code class="event">scrollrequest</code></dt>
-						<dd>
-							<p>Initiated when the user agent sends a scroll request to the web application. Scroll events need only be used on custom scroll views (e.g. lists and grids showing data subsets or carousels), as user agents and assistive technologies already manage scrolling of native scroll views.</p>
-							<p class="note">The scroll type constants are more or less equivalent to expected behavior for <kbd>PageUp</kbd>/<kbd>PageDown</kbd> and <kbd>Home</kbd>/<kbd>End</kbd> keys on native scroll views, but also allow horizontal scrolling.</p>
-							<ul>
-								<li>Bubbles: Yes</li>
-								<li>Cancelable: Yes</li>
-								<li>Context Info: <code>scrollType</code></li>
-							</ul>
-						</dd>
-					</dl>
-				</section>
-			</section>
-			<!-- :::::::::::::::::::: END UIScrollRequestEvent :::::::::::::::::::: -->
-
 			<!-- :::::::::::::::::::: UIValueChangeRequestEvent :::::::::::::::::::: -->
 			<section id="UIValueChangeRequestEvent">
 				<h3>Interface UIValueChangeRequestEvent</h3>