videoWidth and videoHeight params

This commit is contained in:
Fernando Jiménez Moreno 2018-09-21 11:26:37 +02:00
parent da0e92d7f8
commit 6904535865
4 changed files with 69 additions and 6 deletions

View file

@ -3,16 +3,20 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::codegen::Bindings::HTMLVideoElementBinding;
use dom::bindings::codegen::Bindings::HTMLVideoElementBinding::HTMLVideoElementMethods;
use dom::bindings::root::DomRoot;
use dom::document::Document;
use dom::htmlmediaelement::HTMLMediaElement;
use dom::htmlmediaelement::{HTMLMediaElement, ReadyState};
use dom::node::Node;
use dom_struct::dom_struct;
use html5ever::{LocalName, Prefix};
use std::cell::Cell;
#[dom_struct]
pub struct HTMLVideoElement {
htmlmediaelement: HTMLMediaElement,
video_width: Cell<u32>,
video_height: Cell<u32>,
}
impl HTMLVideoElement {
@ -23,6 +27,8 @@ impl HTMLVideoElement {
) -> HTMLVideoElement {
HTMLVideoElement {
htmlmediaelement: HTMLMediaElement::new_inherited(local_name, prefix, document),
video_width: Cell::new(0),
video_height: Cell::new(0),
}
}
@ -40,4 +46,28 @@ impl HTMLVideoElement {
HTMLVideoElementBinding::Wrap,
)
}
pub fn set_video_width(&self, width: u32) {
self.video_width.set(width);
}
pub fn set_video_height(&self, height: u32) {
self.video_height.set(height);
}
}
impl HTMLVideoElementMethods for HTMLVideoElement {
fn VideoWidth(&self) -> u32 {
if self.htmlmediaelement.get_ready_state() == ReadyState::HaveNothing {
return 0;
}
self.video_width.get()
}
fn VideoHeight(&self) -> u32 {
if self.htmlmediaelement.get_ready_state() == ReadyState::HaveNothing {
return 0;
}
self.video_height.get()
}
}