Replace ColorOrAuto by CaretColor

This is its only use.
This commit is contained in:
Anthony Ramine 2018-02-28 10:24:06 +01:00
parent 6fbf2c1e3c
commit c4efbb4d51
8 changed files with 65 additions and 24 deletions

View file

@ -70,10 +70,10 @@ pub use self::list::{ListStyleImage, Quotes};
pub use self::list::ListStyleType;
pub use self::outline::OutlineStyle;
pub use self::percentage::Percentage;
pub use self::position::{GridAutoFlow, GridTemplateAreas, Position, ZIndex};
pub use self::pointing::Cursor;
pub use self::pointing::{CaretColor, Cursor};
#[cfg(feature = "gecko")]
pub use self::pointing::CursorImage;
pub use self::position::{GridAutoFlow, GridTemplateAreas, Position, ZIndex};
pub use self::svg::{SVGLength, SVGOpacity, SVGPaint, SVGPaintKind};
pub use self::svg::{SVGPaintOrder, SVGStrokeDashArray, SVGWidth};
pub use self::svg::MozContextProperties;
@ -633,9 +633,6 @@ impl ClipRectOrAuto {
}
}
/// <color> | auto
pub type ColorOrAuto = Either<Color, Auto>;
/// The computed value of a CSS `url()`, resolved relative to the stylesheet URL.
#[cfg(feature = "servo")]
#[derive(Clone, Debug, Deserialize, MallocSizeOf, PartialEq, Serialize)]

View file

@ -15,6 +15,10 @@ use std::fmt::{self, Write};
use style_traits::{CssWriter, ToCss};
use style_traits::ParseError;
use style_traits::cursor::CursorKind;
use values::computed::color::Color;
use values::generics::pointing::CaretColor as GenericCaretColor;
#[cfg(feature = "gecko")]
use values::specified::url::SpecifiedUrl;
/// The computed value for the `cursor` property.
///
@ -22,8 +26,6 @@ use style_traits::cursor::CursorKind;
pub use values::specified::pointing::Cursor;
#[cfg(feature = "gecko")]
pub use values::specified::pointing::CursorImage;
#[cfg(feature = "gecko")]
use values::specified::url::SpecifiedUrl;
impl Cursor {
/// Set `cursor` to `auto`
@ -138,3 +140,6 @@ impl ToCss for CursorImage {
Ok(())
}
}
/// A computed value for the `caret-color` property.
pub type CaretColor = GenericCaretColor<Color>;

View file

@ -25,6 +25,7 @@ pub mod font;
pub mod gecko;
pub mod grid;
pub mod image;
pub mod pointing;
pub mod position;
pub mod rect;
pub mod size;

View file

@ -0,0 +1,15 @@
/* 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/. */
//! Generic values for pointing properties.
/// A generic value for the `caret-color` property.
#[derive(Animate, Clone, ComputeSquaredDistance, Copy, Debug, MallocSizeOf)]
#[derive(PartialEq, ToAnimatedValue, ToAnimatedZero, ToComputedValue, ToCss)]
pub enum CaretColor<Color> {
/// An explicit color.
Color(Color),
/// The keyword `auto`.
Auto,
}

View file

@ -63,11 +63,11 @@ pub use self::list::ListStyleType;
pub use self::outline::OutlineStyle;
pub use self::rect::LengthOrNumberRect;
pub use self::percentage::Percentage;
pub use self::position::{GridAutoFlow, GridTemplateAreas, Position};
pub use self::position::{PositionComponent, ZIndex};
pub use self::pointing::Cursor;
pub use self::pointing::{CaretColor, Cursor};
#[cfg(feature = "gecko")]
pub use self::pointing::CursorImage;
pub use self::position::{GridAutoFlow, GridTemplateAreas, Position};
pub use self::position::{PositionComponent, ZIndex};
pub use self::svg::{SVGLength, SVGOpacity, SVGPaint, SVGPaintKind};
pub use self::svg::{SVGPaintOrder, SVGStrokeDashArray, SVGWidth};
pub use self::svg::MozContextProperties;
@ -693,9 +693,6 @@ impl ClipRectOrAuto {
}
}
/// <color> | auto
pub type ColorOrAuto = Either<Color, Auto>;
/// Whether quirks are allowed in this context.
#[derive(Clone, Copy, PartialEq)]
pub enum AllowQuirks {

View file

@ -6,7 +6,12 @@
//!
//! https://drafts.csswg.org/css-ui/#pointing-keyboard
use cssparser::Parser;
use parser::{Parse, ParserContext};
use style_traits::ParseError;
use style_traits::cursor::CursorKind;
use values::generics::pointing::CaretColor as GenericCaretColor;
use values::specified::color::Color;
#[cfg(feature = "gecko")]
use values::specified::url::SpecifiedUrl;
@ -38,3 +43,18 @@ pub struct CursorImage {
/// The <x> and <y> coordinates.
pub hotspot: Option<(f32, f32)>,
}
/// A specified value for the `caret-color` property.
pub type CaretColor = GenericCaretColor<Color>;
impl Parse for CaretColor {
fn parse<'i, 't>(
context: &ParserContext,
input: &mut Parser<'i, 't>,
) -> Result<Self, ParseError<'i>> {
if input.try(|i| i.expect_ident_matching("auto")).is_ok() {
return Ok(GenericCaretColor::Auto);
}
Ok(GenericCaretColor::Color(Color::parse(context, input)?))
}
}