mirror of
https://github.com/servo/servo.git
synced 2025-06-21 15:49:04 +01:00
Introduce HTML{Audio,Video}Element::new.
This commit is contained in:
parent
cc76a2188e
commit
618447445f
4 changed files with 42 additions and 11 deletions
|
@ -2,11 +2,25 @@
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
use dom::bindings::codegen::HTMLAudioElementBinding;
|
||||||
|
use dom::document::AbstractDocument;
|
||||||
|
use dom::element::HTMLAudioElementTypeId;
|
||||||
use dom::htmlmediaelement::HTMLMediaElement;
|
use dom::htmlmediaelement::HTMLMediaElement;
|
||||||
|
use dom::node::{AbstractNode, Node, ScriptView};
|
||||||
|
|
||||||
pub struct HTMLAudioElement {
|
pub struct HTMLAudioElement {
|
||||||
htmlmediaelement: HTMLMediaElement
|
htmlmediaelement: HTMLMediaElement
|
||||||
}
|
}
|
||||||
|
|
||||||
impl HTMLAudioElement {
|
impl HTMLAudioElement {
|
||||||
|
pub fn new_inherited(localName: ~str, document: AbstractDocument) -> HTMLAudioElement {
|
||||||
|
HTMLAudioElement {
|
||||||
|
htmlmediaelement: HTMLMediaElement::new_inherited(HTMLAudioElementTypeId, localName, document)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn new(localName: ~str, document: AbstractDocument) -> AbstractNode<ScriptView> {
|
||||||
|
let element = HTMLAudioElement::new_inherited(localName, document);
|
||||||
|
Node::reflect_node(@mut element, document, HTMLAudioElementBinding::Wrap)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,7 @@ pub struct HTMLMediaElement {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl HTMLMediaElement {
|
impl HTMLMediaElement {
|
||||||
pub fn new(type_id: ElementTypeId, tag_name: ~str, document: AbstractDocument) -> HTMLMediaElement {
|
pub fn new_inherited(type_id: ElementTypeId, tag_name: ~str, document: AbstractDocument) -> HTMLMediaElement {
|
||||||
HTMLMediaElement {
|
HTMLMediaElement {
|
||||||
htmlelement: HTMLElement::new(type_id, tag_name, document)
|
htmlelement: HTMLElement::new(type_id, tag_name, document)
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,13 +2,30 @@
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
use dom::bindings::codegen::HTMLVideoElementBinding;
|
||||||
use dom::bindings::utils::{DOMString, ErrorResult};
|
use dom::bindings::utils::{DOMString, ErrorResult};
|
||||||
|
use dom::document::AbstractDocument;
|
||||||
|
use dom::element::HTMLVideoElementTypeId;
|
||||||
use dom::htmlmediaelement::HTMLMediaElement;
|
use dom::htmlmediaelement::HTMLMediaElement;
|
||||||
|
use dom::node::{AbstractNode, Node, ScriptView};
|
||||||
|
|
||||||
pub struct HTMLVideoElement {
|
pub struct HTMLVideoElement {
|
||||||
htmlmediaelement: HTMLMediaElement
|
htmlmediaelement: HTMLMediaElement
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl HTMLVideoElement {
|
||||||
|
pub fn new_inherited(localName: ~str, document: AbstractDocument) -> HTMLVideoElement {
|
||||||
|
HTMLVideoElement {
|
||||||
|
htmlmediaelement: HTMLMediaElement::new_inherited(HTMLVideoElementTypeId, localName, document)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn new(localName: ~str, document: AbstractDocument) -> AbstractNode<ScriptView> {
|
||||||
|
let element = HTMLVideoElement::new_inherited(localName, document);
|
||||||
|
Node::reflect_node(@mut element, document, HTMLVideoElementBinding::Wrap)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl HTMLVideoElement {
|
impl HTMLVideoElement {
|
||||||
pub fn Width(&self) -> u32 {
|
pub fn Width(&self) -> u32 {
|
||||||
0
|
0
|
||||||
|
|
|
@ -56,15 +56,15 @@ macro_rules! handle_htmlelement(
|
||||||
$cx, $document, $tag, $string, $type_id, $ctor, []);
|
$cx, $document, $tag, $string, $type_id, $ctor, []);
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
macro_rules! handle_htmlmediaelement(
|
macro_rules! handle_newable_element(
|
||||||
($cx: expr,
|
($document: expr,
|
||||||
$document: expr,
|
$localName: expr,
|
||||||
$tag: expr,
|
|
||||||
$string: expr,
|
$string: expr,
|
||||||
$type_id: expr,
|
$ctor: ident
|
||||||
$ctor: ident) => (
|
$(, $arg:expr )*) => (
|
||||||
handle_element_base!(htmlmediaelement, HTMLMediaElement,
|
if eq_slice($localName, $string) {
|
||||||
$cx, $document, $tag, $string, $type_id, $ctor, []);
|
return $ctor::new(($localName).to_str(), $document $(, $arg)*);
|
||||||
|
}
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
macro_rules! handle_htmltablecellelement(
|
macro_rules! handle_htmltablecellelement(
|
||||||
|
@ -298,8 +298,8 @@ pub fn build_element_from_tag(cx: *JSContext, tag: &str, document: AbstractDocum
|
||||||
handle_htmlelement!(cx, document, tag, "section", HTMLElementTypeId, HTMLElement);
|
handle_htmlelement!(cx, document, tag, "section", HTMLElementTypeId, HTMLElement);
|
||||||
handle_htmlelement!(cx, document, tag, "small", HTMLElementTypeId, HTMLElement);
|
handle_htmlelement!(cx, document, tag, "small", HTMLElementTypeId, HTMLElement);
|
||||||
|
|
||||||
handle_htmlmediaelement!(cx, document, tag, "audio", HTMLAudioElementTypeId, HTMLAudioElement);
|
handle_newable_element!(document, tag, "audio", HTMLAudioElement);
|
||||||
handle_htmlmediaelement!(cx, document, tag, "video", HTMLVideoElementTypeId, HTMLVideoElement);
|
handle_newable_element!(document, tag, "video", HTMLVideoElement);
|
||||||
|
|
||||||
handle_htmltablecellelement!(cx, document, tag, "td", HTMLTableDataCellElementTypeId, HTMLTableDataCellElement);
|
handle_htmltablecellelement!(cx, document, tag, "td", HTMLTableDataCellElementTypeId, HTMLTableDataCellElement);
|
||||||
handle_htmltablecellelement!(cx, document, tag, "th", HTMLTableHeaderCellElementTypeId, HTMLTableHeaderCellElement);
|
handle_htmltablecellelement!(cx, document, tag, "th", HTMLTableHeaderCellElementTypeId, HTMLTableHeaderCellElement);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue