diff options
author | Sankha Narayan Guria <sankha93@gmail.com> | 2014-04-07 15:11:04 +0530 |
---|---|---|
committer | Sankha Narayan Guria <sankha93@gmail.com> | 2014-04-08 08:44:38 +0530 |
commit | 58e5feca9fd6c404861b11676d85c6cde59fb636 (patch) | |
tree | 795cc9316463460ba30e6eb9d6db94a3ec3572b4 /src | |
parent | 7541b5752642a96a9f860f4115681af211c897e1 (diff) | |
download | servo-58e5feca9fd6c404861b11676d85c6cde59fb636.tar.gz servo-58e5feca9fd6c404861b11676d85c6cde59fb636.zip |
HTMLImageElement attribute getters and setters
Diffstat (limited to 'src')
-rw-r--r-- | src/components/script/dom/bindings/codegen/Bindings.conf | 2 | ||||
-rw-r--r-- | src/components/script/dom/htmlimageelement.rs | 100 | ||||
-rw-r--r-- | src/components/script/dom/webidls/HTMLImageElement.webidl | 11 |
3 files changed, 61 insertions, 52 deletions
diff --git a/src/components/script/dom/bindings/codegen/Bindings.conf b/src/components/script/dom/bindings/codegen/Bindings.conf index a40dfdf1fe6..2e94db0f874 100644 --- a/src/components/script/dom/bindings/codegen/Bindings.conf +++ b/src/components/script/dom/bindings/codegen/Bindings.conf @@ -166,7 +166,7 @@ addHTMLElement('HTMLHeadingElement') addHTMLElement('HTMLHtmlElement') addHTMLElement('HTMLHRElement') addHTMLElement('HTMLIFrameElement', needsAbstract=['sandbox']) -addHTMLElement('HTMLImageElement', needsAbstract=['src', 'width', 'height']) +addHTMLElement('HTMLImageElement', needsAbstract=['alt', 'src', 'useMap', 'isMap', 'width', 'height', 'name', 'align', 'hspace', 'vspace', 'longDesc', 'border']) addHTMLElement('HTMLInputElement') addHTMLElement('HTMLLabelElement') addHTMLElement('HTMLLegendElement') diff --git a/src/components/script/dom/htmlimageelement.rs b/src/components/script/dom/htmlimageelement.rs index 1fcd4a9a0a5..63ff2c4549b 100644 --- a/src/components/script/dom/htmlimageelement.rs +++ b/src/components/script/dom/htmlimageelement.rs @@ -92,22 +92,24 @@ impl HTMLImageElement { } } - pub fn Alt(&self) -> DOMString { - ~"" + pub fn Alt(&self, abstract_self: &JS<HTMLImageElement>) -> DOMString { + let element: JS<Element> = ElementCast::from(abstract_self); + element.get_string_attribute("alt") } - pub fn SetAlt(&mut self, _alt: DOMString) -> ErrorResult { - Ok(()) + pub fn SetAlt(&mut self, abstract_self: &JS<HTMLImageElement>, alt: DOMString) { + let mut element: JS<Element> = ElementCast::from(abstract_self); + element.set_string_attribute("alt", alt) } - pub fn Src(&self, _abstract_self: &JS<HTMLImageElement>) -> DOMString { - ~"" + pub fn Src(&self, abstract_self: &JS<HTMLImageElement>) -> DOMString { + let element: JS<Element> = ElementCast::from(abstract_self); + element.get_string_attribute("src") } - pub fn SetSrc(&mut self, abstract_self: &mut JS<HTMLImageElement>, src: DOMString) -> ErrorResult { + pub fn SetSrc(&mut self, abstract_self: &mut JS<HTMLImageElement>, src: DOMString) { let mut element: JS<Element> = ElementCast::from(abstract_self); - element.set_url_attribute("src", src); - Ok(()) + element.set_url_attribute("src", src) } pub fn CrossOrigin(&self) -> DOMString { @@ -118,20 +120,24 @@ impl HTMLImageElement { Ok(()) } - pub fn UseMap(&self) -> DOMString { - ~"" + pub fn UseMap(&self, abstract_self: &JS<HTMLImageElement>) -> DOMString { + let element: JS<Element> = ElementCast::from(abstract_self); + element.get_string_attribute("useMap") } - pub fn SetUseMap(&mut self, _use_map: DOMString) -> ErrorResult { - Ok(()) + pub fn SetUseMap(&mut self, abstract_self: &mut JS<HTMLImageElement>, use_map: DOMString) { + let mut element: JS<Element> = ElementCast::from(abstract_self); + element.set_string_attribute("useMap", use_map) } - pub fn IsMap(&self) -> bool { - false + pub fn IsMap(&self, abstract_self: &JS<HTMLImageElement>) -> bool { + let element: JS<Element> = ElementCast::from(abstract_self); + from_str::<bool>(element.get_string_attribute("hspace")).unwrap() } - pub fn SetIsMap(&self, _is_map: bool) -> ErrorResult { - Ok(()) + pub fn SetIsMap(&self, abstract_self: &mut JS<HTMLImageElement>, is_map: bool) { + let mut element: JS<Element> = ElementCast::from(abstract_self); + element.set_string_attribute("isMap", is_map.to_str()) } pub fn Width(&self, abstract_self: &JS<HTMLImageElement>) -> u32 { @@ -177,52 +183,64 @@ impl HTMLImageElement { false } - pub fn Name(&self) -> DOMString { - ~"" + pub fn Name(&self, abstract_self: &JS<HTMLImageElement>) -> DOMString { + let element: JS<Element> = ElementCast::from(abstract_self); + element.get_string_attribute("name") } - pub fn SetName(&mut self, _name: DOMString) -> ErrorResult { - Ok(()) + pub fn SetName(&mut self, abstract_self: &mut JS<HTMLImageElement>, name: DOMString) { + let mut element: JS<Element> = ElementCast::from(abstract_self); + element.set_string_attribute("name", name) } - pub fn Align(&self) -> DOMString { - ~"" + pub fn Align(&self, abstract_self: &JS<HTMLImageElement>) -> DOMString { + let element: JS<Element> = ElementCast::from(abstract_self); + element.get_string_attribute("longdesc") } - pub fn SetAlign(&mut self, _align: DOMString) -> ErrorResult { - Ok(()) + pub fn SetAlign(&mut self, abstract_self: &mut JS<HTMLImageElement>, align: DOMString) { + let mut element: JS<Element> = ElementCast::from(abstract_self); + element.set_string_attribute("align", align) } - pub fn Hspace(&self) -> u32 { - 0 + pub fn Hspace(&self, abstract_self: &JS<HTMLImageElement>) -> u32 { + let element: JS<Element> = ElementCast::from(abstract_self); + from_str::<u32>(element.get_string_attribute("hspace")).unwrap() } - pub fn SetHspace(&mut self, _hspace: u32) -> ErrorResult { - Ok(()) + pub fn SetHspace(&mut self, abstract_self: &mut JS<HTMLImageElement>, hspace: u32) { + let mut element: JS<Element> = ElementCast::from(abstract_self); + element.set_uint_attribute("hspace", hspace) } - pub fn Vspace(&self) -> u32 { - 0 + pub fn Vspace(&self, abstract_self: &JS<HTMLImageElement>) -> u32 { + let element: JS<Element> = ElementCast::from(abstract_self); + from_str::<u32>(element.get_string_attribute("vspace")).unwrap() } - pub fn SetVspace(&mut self, _vspace: u32) -> ErrorResult { - Ok(()) + pub fn SetVspace(&mut self, abstract_self: &mut JS<HTMLImageElement>, vspace: u32) { + let mut element: JS<Element> = ElementCast::from(abstract_self); + element.set_uint_attribute("vspace", vspace) } - pub fn LongDesc(&self) -> DOMString { - ~"" + pub fn LongDesc(&self, abstract_self: &JS<HTMLImageElement>) -> DOMString { + let element: JS<Element> = ElementCast::from(abstract_self); + element.get_string_attribute("longdesc") } - pub fn SetLongDesc(&mut self, _longdesc: DOMString) -> ErrorResult { - Ok(()) + pub fn SetLongDesc(&mut self, abstract_self: &mut JS<HTMLImageElement>, longdesc: DOMString) { + let mut element: JS<Element> = ElementCast::from(abstract_self); + element.set_string_attribute("longdesc", longdesc) } - pub fn Border(&self) -> DOMString { - ~"" + pub fn Border(&self, abstract_self: &JS<HTMLImageElement>) -> DOMString { + let element: JS<Element> = ElementCast::from(abstract_self); + element.get_string_attribute("border") } - pub fn SetBorder(&mut self, _border: DOMString) -> ErrorResult { - Ok(()) + pub fn SetBorder(&mut self, abstract_self: &mut JS<HTMLImageElement>, border: DOMString) { + let mut element: JS<Element> = ElementCast::from(abstract_self); + element.set_string_attribute("border", border) } } diff --git a/src/components/script/dom/webidls/HTMLImageElement.webidl b/src/components/script/dom/webidls/HTMLImageElement.webidl index 2131124b856..482f7e69c1d 100644 --- a/src/components/script/dom/webidls/HTMLImageElement.webidl +++ b/src/components/script/dom/webidls/HTMLImageElement.webidl @@ -13,15 +13,11 @@ [NamedConstructor=Image(optional unsigned long width, optional unsigned long height)] interface HTMLImageElement : HTMLElement { - [SetterThrows] attribute DOMString alt; - [SetterThrows] attribute DOMString src; [SetterThrows] attribute DOMString crossOrigin; - [SetterThrows] attribute DOMString useMap; - [SetterThrows] attribute boolean isMap; attribute unsigned long width; attribute unsigned long height; @@ -32,16 +28,11 @@ interface HTMLImageElement : HTMLElement { // http://www.whatwg.org/specs/web-apps/current-work/#other-elements,-attributes-and-apis partial interface HTMLImageElement { - [SetterThrows] attribute DOMString name; - [SetterThrows] attribute DOMString align; - [SetterThrows] attribute unsigned long hspace; - [SetterThrows] attribute unsigned long vspace; - [SetterThrows] attribute DOMString longDesc; - [TreatNullAs=EmptyString,SetterThrows] attribute DOMString border; + [TreatNullAs=EmptyString] attribute DOMString border; }; |