From 5fd318be80000510dcdc683b68ced5978fad8b32 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Wed, 31 Oct 2012 16:07:27 -0700 Subject: [PATCH] Add css::compute, for computing styles from Node + SelectResult --- src/servo/css/compute.rs | 16 ++++++++++++++++ src/servo/layout/box.rs | 9 ++------- src/servo/servo.rc | 1 + 3 files changed, 19 insertions(+), 7 deletions(-) create mode 100644 src/servo/css/compute.rs diff --git a/src/servo/css/compute.rs b/src/servo/css/compute.rs new file mode 100644 index 00000000000..c8e08209ebe --- /dev/null +++ b/src/servo/css/compute.rs @@ -0,0 +1,16 @@ +/*! +Calculate styles for nodes based on SelectResults +*/ + +use dom::node::Node; +use newcss::color::{Color, rgba}; + +pub trait ComputeStyles { + fn compute_background_color() -> Color; +} + +impl Node: ComputeStyles { + fn compute_background_color() -> Color { + rgba(255, 0, 255, 1.0) + } +} \ No newline at end of file diff --git a/src/servo/layout/box.rs b/src/servo/layout/box.rs index 2c5e8723790..d243fb77ea6 100644 --- a/src/servo/layout/box.rs +++ b/src/servo/layout/box.rs @@ -9,6 +9,7 @@ use core::dvec::DVec; use core::to_str::ToStr; use core::rand; use css::styles::SpecifiedStyle; +use css::compute::ComputeStyles; use newcss::values::{BoxSizing, Length, Px, CSSDisplay, Specified, BgColor, BgColorTransparent}; use newcss::values::{BdrColor, PosAbsolute}; use newcss::color::{Color, rgba}; @@ -428,13 +429,7 @@ impl RenderBox : RenderBoxMethods { fn add_bgcolor_to_list(list: &mut DisplayList, abs_bounds: &Rect) { use std::cmp::FuzzyEq; - // FIXME - /*let boxed_bgcolor = self.d().node.style().background_color; - let bgcolor = match boxed_bgcolor { - Specified(BgColor(c)) => c, - Specified(BgColorTransparent) | _ => rgba(0,0,0,0.0) - };*/ - let bgcolor = rgba(0,0,0,0.0); + let bgcolor = self.d().node.compute_background_color(); if !bgcolor.alpha.fuzzy_eq(&0.0) { list.append_item(~DisplayItem::new_SolidColor(abs_bounds, bgcolor.red, bgcolor.green, bgcolor.blue)); } diff --git a/src/servo/servo.rc b/src/servo/servo.rc index 70e347d20eb..f9ecf42900a 100755 --- a/src/servo/servo.rc +++ b/src/servo/servo.rc @@ -49,6 +49,7 @@ pub mod css { mod apply; mod matching; priv mod select_handler; + pub mod compute; } pub mod layout {