mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
Implement StyleSheet.disabled.
This commit is contained in:
parent
4529435f96
commit
64ff6dc103
10 changed files with 62 additions and 16 deletions
|
@ -4,11 +4,13 @@
|
|||
|
||||
use dom::bindings::codegen::Bindings::CSSStyleSheetBinding;
|
||||
use dom::bindings::codegen::Bindings::CSSStyleSheetBinding::CSSStyleSheetMethods;
|
||||
use dom::bindings::codegen::Bindings::WindowBinding::WindowBinding::WindowMethods;
|
||||
use dom::bindings::error::{ErrorResult, Fallible};
|
||||
use dom::bindings::js::{JS, Root, MutNullableHeap};
|
||||
use dom::bindings::reflector::{reflect_dom_object, Reflectable};
|
||||
use dom::bindings::str::DOMString;
|
||||
use dom::cssrulelist::{CSSRuleList, RulesSource};
|
||||
use dom::element::Element;
|
||||
use dom::stylesheet::StyleSheet;
|
||||
use dom::window::Window;
|
||||
use std::sync::Arc;
|
||||
|
@ -17,27 +19,34 @@ use style::stylesheets::Stylesheet as StyleStyleSheet;
|
|||
#[dom_struct]
|
||||
pub struct CSSStyleSheet {
|
||||
stylesheet: StyleSheet,
|
||||
owner: JS<Element>,
|
||||
rulelist: MutNullableHeap<JS<CSSRuleList>>,
|
||||
#[ignore_heap_size_of = "Arc"]
|
||||
style_stylesheet: Arc<StyleStyleSheet>,
|
||||
}
|
||||
|
||||
impl CSSStyleSheet {
|
||||
fn new_inherited(type_: DOMString, href: Option<DOMString>,
|
||||
title: Option<DOMString>, stylesheet: Arc<StyleStyleSheet>) -> CSSStyleSheet {
|
||||
fn new_inherited(owner: &Element,
|
||||
type_: DOMString,
|
||||
href: Option<DOMString>,
|
||||
title: Option<DOMString>,
|
||||
stylesheet: Arc<StyleStyleSheet>) -> CSSStyleSheet {
|
||||
CSSStyleSheet {
|
||||
stylesheet: StyleSheet::new_inherited(type_, href, title),
|
||||
owner: JS::from_ref(owner),
|
||||
rulelist: MutNullableHeap::new(None),
|
||||
style_stylesheet: stylesheet,
|
||||
}
|
||||
}
|
||||
|
||||
#[allow(unrooted_must_root)]
|
||||
pub fn new(window: &Window, type_: DOMString,
|
||||
pub fn new(window: &Window,
|
||||
owner: &Element,
|
||||
type_: DOMString,
|
||||
href: Option<DOMString>,
|
||||
title: Option<DOMString>,
|
||||
stylesheet: Arc<StyleStyleSheet>) -> Root<CSSStyleSheet> {
|
||||
reflect_dom_object(box CSSStyleSheet::new_inherited(type_, href, title, stylesheet),
|
||||
reflect_dom_object(box CSSStyleSheet::new_inherited(owner, type_, href, title, stylesheet),
|
||||
window,
|
||||
CSSStyleSheetBinding::Wrap)
|
||||
}
|
||||
|
@ -48,6 +57,16 @@ impl CSSStyleSheet {
|
|||
RulesSource::Rules(self.style_stylesheet
|
||||
.rules.clone())))
|
||||
}
|
||||
|
||||
pub fn disabled(&self) -> bool {
|
||||
self.style_stylesheet.disabled()
|
||||
}
|
||||
|
||||
pub fn set_disabled(&self, disabled: bool) {
|
||||
if self.style_stylesheet.set_disabled(disabled) {
|
||||
self.global().as_window().Document().invalidate_stylesheets();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl CSSStyleSheetMethods for CSSStyleSheet {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue