fce5971f4f
Review URL: https://codereview.chromium.org//68513006 git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30175 260f80e4-7a28-3924-810f-c04153c831b5
325 lines
9.4 KiB
Plaintext
325 lines
9.4 KiB
Plaintext
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
|
|
// for details. All rights reserved. Use of this source code is governed by a
|
|
// BSD-style license that can be found in the LICENSE file.
|
|
|
|
// WARNING: Do not edit - generated code.
|
|
|
|
part of $LIBRARYNAME;
|
|
|
|
$(ANNOTATIONS)$(CLASS_MODIFIERS)class $CLASSNAME$EXTENDS$IMPLEMENTS$NATIVESPEC {
|
|
$!MEMBERS
|
|
|
|
$if DART2JS
|
|
@DomName('Document.body')
|
|
BodyElement body;
|
|
$else
|
|
@DomName('Document.body')
|
|
BodyElement get body => _body;
|
|
|
|
@DomName('Document.body')
|
|
void set body(BodyElement value) {
|
|
_body = value;
|
|
}
|
|
$endif
|
|
|
|
@DomName('Document.caretRangeFromPoint')
|
|
Range caretRangeFromPoint(int x, int y) {
|
|
return _caretRangeFromPoint(x, y);
|
|
}
|
|
|
|
@DomName('Document.elementFromPoint')
|
|
Element elementFromPoint(int x, int y) {
|
|
return _elementFromPoint(x, y);
|
|
}
|
|
|
|
/**
|
|
* Checks if the getCssCanvasContext API is supported on the current platform.
|
|
*
|
|
* See also:
|
|
*
|
|
* * [getCssCanvasContext]
|
|
*/
|
|
$if DART2JS
|
|
static bool get supportsCssCanvasContext =>
|
|
JS('bool', '!!(document.getCSSCanvasContext)');
|
|
$else
|
|
static bool get supportsCssCanvasContext => true;
|
|
$endif
|
|
|
|
|
|
/**
|
|
* Gets a CanvasRenderingContext which can be used as the CSS background of an
|
|
* element.
|
|
*
|
|
* CSS:
|
|
*
|
|
* background: -webkit-canvas(backgroundCanvas)
|
|
*
|
|
* Generate the canvas:
|
|
*
|
|
* var context = document.getCssCanvasContext('2d', 'backgroundCanvas',
|
|
* 100, 100);
|
|
* context.fillStyle = 'red';
|
|
* context.fillRect(0, 0, 100, 100);
|
|
*
|
|
* See also:
|
|
*
|
|
* * [supportsCssCanvasContext]
|
|
* * [CanvasElement.getContext]
|
|
*/
|
|
@SupportedBrowser(SupportedBrowser.CHROME)
|
|
@SupportedBrowser(SupportedBrowser.SAFARI)
|
|
@Experimental()
|
|
@DomName('Document.getCSSCanvasContext')
|
|
CanvasRenderingContext getCssCanvasContext(String contextId, String name,
|
|
int width, int height) {
|
|
return _getCssCanvasContext(contextId, name, width, height);
|
|
}
|
|
|
|
@DomName('Document.head')
|
|
HeadElement get head => _head;
|
|
|
|
@DomName('Document.lastModified')
|
|
String get lastModified => _lastModified;
|
|
|
|
@DomName('Document.preferredStylesheetSet')
|
|
String get preferredStylesheetSet => _preferredStylesheetSet;
|
|
|
|
@DomName('Document.referrer')
|
|
String get referrer => _referrer;
|
|
|
|
@DomName('Document.selectedStylesheetSet')
|
|
String get selectedStylesheetSet => _selectedStylesheetSet;
|
|
void set selectedStylesheetSet(String value) {
|
|
_selectedStylesheetSet = value;
|
|
}
|
|
|
|
@DomName('Document.styleSheets')
|
|
List<StyleSheet> get styleSheets => _styleSheets;
|
|
|
|
@DomName('Document.title')
|
|
String get title => _title;
|
|
|
|
@DomName('Document.title')
|
|
void set title(String value) {
|
|
_title = value;
|
|
}
|
|
|
|
/**
|
|
* Returns page to standard layout.
|
|
*
|
|
* Has no effect if the page is not in fullscreen mode.
|
|
*
|
|
* ## Other resources
|
|
*
|
|
* * [Using the fullscreen API]
|
|
* (http://docs.webplatform.org/wiki/tutorials/using_the_full-screen_api) from
|
|
* WebPlatform.org.
|
|
* * [Fullscreen specification]
|
|
* (http://www.w3.org/TR/fullscreen/) from W3C.
|
|
*/
|
|
@DomName('Document.webkitExitFullscreen')
|
|
@SupportedBrowser(SupportedBrowser.CHROME)
|
|
@SupportedBrowser(SupportedBrowser.SAFARI)
|
|
@Experimental()
|
|
void exitFullscreen() {
|
|
_webkitExitFullscreen();
|
|
}
|
|
|
|
@DomName('Document.webkitExitPointerLock')
|
|
@SupportedBrowser(SupportedBrowser.CHROME)
|
|
@SupportedBrowser(SupportedBrowser.SAFARI)
|
|
@Experimental()
|
|
void exitPointerLock() {
|
|
_webkitExitPointerLock();
|
|
}
|
|
|
|
/**
|
|
* Returns the element, if any, that is currently displayed in fullscreen.
|
|
*
|
|
* Returns null if there is currently no fullscreen element. You can use
|
|
* this to determine if the page is in fullscreen mode.
|
|
*
|
|
* myVideo = new VideoElement();
|
|
* if (document.fullscreenElement == null) {
|
|
* myVideo.requestFullscreen();
|
|
* print(document.fullscreenElement == myVideo); // true
|
|
* }
|
|
*
|
|
* ## Other resources
|
|
*
|
|
* * [Using the fullscreen API]
|
|
* (http://docs.webplatform.org/wiki/tutorials/using_the_full-screen_api) from
|
|
* WebPlatform.org.
|
|
* * [Fullscreen specification]
|
|
* (http://www.w3.org/TR/fullscreen/) from W3C.
|
|
*/
|
|
@DomName('Document.webkitFullscreenElement')
|
|
@SupportedBrowser(SupportedBrowser.CHROME)
|
|
@SupportedBrowser(SupportedBrowser.SAFARI)
|
|
@Experimental()
|
|
Element get fullscreenElement => _webkitFullscreenElement;
|
|
|
|
/**
|
|
* Returns true if this document can display elements in fullscreen mode.
|
|
*
|
|
* ## Other resources
|
|
*
|
|
* * [Using the fullscreen API]
|
|
* (http://docs.webplatform.org/wiki/tutorials/using_the_full-screen_api) from
|
|
* WebPlatform.org.
|
|
* * [Fullscreen specification]
|
|
* (http://www.w3.org/TR/fullscreen/) from W3C.
|
|
*/
|
|
@DomName('Document.webkitFullscreenEnabled')
|
|
@SupportedBrowser(SupportedBrowser.CHROME)
|
|
@SupportedBrowser(SupportedBrowser.SAFARI)
|
|
@Experimental()
|
|
bool get fullscreenEnabled => _webkitFullscreenEnabled;
|
|
|
|
@DomName('Document.webkitHidden')
|
|
@SupportedBrowser(SupportedBrowser.CHROME)
|
|
@SupportedBrowser(SupportedBrowser.SAFARI)
|
|
@Experimental()
|
|
bool get hidden => _webkitHidden;
|
|
|
|
@DomName('Document.webkitPointerLockElement')
|
|
@SupportedBrowser(SupportedBrowser.CHROME)
|
|
@SupportedBrowser(SupportedBrowser.SAFARI)
|
|
@Experimental()
|
|
Element get pointerLockElement =>
|
|
_webkitPointerLockElement;
|
|
|
|
@DomName('Document.visibilityState')
|
|
@SupportedBrowser(SupportedBrowser.CHROME)
|
|
@SupportedBrowser(SupportedBrowser.FIREFOX)
|
|
@SupportedBrowser(SupportedBrowser.IE, '10')
|
|
@Experimental()
|
|
$if DART2JS
|
|
String get visibilityState => JS('String',
|
|
'(#.visibilityState || #.mozVisibilityState || #.msVisibilityState ||'
|
|
'#.webkitVisibilityState)', this, this, this, this);
|
|
$else
|
|
String get visibilityState => _webkitVisibilityState;
|
|
$endif
|
|
|
|
@Experimental()
|
|
/**
|
|
* Register a custom subclass of Element to be instantiatable by the DOM.
|
|
*
|
|
* This is necessary to allow the construction of any custom elements.
|
|
*
|
|
* The class being registered must either subclass HtmlElement or SvgElement.
|
|
* If they subclass these directly then they can be used as:
|
|
*
|
|
* class FooElement extends HtmlElement{
|
|
* void created() {
|
|
* print('FooElement created!');
|
|
* }
|
|
* }
|
|
*
|
|
* main() {
|
|
* document.register('x-foo', FooElement);
|
|
* var myFoo = new Element.tag('x-foo');
|
|
* // prints 'FooElement created!' to the console.
|
|
* }
|
|
*
|
|
* The custom element can also be instantiated via HTML using the syntax
|
|
* `<x-foo></x-foo>`
|
|
*
|
|
* Other elements can be subclassed as well:
|
|
*
|
|
* class BarElement extends InputElement{
|
|
* void created() {
|
|
* print('BarElement created!');
|
|
* }
|
|
* }
|
|
*
|
|
* main() {
|
|
* document.register('x-bar', BarElement);
|
|
* var myBar = new Element.tag('input', 'x-bar');
|
|
* // prints 'BarElement created!' to the console.
|
|
* }
|
|
*
|
|
* This custom element can also be instantiated via HTML using the syntax
|
|
* `<input is="x-bar"></input>`
|
|
*
|
|
* The [nativeTagName] parameter is needed by platforms without native support
|
|
* when subclassing a native type other than:
|
|
*
|
|
* * HtmlElement
|
|
* * SvgElement
|
|
* * AnchorElement
|
|
* * AudioElement
|
|
* * ButtonElement
|
|
* * CanvasElement
|
|
* * DivElement
|
|
* * ImageElement
|
|
* * InputElement
|
|
* * LIElement
|
|
* * LabelElement
|
|
* * MenuElement
|
|
* * MeterElement
|
|
* * OListElement
|
|
* * OptionElement
|
|
* * OutputElement
|
|
* * ParagraphElement
|
|
* * PreElement
|
|
* * ProgressElement
|
|
* * SelectElement
|
|
* * SpanElement
|
|
* * UListElement
|
|
* * VideoElement
|
|
*/
|
|
$if DART2JS
|
|
void register(String tag, Type customElementClass, {String extendsTag}) {
|
|
_registerCustomElement(JS('', 'window'), this, tag, customElementClass,
|
|
extendsTag);
|
|
}
|
|
$else
|
|
void register(String tag, Type customElementClass, {String extendsTag}) {
|
|
_Utils.register(this, tag, customElementClass, extendsTag);
|
|
}
|
|
$endif
|
|
|
|
/**
|
|
* Static factory designed to expose `visibilitychange` events to event
|
|
* handlers that are not necessarily instances of [Document].
|
|
*
|
|
* See [EventStreamProvider] for usage information.
|
|
*/
|
|
@DomName('Document.visibilityChange')
|
|
@SupportedBrowser(SupportedBrowser.CHROME)
|
|
@SupportedBrowser(SupportedBrowser.FIREFOX)
|
|
@SupportedBrowser(SupportedBrowser.IE, '10')
|
|
@Experimental()
|
|
static const EventStreamProvider<Event> visibilityChangeEvent =
|
|
const _CustomEventStreamProvider<Event>(
|
|
_determineVisibilityChangeEventType);
|
|
|
|
static String _determineVisibilityChangeEventType(EventTarget e) {
|
|
$if DART2JS
|
|
if (JS('bool', '(typeof #.hidden !== "undefined")', e)) {
|
|
// Opera 12.10 and Firefox 18 and later support
|
|
return 'visibilitychange';
|
|
} else if (JS('bool', '(typeof #.mozHidden !== "undefined")', e)) {
|
|
return 'mozvisibilitychange';
|
|
} else if (JS('bool', '(typeof #.msHidden !== "undefined")', e)) {
|
|
return 'msvisibilitychange';
|
|
} else if (JS('bool', '(typeof #.webkitHidden !== "undefined")', e)) {
|
|
return 'webkitvisibilitychange';
|
|
}
|
|
return 'visibilitychange';
|
|
$else
|
|
return 'webkitvisibilitychange';
|
|
$endif
|
|
}
|
|
|
|
@SupportedBrowser(SupportedBrowser.CHROME)
|
|
@SupportedBrowser(SupportedBrowser.FIREFOX)
|
|
@SupportedBrowser(SupportedBrowser.IE, '10')
|
|
@Experimental()
|
|
Stream<Event> get onVisibilityChange =>
|
|
visibilityChangeEvent.forTarget(this);
|
|
}
|