diff options
author | Dave Hodder <dmh@dmh.org.uk> | 2015-04-12 09:26:29 +0100 |
---|---|---|
committer | Ms2ger <ms2ger@gmail.com> | 2015-04-28 17:47:37 +0200 |
commit | 50ea68206dd1e644db4d7fae8374959b615a56b2 (patch) | |
tree | 39415a0f5f82a6709c4c29edb625411c0615c537 /components/script/dom/htmldialogelement.rs | |
parent | 2fd5ecf3d7b93addb42d42d46e440451043a2f43 (diff) | |
download | servo-50ea68206dd1e644db4d7fae8374959b615a56b2.tar.gz servo-50ea68206dd1e644db4d7fae8374959b615a56b2.zip |
Add attributes to the HTMLDialogElement interface.
Diffstat (limited to 'components/script/dom/htmldialogelement.rs')
-rw-r--r-- | components/script/dom/htmldialogelement.rs | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/components/script/dom/htmldialogelement.rs b/components/script/dom/htmldialogelement.rs index d6e2a724461..febfbc38f81 100644 --- a/components/script/dom/htmldialogelement.rs +++ b/components/script/dom/htmldialogelement.rs @@ -3,18 +3,25 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::HTMLDialogElementBinding; +use dom::bindings::codegen::Bindings::HTMLDialogElementBinding::HTMLDialogElementMethods; use dom::bindings::codegen::InheritTypes::HTMLDialogElementDerived; +use dom::bindings::cell::DOMRefCell; use dom::bindings::js::{JSRef, Temporary}; use dom::document::Document; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId}; use dom::htmlelement::{HTMLElement, HTMLElementTypeId}; use dom::node::{Node, NodeTypeId}; + use util::str::DOMString; +use string_cache::Atom; + +use std::borrow::ToOwned; #[dom_struct] pub struct HTMLDialogElement { htmlelement: HTMLElement, + return_value: DOMRefCell<DOMString>, } impl HTMLDialogElementDerived for EventTarget { @@ -26,7 +33,8 @@ impl HTMLDialogElementDerived for EventTarget { impl HTMLDialogElement { fn new_inherited(localName: DOMString, prefix: Option<DOMString>, document: JSRef<Document>) -> HTMLDialogElement { HTMLDialogElement { - htmlelement: HTMLElement::new_inherited(HTMLElementTypeId::HTMLDialogElement, localName, prefix, document) + htmlelement: HTMLElement::new_inherited(HTMLElementTypeId::HTMLDialogElement, localName, prefix, document), + return_value: DOMRefCell::new("".to_owned()), } } @@ -37,3 +45,21 @@ impl HTMLDialogElement { } } +impl<'a> HTMLDialogElementMethods for JSRef<'a, HTMLDialogElement> { + // https://html.spec.whatwg.org/multipage/#dom-dialog-open + make_bool_getter!(Open); + + // https://html.spec.whatwg.org/multipage/#dom-dialog-open + make_bool_setter!(SetOpen, "open"); + + // https://html.spec.whatwg.org/multipage/#dom-dialog-returnvalue + fn ReturnValue(self) -> DOMString { + let return_value = self.return_value.borrow(); + return_value.clone() + } + + // https://html.spec.whatwg.org/multipage/#dom-dialog-returnvalue + fn SetReturnValue(self, return_value: DOMString) { + *self.return_value.borrow_mut() = return_value; + } +} |