From 4539a0fa688a0a76b4dcf4702f0fdaebc5761ac1 Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Fri, 16 Nov 2012 18:03:30 -0800 Subject: [PATCH] Implement font-size and font-style --- src/rust-css | 2 +- src/rust-netsurfcss | 2 +- src/servo/layout/box.rs | 27 +++++++++++++++++++++------ 3 files changed, 23 insertions(+), 8 deletions(-) diff --git a/src/rust-css b/src/rust-css index 473aa3963f0..bc148a64d9f 160000 --- a/src/rust-css +++ b/src/rust-css @@ -1 +1 @@ -Subproject commit 473aa3963f0065b35fdc868b0cb3f755630f5bef +Subproject commit bc148a64d9f46945bf6fab8a355d06cb58262c06 diff --git a/src/rust-netsurfcss b/src/rust-netsurfcss index a840161badb..b41a2e44df1 160000 --- a/src/rust-netsurfcss +++ b/src/rust-netsurfcss @@ -1 +1 @@ -Subproject commit a840161badbfb5e3adb861c35f210fecf4877f77 +Subproject commit b41a2e44df11d6c43240ed2d382e62bfdecdd190 diff --git a/src/servo/layout/box.rs b/src/servo/layout/box.rs index 627bd944c15..51419dc2a54 100644 --- a/src/servo/layout/box.rs +++ b/src/servo/layout/box.rs @@ -24,11 +24,12 @@ use gfx::text::text_run::TextRun; use gfx::util::range::*; use newcss::color::{Color, rgba, rgb}; use newcss::complete::CompleteStyle; -use newcss::units::{BoxSizing, Cursive, Fantasy, Length, Monospace, Px, SansSerif, Serif}; +use newcss::units::{BoxSizing, Cursive, Em, Fantasy, Length, Monospace, Pt, Px, SansSerif, Serif}; use newcss::values::{CSSBackgroundColorColor, CSSBackgroundColorTransparent, CSSBorderColor}; use newcss::values::{CSSBorderWidthLength, CSSBorderWidthMedium, CSSDisplay}; use newcss::values::{CSSFontFamilyFamilyName, CSSFontFamilyGenericFamily, CSSPositionAbsolute}; -use newcss::values::{Specified}; +use newcss::values::{CSSFontSizeLength, CSSFontStyleItalic, CSSFontStyleNormal}; +use newcss::values::{CSSFontStyleOblique, Specified}; use std::arc::ARC; use std::net::url::Url; @@ -534,14 +535,28 @@ impl RenderBox : RenderBoxMethods { } }; let font_families = str::connect(font_families, ~", "); - debug!("(font style) font families: `%s`", font_families); + let font_size = match my_style.font_size() { + CSSFontSizeLength(Px(l)) | + CSSFontSizeLength(Pt(l)) | + CSSFontSizeLength(Em(l)) => l, + _ => 12f + }; + debug!("(font style) font size: `%f`", font_size); + + let italic, oblique; + match my_style.font_style() { + CSSFontStyleNormal => { italic = false; oblique = false; } + CSSFontStyleItalic => { italic = true; oblique = false; } + CSSFontStyleOblique => { italic = false; oblique = true; } + } + FontStyle { - pt_size: 20f, + pt_size: font_size, weight: FontWeight300, - italic: false, - oblique: false, + italic: italic, + oblique: oblique, families: move font_families, } }