Skip to content
Permalink
Browse files

style: Change nscolor to StyleComplexColor in nsStyleGradientStop.

Bug: 1467379
Reviewed-by: xidorn
MozReview-Commit-ID: D9KQcv9uQ4S
  • Loading branch information...
djg authored and emilio committed Jun 7, 2018
1 parent 7418951 commit 4d255392f7a08d16a90ef1caa084e46e980b61fe
@@ -9,7 +9,7 @@
#![allow(unsafe_code)]

use app_units::Au;
use gecko::values::{convert_rgba_to_nscolor, GeckoStyleCoordConvertible};
use gecko::values::GeckoStyleCoordConvertible;
use gecko_bindings::bindings;
use gecko_bindings::structs::{self, nsCSSUnit, nsStyleCoord_CalcValue};
use gecko_bindings::structs::{nsresult, SheetType, nsStyleImage};
@@ -358,7 +358,7 @@ impl nsStyleImage {

match *item {
GradientItem::ColorStop(ref stop) => {
gecko_stop.mColor = convert_rgba_to_nscolor(&stop.color);
gecko_stop.mColor = stop.color.into();
gecko_stop.mIsInterpolationHint = false;
coord.set(stop.position);
},
@@ -433,7 +433,6 @@ impl nsStyleImage {
}

unsafe fn get_gradient(self: &nsStyleImage) -> Box<Gradient> {
use gecko::values::convert_nscolor_to_rgba;
use self::structs::NS_STYLE_GRADIENT_SIZE_CLOSEST_CORNER as CLOSEST_CORNER;
use self::structs::NS_STYLE_GRADIENT_SIZE_CLOSEST_SIDE as CLOSEST_SIDE;
use self::structs::NS_STYLE_GRADIENT_SIZE_FARTHEST_CORNER as FARTHEST_CORNER;
@@ -601,7 +600,7 @@ impl nsStyleImage {
)
} else {
GradientItem::ColorStop(ColorStop {
color: convert_nscolor_to_rgba(stop.mColor),
color: stop.mColor.into(),
position: LengthOrPercentage::from_gecko_style_coord(&stop.mLocation),
})
}
@@ -7,12 +7,11 @@
//!
//! [image]: https://drafts.csswg.org/css-images/#image-values

use cssparser::RGBA;
use std::f32::consts::PI;
use std::fmt::{self, Write};
use style_traits::{CssWriter, ToCss};
use values::{Either, None_};
use values::computed::{Angle, Context};
use values::computed::{Angle, Color, Context};
use values::computed::{Length, LengthOrPercentage, NumberOrPercentage, ToComputedValue};
#[cfg(feature = "gecko")]
use values::computed::Percentage;
@@ -32,7 +31,7 @@ pub type Image = generic::Image<Gradient, MozImageRect, ComputedImageUrl>;
/// Computed values for a CSS gradient.
/// <https://drafts.csswg.org/css-images/#gradients>
pub type Gradient =
generic::Gradient<LineDirection, Length, LengthOrPercentage, Position, RGBA, Angle>;
generic::Gradient<LineDirection, Length, LengthOrPercentage, Position, Color, Angle>;

/// A computed gradient kind.
pub type GradientKind =
@@ -58,10 +57,10 @@ pub enum LineDirection {
pub type EndingShape = generic::EndingShape<Length, LengthOrPercentage>;

/// A computed gradient item.
pub type GradientItem = generic::GradientItem<RGBA, LengthOrPercentage>;
pub type GradientItem = generic::GradientItem<Color, LengthOrPercentage>;

/// A computed color stop.
pub type ColorStop = generic::ColorStop<RGBA, LengthOrPercentage>;
pub type ColorStop = generic::ColorStop<Color, LengthOrPercentage>;

/// Computed values for `-moz-image-rect(...)`.
pub type MozImageRect = generic::MozImageRect<NumberOrPercentage, ComputedImageUrl>;
@@ -26,7 +26,7 @@ use values::generics::image::{self as generic, Circle, CompatMode, Ellipse, Shap
use values::generics::image::PaintWorklet;
use values::generics::position::Position as GenericPosition;
use values::specified::{Angle, Color, Length, LengthOrPercentage};
use values::specified::{Number, NumberOrPercentage, Percentage, RGBAColor};
use values::specified::{Number, NumberOrPercentage, Percentage};
use values::specified::position::{LegacyPosition, Position, PositionComponent, Side, X, Y};
use values::specified::url::SpecifiedImageUrl;

@@ -41,19 +41,13 @@ pub type Image = generic::Image<Gradient, MozImageRect, SpecifiedImageUrl>;
/// <https://drafts.csswg.org/css-images/#gradients>
#[cfg(not(feature = "gecko"))]
pub type Gradient =
generic::Gradient<LineDirection, Length, LengthOrPercentage, Position, RGBAColor, Angle>;
generic::Gradient<LineDirection, Length, LengthOrPercentage, Position, Color, Angle>;

/// Specified values for a CSS gradient.
/// <https://drafts.csswg.org/css-images/#gradients>
#[cfg(feature = "gecko")]
pub type Gradient = generic::Gradient<
LineDirection,
Length,
LengthOrPercentage,
GradientPosition,
RGBAColor,
Angle,
>;
pub type Gradient =
generic::Gradient<LineDirection, Length, LengthOrPercentage, GradientPosition, Color, Angle>;

impl SpecifiedValueInfo for Gradient {
const SUPPORTED_TYPES: u8 = CssType::GRADIENT;
@@ -121,10 +115,10 @@ pub enum GradientPosition {
pub type EndingShape = generic::EndingShape<Length, LengthOrPercentage>;

/// A specified gradient item.
pub type GradientItem = generic::GradientItem<RGBAColor, LengthOrPercentage>;
pub type GradientItem = generic::GradientItem<Color, LengthOrPercentage>;

/// A computed color stop.
pub type ColorStop = generic::ColorStop<RGBAColor, LengthOrPercentage>;
pub type ColorStop = generic::ColorStop<Color, LengthOrPercentage>;

/// Specified values for `moz-image-rect`
/// -moz-image-rect(<uri>, top, right, bottom, left);
@@ -957,7 +951,7 @@ impl Parse for ColorStop {
input: &mut Parser<'i, 't>,
) -> Result<Self, ParseError<'i>> {
Ok(ColorStop {
color: RGBAColor::parse(context, input)?,
color: Color::parse(context, input)?,
position: input.try(|i| LengthOrPercentage::parse(context, i)).ok(),
})
}

0 comments on commit 4d25539

Please sign in to comment.
You can’t perform that action at this time.