aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/stylesheet.rs
diff options
context:
space:
mode:
authorMohamed Albashir <mohamedalbashir@localhost.localdomain>2016-03-18 17:32:48 -0400
committerJosh Matthews <josh@joshmatthews.net>2016-03-31 18:17:30 -0400
commitb7a57ef4875a205254be64ae092eeedf6680d2b9 (patch)
tree03100c61e9b3aaef888bb7d1826543ac42822efc /components/script/dom/stylesheet.rs
parente551ea73226404152e02c3445f4f91e639bf66ce (diff)
downloadservo-b7a57ef4875a205254be64ae092eeedf6680d2b9.tar.gz
servo-b7a57ef4875a205254be64ae092eeedf6680d2b9.zip
Initial steps for CSSOM API
Diffstat (limited to 'components/script/dom/stylesheet.rs')
-rw-r--r--components/script/dom/stylesheet.rs60
1 files changed, 60 insertions, 0 deletions
diff --git a/components/script/dom/stylesheet.rs b/components/script/dom/stylesheet.rs
new file mode 100644
index 00000000000..490acd997ed
--- /dev/null
+++ b/components/script/dom/stylesheet.rs
@@ -0,0 +1,60 @@
+/* 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::codegen::Bindings::StyleSheetBinding;
+use dom::bindings::codegen::Bindings::StyleSheetBinding::StyleSheetMethods;
+use dom::bindings::global::GlobalRef;
+use dom::bindings::js::{Root};
+use dom::bindings::reflector::{Reflector, reflect_dom_object};
+use dom::window::Window;
+use util::str::DOMString;
+
+
+#[dom_struct]
+pub struct StyleSheet {
+ reflector_: Reflector,
+ type_: DOMString,
+ href: Option<DOMString>,
+ title: Option<DOMString>,
+}
+
+impl StyleSheet {
+ #[allow(unrooted_must_root)]
+ fn new_inherited(type_: DOMString, href: Option<DOMString>, title: Option<DOMString>) -> StyleSheet {
+ StyleSheet {
+ reflector_: Reflector::new(),
+ type_: type_,
+ href: href,
+ title: title
+ }
+ }
+
+ #[allow(unrooted_must_root)]
+ pub fn new(window: &Window, type_: DOMString,
+ href: Option<DOMString>,
+ title: Option<DOMString>) -> Root<StyleSheet> {
+ reflect_dom_object(box StyleSheet::new_inherited(type_, href, title),
+ GlobalRef::Window(window),
+ StyleSheetBinding::Wrap)
+ }
+}
+
+
+impl StyleSheetMethods for StyleSheet {
+ // https://drafts.csswg.org/cssom/#dom-stylesheet-type
+ fn Type_(&self) -> DOMString {
+ self.type_.clone()
+ }
+
+ // https://drafts.csswg.org/cssom/#dom-stylesheet-href
+ fn GetHref(&self) -> Option<DOMString> {
+ self.href.clone()
+ }
+
+ // https://drafts.csswg.org/cssom/#dom-stylesheet-title
+ fn GetTitle(&self) -> Option<DOMString> {
+ self.title.clone()
+ }
+}
+