Generate bindings for HTMLStyleElement.

This commit is contained in:
saneyuki_s 2013-08-08 19:53:44 +09:00 committed by Josh Matthews
parent fba2cea097
commit c5125ca5e2
9 changed files with 79 additions and 17 deletions

View file

@ -559,6 +559,7 @@ addHTMLElement('HTMLOListElement')
addHTMLElement('HTMLParagraphElement') addHTMLElement('HTMLParagraphElement')
addHTMLElement('HTMLScriptElement') addHTMLElement('HTMLScriptElement')
addHTMLElement('HTMLSpanElement') addHTMLElement('HTMLSpanElement')
addHTMLElement('HTMLStyleElement')
# If you add one of these, you need to make sure nsDOMQS.h has the relevant # If you add one of these, you need to make sure nsDOMQS.h has the relevant
# macros added for it # macros added for it

View file

@ -4627,6 +4627,7 @@ class CGBindingRoot(CGThing):
'dom::htmlmetaelement::HTMLMetaElement', 'dom::htmlmetaelement::HTMLMetaElement',
'dom::htmlolistelement::HTMLOListElement', 'dom::htmlolistelement::HTMLOListElement',
'dom::htmlscriptelement::HTMLScriptElement', 'dom::htmlscriptelement::HTMLScriptElement',
'dom::htmlstyleelement::HTMLStyleElement',
'dom::bindings::utils::*', 'dom::bindings::utils::*',
'dom::bindings::conversions::*', 'dom::bindings::conversions::*',
'dom::blob::*', #XXXjdm 'dom::blob::*', #XXXjdm

View file

@ -0,0 +1,23 @@
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* 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/.
*
* The origin of this IDL file is
* http://www.whatwg.org/specs/web-apps/current-work/#the-style-element
* http://www.whatwg.org/specs/web-apps/current-work/#other-elements,-attributes-and-apis
*/
interface HTMLStyleElement : HTMLElement {
[Pure]
attribute boolean disabled;
[SetterThrows, Pure]
attribute DOMString media;
[SetterThrows, Pure]
attribute DOMString type;
[SetterThrows, Pure]
attribute boolean scoped;
};
// TODO:
// HTMLStyleElement implements LinkStyle;

View file

@ -9,12 +9,8 @@ use dom::bindings::utils::{CacheableWrapper, WrapperCache, DerivedWrapper};
use dom::element::{HTMLHeadElementTypeId, HTMLHtmlElementTypeId, HTMLAnchorElementTypeId}; use dom::element::{HTMLHeadElementTypeId, HTMLHtmlElementTypeId, HTMLAnchorElementTypeId};
use dom::element::{HTMLDivElementTypeId, HTMLImageElementTypeId, HTMLSpanElementTypeId}; use dom::element::{HTMLDivElementTypeId, HTMLImageElementTypeId, HTMLSpanElementTypeId};
use dom::element::{HTMLBodyElementTypeId, HTMLHRElementTypeId, HTMLIframeElementTypeId}; use dom::element::{HTMLBodyElementTypeId, HTMLHRElementTypeId, HTMLIframeElementTypeId};
<<<<<<< HEAD
use dom::element::{HTMLParagraphElementTypeId, HTMLScriptElementTypeId};
use dom::element::{HTMLOListElementTypeId};
=======
use dom::element::{HTMLParagraphElementTypeId, HTMLScriptElementTypeId, HTMLMetaElementTypeId}; use dom::element::{HTMLParagraphElementTypeId, HTMLScriptElementTypeId, HTMLMetaElementTypeId};
>>>>>>> Generate bindings for HTMLMetaElement. use dom::element::{HTMLOListElementTypeId, HTMLStyleElementTypeId};
use dom::element::{HTMLHeadElement, HTMLHtmlElement, HTMLDivElement, HTMLSpanElement}; use dom::element::{HTMLHeadElement, HTMLHtmlElement, HTMLDivElement, HTMLSpanElement};
use dom::element::{HTMLParagraphElement}; use dom::element::{HTMLParagraphElement};
use dom::htmlanchorelement::HTMLAnchorElement; use dom::htmlanchorelement::HTMLAnchorElement;
@ -22,12 +18,10 @@ use dom::htmlbodyelement::HTMLBodyElement;
use dom::htmlhrelement::HTMLHRElement; use dom::htmlhrelement::HTMLHRElement;
use dom::htmliframeelement::HTMLIFrameElement; use dom::htmliframeelement::HTMLIFrameElement;
use dom::htmlimageelement::HTMLImageElement; use dom::htmlimageelement::HTMLImageElement;
<<<<<<< HEAD
use dom::htmlolistelement::HTMLOListElement;
=======
use dom::htmlmetaelement::HTMLMetaElement; use dom::htmlmetaelement::HTMLMetaElement;
>>>>>>> Generate bindings for HTMLMetaElement. use dom::htmlolistelement::HTMLOListElement;
use dom::htmlscriptelement::HTMLScriptElement; use dom::htmlscriptelement::HTMLScriptElement;
use dom::htmlstyleelement::HTMLStyleElement;
use dom::node::{AbstractNode, Node, ElementNodeTypeId, TextNodeTypeId, CommentNodeTypeId}; use dom::node::{AbstractNode, Node, ElementNodeTypeId, TextNodeTypeId, CommentNodeTypeId};
use dom::node::{DoctypeNodeTypeId, ScriptView, Text}; use dom::node::{DoctypeNodeTypeId, ScriptView, Text};
@ -101,14 +95,12 @@ pub fn create(cx: *JSContext, node: &mut AbstractNode<ScriptView>) -> *JSObject
ElementNodeTypeId(HTMLHtmlElementTypeId) => generate_element!(HTMLHtmlElement), ElementNodeTypeId(HTMLHtmlElementTypeId) => generate_element!(HTMLHtmlElement),
ElementNodeTypeId(HTMLIframeElementTypeId) => generate_element!(HTMLIFrameElement), ElementNodeTypeId(HTMLIframeElementTypeId) => generate_element!(HTMLIFrameElement),
ElementNodeTypeId(HTMLImageElementTypeId) => generate_element!(HTMLImageElement), ElementNodeTypeId(HTMLImageElementTypeId) => generate_element!(HTMLImageElement),
<<<<<<< HEAD
ElementNodeTypeId(HTMLOListElementTypeId) => generate_element!(HTMLOListElement),
=======
ElementNodeTypeId(HTMLMetaElementTypeId) => generate_element!(HTMLMetaElement), ElementNodeTypeId(HTMLMetaElementTypeId) => generate_element!(HTMLMetaElement),
>>>>>>> Generate bindings for HTMLMetaElement. ElementNodeTypeId(HTMLOListElementTypeId) => generate_element!(HTMLOListElement),
ElementNodeTypeId(HTMLParagraphElementTypeId) => generate_element!(HTMLParagraphElement), ElementNodeTypeId(HTMLParagraphElementTypeId) => generate_element!(HTMLParagraphElement),
ElementNodeTypeId(HTMLScriptElementTypeId) => generate_element!(HTMLScriptElement), ElementNodeTypeId(HTMLScriptElementTypeId) => generate_element!(HTMLScriptElement),
ElementNodeTypeId(HTMLSpanElementTypeId) => generate_element!(HTMLSpanElement), ElementNodeTypeId(HTMLSpanElementTypeId) => generate_element!(HTMLSpanElement),
ElementNodeTypeId(HTMLStyleElementTypeId) => generate_element!(HTMLStyleElement),
ElementNodeTypeId(_) => element::create(cx, node).ptr, ElementNodeTypeId(_) => element::create(cx, node).ptr,
CommentNodeTypeId | CommentNodeTypeId |
DoctypeNodeTypeId => text::create(cx, node).ptr, DoctypeNodeTypeId => text::create(cx, node).ptr,

View file

@ -617,7 +617,7 @@ pub extern fn ThrowingConstructor(_cx: *JSContext, _argc: uint, _vp: *JSVal) ->
} }
pub fn initialize_global(global: *JSObject) { pub fn initialize_global(global: *JSObject) {
let protoArray = @mut ([0 as *JSObject, ..43]); let protoArray = @mut ([0 as *JSObject, ..44]);
assert!(protoArray.len() == PrototypeList::id::_ID_Count as uint); assert!(protoArray.len() == PrototypeList::id::_ID_Count as uint);
unsafe { unsafe {
//XXXjdm we should be storing the box pointer instead of the inner //XXXjdm we should be storing the box pointer instead of the inner

View file

@ -10,7 +10,7 @@ use dom::bindings::codegen::{HTMLHRElementBinding, HTMLIFrameElementBinding};
use dom::bindings::codegen::{HTMLParagraphElementBinding, HTMLScriptElementBinding}; use dom::bindings::codegen::{HTMLParagraphElementBinding, HTMLScriptElementBinding};
use dom::bindings::codegen::{HTMLDivElementBinding, HTMLSpanElementBinding}; use dom::bindings::codegen::{HTMLDivElementBinding, HTMLSpanElementBinding};
use dom::bindings::codegen::{HTMLImageElementBinding, HTMLOListElementBinding}; use dom::bindings::codegen::{HTMLImageElementBinding, HTMLOListElementBinding};
use dom::bindings::codegen::{HTMLMetaElementBinding}; use dom::bindings::codegen::{HTMLMetaElementBinding, HTMLStyleElementBinding};
use dom::bindings::utils::{null_string, str}; use dom::bindings::utils::{null_string, str};
use dom::bindings::utils::{BindingObject, CacheableWrapper, DOMString, ErrorResult, WrapperCache}; use dom::bindings::utils::{BindingObject, CacheableWrapper, DOMString, ErrorResult, WrapperCache};
use dom::clientrect::ClientRect; use dom::clientrect::ClientRect;
@ -25,6 +25,7 @@ use dom::htmlimageelement::HTMLImageElement;
use dom::htmlmetaelement::HTMLMetaElement; use dom::htmlmetaelement::HTMLMetaElement;
use dom::htmlolistelement::HTMLOListElement; use dom::htmlolistelement::HTMLOListElement;
use dom::htmlscriptelement::HTMLScriptElement; use dom::htmlscriptelement::HTMLScriptElement;
use dom::htmlstyleelement::HTMLStyleElement;
use dom::node::{ElementNodeTypeId, Node, ScriptView, AbstractNode}; use dom::node::{ElementNodeTypeId, Node, ScriptView, AbstractNode};
use layout_interface::{ContentBoxQuery, ContentBoxResponse, ContentBoxesQuery}; use layout_interface::{ContentBoxQuery, ContentBoxResponse, ContentBoxesQuery};
use layout_interface::{ContentBoxesResponse}; use layout_interface::{ContentBoxesResponse};
@ -120,7 +121,6 @@ pub struct HTMLSectionElement { parent: HTMLElement }
pub struct HTMLSelectElement { parent: HTMLElement } pub struct HTMLSelectElement { parent: HTMLElement }
pub struct HTMLSmallElement { parent: HTMLElement } pub struct HTMLSmallElement { parent: HTMLElement }
pub struct HTMLSpanElement { parent: HTMLElement } pub struct HTMLSpanElement { parent: HTMLElement }
pub struct HTMLStyleElement { parent: HTMLElement }
pub struct HTMLTableBodyElement { parent: HTMLElement } pub struct HTMLTableBodyElement { parent: HTMLElement }
pub struct HTMLTableCellElement { parent: HTMLElement } pub struct HTMLTableCellElement { parent: HTMLElement }
pub struct HTMLTableElement { parent: HTMLElement } pub struct HTMLTableElement { parent: HTMLElement }
@ -207,6 +207,8 @@ generate_cacheable_wrapper!(HTMLScriptElement, HTMLScriptElementBinding::Wrap)
generate_binding_object!(HTMLScriptElement) generate_binding_object!(HTMLScriptElement)
generate_cacheable_wrapper!(HTMLSpanElement, HTMLSpanElementBinding::Wrap) generate_cacheable_wrapper!(HTMLSpanElement, HTMLSpanElementBinding::Wrap)
generate_binding_object!(HTMLSpanElement) generate_binding_object!(HTMLSpanElement)
generate_cacheable_wrapper!(HTMLStyleElement, HTMLStyleElementBinding::Wrap)
generate_binding_object!(HTMLStyleElement)
// //
// Fancier elements // Fancier elements

View file

@ -0,0 +1,40 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* 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/. */
use dom::bindings::utils::{DOMString, null_string, ErrorResult};
use dom::htmlelement::HTMLElement;
pub struct HTMLStyleElement {
parent: HTMLElement,
}
impl HTMLStyleElement {
pub fn Disabled(&self) -> bool {
false
}
pub fn SetDisabled(&self, _disabled: bool) {
}
pub fn Media(&self) -> DOMString {
null_string
}
pub fn SetMedia(&mut self, _media: &DOMString, _rv: &mut ErrorResult) {
}
pub fn Type(&self) -> DOMString {
null_string
}
pub fn SetType(&mut self, _type: &DOMString, _rv: &mut ErrorResult) {
}
pub fn Scoped(&self) -> bool {
false
}
pub fn SetScoped(&self, _scoped: bool, _rv: &mut ErrorResult) {
}
}

View file

@ -21,7 +21,7 @@ use dom::element::{HTMLAsideElement, HTMLBRElement,
HTMLInputElement, HTMLItalicElement, HTMLLinkElement, HTMLInputElement, HTMLItalicElement, HTMLLinkElement,
HTMLOptionElement, HTMLParagraphElement, HTMLListItemElement, HTMLOptionElement, HTMLParagraphElement, HTMLListItemElement,
HTMLSectionElement, HTMLSelectElement, HTMLSmallElement, HTMLSectionElement, HTMLSelectElement, HTMLSmallElement,
HTMLSpanElement, HTMLStyleElement, HTMLTableBodyElement, HTMLSpanElement, HTMLTableBodyElement,
HTMLTableCellElement, HTMLTableElement, HTMLTableRowElement, HTMLTableCellElement, HTMLTableElement, HTMLTableRowElement,
HTMLTitleElement, HTMLUListElement}; HTMLTitleElement, HTMLUListElement};
use dom::element::{HTMLHeadingElementTypeId, Heading1, Heading2, Heading3, Heading4, Heading5, use dom::element::{HTMLHeadingElementTypeId, Heading1, Heading2, Heading3, Heading4, Heading5,
@ -34,6 +34,7 @@ use dom::htmlimageelement::HTMLImageElement;
use dom::htmlmetaelement::HTMLMetaElement; use dom::htmlmetaelement::HTMLMetaElement;
use dom::htmlolistelement::HTMLOListElement; use dom::htmlolistelement::HTMLOListElement;
use dom::htmlscriptelement::HTMLScriptElement; use dom::htmlscriptelement::HTMLScriptElement;
use dom::htmlstyleelement::HTMLStyleElement;
use dom::element::{Element, Attr}; use dom::element::{Element, Attr};
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
use dom::node::{AbstractNode, Comment, Doctype, ElementNodeTypeId, Node, ScriptView}; use dom::node::{AbstractNode, Comment, Doctype, ElementNodeTypeId, Node, ScriptView};

View file

@ -58,6 +58,7 @@ pub mod dom {
pub mod HTMLParagraphElementBinding; pub mod HTMLParagraphElementBinding;
pub mod HTMLScriptElementBinding; pub mod HTMLScriptElementBinding;
pub mod HTMLSpanElementBinding; pub mod HTMLSpanElementBinding;
pub mod HTMLStyleElementBinding;
pub mod MouseEventBinding; pub mod MouseEventBinding;
pub mod NodeBinding; pub mod NodeBinding;
pub mod PrototypeList; pub mod PrototypeList;
@ -89,6 +90,7 @@ pub mod dom {
pub mod htmlmetaelement; pub mod htmlmetaelement;
pub mod htmlolistelement; pub mod htmlolistelement;
pub mod htmlscriptelement; pub mod htmlscriptelement;
pub mod htmlstyleelement;
pub mod mouseevent; pub mod mouseevent;
pub mod node; pub mod node;
pub mod uievent; pub mod uievent;