blob: 53adce9c19e27574c5f65f67e44388d5678826e3 [file] [log] [blame]
// 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;
}
@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();
}
@DomName('Document.webkitFullscreenElement')
@SupportedBrowser(SupportedBrowser.CHROME)
@SupportedBrowser(SupportedBrowser.SAFARI)
@Experimental()
Element get fullscreenElement => _webkitFullscreenElement;
@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);
}