mirror of
https://github.com/servo/servo.git
synced 2025-07-22 23:03:42 +01:00
Move StylesheetSetRef to script
This commit is contained in:
parent
9d52feffbb
commit
d0b2e826ef
6 changed files with 75 additions and 65 deletions
70
components/script/stylesheet_set.rs
Normal file
70
components/script/stylesheet_set.rs
Normal file
|
@ -0,0 +1,70 @@
|
|||
/* 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 https://mozilla.org/MPL/2.0/. */
|
||||
|
||||
use style::media_queries::Device;
|
||||
use style::shared_lock::SharedRwLockReadGuard;
|
||||
use style::stylesheet_set::{AuthorStylesheetSet, DocumentStylesheetSet};
|
||||
use style::stylesheets::StylesheetInDocument;
|
||||
|
||||
/// Functionality common to DocumentStylesheetSet and AuthorStylesheetSet.
|
||||
pub enum StylesheetSetRef<'a, S>
|
||||
where
|
||||
S: StylesheetInDocument + PartialEq + 'static,
|
||||
{
|
||||
/// Author stylesheet set.
|
||||
Author(&'a mut AuthorStylesheetSet<S>),
|
||||
/// Document stylesheet set.
|
||||
Document(&'a mut DocumentStylesheetSet<S>),
|
||||
}
|
||||
|
||||
impl<'a, S> StylesheetSetRef<'a, S>
|
||||
where
|
||||
S: StylesheetInDocument + PartialEq + 'static,
|
||||
{
|
||||
/// Appends a new stylesheet to the current set.
|
||||
///
|
||||
/// No device implies not computing invalidations.
|
||||
pub fn append_stylesheet(
|
||||
&mut self,
|
||||
device: Option<&Device>,
|
||||
sheet: S,
|
||||
guard: &SharedRwLockReadGuard,
|
||||
) {
|
||||
match self {
|
||||
StylesheetSetRef::Author(set) => set.append_stylesheet(device, sheet, guard),
|
||||
StylesheetSetRef::Document(set) => set.append_stylesheet(device, sheet, guard),
|
||||
}
|
||||
}
|
||||
|
||||
/// Insert a given stylesheet before another stylesheet in the document.
|
||||
pub fn insert_stylesheet_before(
|
||||
&mut self,
|
||||
device: Option<&Device>,
|
||||
sheet: S,
|
||||
before_sheet: S,
|
||||
guard: &SharedRwLockReadGuard,
|
||||
) {
|
||||
match self {
|
||||
StylesheetSetRef::Author(set) => {
|
||||
set.insert_stylesheet_before(device, sheet, before_sheet, guard)
|
||||
},
|
||||
StylesheetSetRef::Document(set) => {
|
||||
set.insert_stylesheet_before(device, sheet, before_sheet, guard)
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
/// Remove a given stylesheet from the set.
|
||||
pub fn remove_stylesheet(
|
||||
&mut self,
|
||||
device: Option<&Device>,
|
||||
sheet: S,
|
||||
guard: &SharedRwLockReadGuard,
|
||||
) {
|
||||
match self {
|
||||
StylesheetSetRef::Author(set) => set.remove_stylesheet(device, sheet, guard),
|
||||
StylesheetSetRef::Document(set) => set.remove_stylesheet(device, sheet, guard),
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue