tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

background.rs (1495B)


      1 /* This Source Code Form is subject to the terms of the Mozilla Public
      2 * License, v. 2.0. If a copy of the MPL was not distributed with this
      3 * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
      4 
      5 //! Generic types for CSS values related to backgrounds.
      6 
      7 use crate::derives::*;
      8 use crate::values::generics::length::{GenericLengthPercentageOrAuto, LengthPercentageOrAuto};
      9 
     10 /// A generic value for the `background-size` property.
     11 #[derive(
     12    Animate,
     13    Clone,
     14    ComputeSquaredDistance,
     15    Copy,
     16    Debug,
     17    MallocSizeOf,
     18    PartialEq,
     19    SpecifiedValueInfo,
     20    ToAnimatedValue,
     21    ToAnimatedZero,
     22    ToComputedValue,
     23    ToCss,
     24    ToResolvedValue,
     25    ToShmem,
     26 )]
     27 #[repr(C, u8)]
     28 pub enum GenericBackgroundSize<LengthPercent> {
     29    /// `<width> <height>`
     30    ExplicitSize {
     31        /// Explicit width.
     32        width: GenericLengthPercentageOrAuto<LengthPercent>,
     33        /// Explicit height.
     34        #[css(skip_if = "GenericLengthPercentageOrAuto::is_auto")]
     35        height: GenericLengthPercentageOrAuto<LengthPercent>,
     36    },
     37    /// `cover`
     38    #[animation(error)]
     39    Cover,
     40    /// `contain`
     41    #[animation(error)]
     42    Contain,
     43 }
     44 
     45 pub use self::GenericBackgroundSize as BackgroundSize;
     46 
     47 impl<LengthPercentage> BackgroundSize<LengthPercentage> {
     48    /// Returns `auto auto`.
     49    pub fn auto() -> Self {
     50        GenericBackgroundSize::ExplicitSize {
     51            width: LengthPercentageOrAuto::Auto,
     52            height: LengthPercentageOrAuto::Auto,
     53        }
     54    }
     55 }