[librsvg] ViewParams: Use accessor functions; make fields private
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg] ViewParams: Use accessor functions; make fields private
- Date: Wed, 12 Sep 2018 11:54:52 +0000 (UTC)
commit 4706d60727842f1d988309808b063909ae59f7c9
Author: Federico Mena Quintero <federico gnome org>
Date: Tue Sep 4 15:08:12 2018 -0500
ViewParams: Use accessor functions; make fields private
rsvg_internals/src/drawing_ctx.rs | 39 +++++++++++++++++++++++++++++++++----
rsvg_internals/src/length.rs | 41 +++++++++++----------------------------
2 files changed, 46 insertions(+), 34 deletions(-)
---
diff --git a/rsvg_internals/src/drawing_ctx.rs b/rsvg_internals/src/drawing_ctx.rs
index c58b9534..ff928318 100644
--- a/rsvg_internals/src/drawing_ctx.rs
+++ b/rsvg_internals/src/drawing_ctx.rs
@@ -40,11 +40,42 @@ use unitinterval::UnitInterval;
use viewbox::ViewBox;
/// Holds values that are required to normalize `Length` values to a current viewport.
+///
+/// This struct is created by calling `DrawingCtx::push_view_box()` or
+/// `DrawingCtx::get_view_params()`.
pub struct ViewParams {
- pub dpi_x: f64,
- pub dpi_y: f64,
- pub view_box_width: f64,
- pub view_box_height: f64,
+ dpi_x: f64,
+ dpi_y: f64,
+ view_box_width: f64,
+ view_box_height: f64,
+}
+
+impl ViewParams {
+ #[cfg(test)]
+ pub fn new(dpi_x: f64, dpi_y: f64, view_box_width: f64, view_box_height: f64) -> ViewParams {
+ ViewParams {
+ dpi_x,
+ dpi_y,
+ view_box_width,
+ view_box_height,
+ }
+ }
+
+ pub fn dpi_x(&self) -> f64 {
+ self.dpi_x
+ }
+
+ pub fn dpi_y(&self) -> f64 {
+ self.dpi_y
+ }
+
+ pub fn view_box_width(&self) -> f64 {
+ self.view_box_width
+ }
+
+ pub fn view_box_height(&self) -> f64 {
+ self.view_box_height
+ }
}
pub enum RsvgDrawingCtx {}
diff --git a/rsvg_internals/src/length.rs b/rsvg_internals/src/length.rs
index 6a461f92..14b1c6da 100644
--- a/rsvg_internals/src/length.rs
+++ b/rsvg_internals/src/length.rs
@@ -99,10 +99,11 @@ impl Length {
LengthUnit::Default => self.length,
LengthUnit::Percent => match self.dir {
- LengthDir::Horizontal => self.length * params.view_box_width,
- LengthDir::Vertical => self.length * params.view_box_height,
+ LengthDir::Horizontal => self.length * params.view_box_width(),
+ LengthDir::Vertical => self.length * params.view_box_height(),
LengthDir::Both => {
- self.length * viewport_percentage(params.view_box_width, params.view_box_height)
+ self.length
+ * viewport_percentage(params.view_box_width(), params.view_box_height())
}
},
@@ -225,9 +226,9 @@ impl Length {
fn font_size_from_inch(length: f64, dir: LengthDir, params: &ViewParams) -> f64 {
match dir {
- LengthDir::Horizontal => length * params.dpi_x,
- LengthDir::Vertical => length * params.dpi_y,
- LengthDir::Both => length * viewport_percentage(params.dpi_x, params.dpi_y),
+ LengthDir::Horizontal => length * params.dpi_x(),
+ LengthDir::Vertical => length * params.dpi_y(),
+ LengthDir::Both => length * viewport_percentage(params.dpi_x(), params.dpi_y()),
}
}
@@ -405,12 +406,7 @@ mod tests {
#[test]
fn normalize_default_works() {
- let params = ViewParams {
- dpi_x: 40.0,
- dpi_y: 40.0,
- view_box_width: 100.0,
- view_box_height: 100.0,
- };
+ let params = ViewParams::new(40.0, 40.0, 100.0, 100.0);
let values = ComputedValues::default();
@@ -422,12 +418,7 @@ mod tests {
#[test]
fn normalize_absolute_units_works() {
- let params = ViewParams {
- dpi_x: 40.0,
- dpi_y: 50.0,
- view_box_width: 100.0,
- view_box_height: 100.0,
- };
+ let params = ViewParams::new(40.0, 50.0, 100.0, 100.0);
let values = ComputedValues::default();
@@ -443,12 +434,7 @@ mod tests {
#[test]
fn normalize_percent_works() {
- let params = ViewParams {
- dpi_x: 40.0,
- dpi_y: 40.0,
- view_box_width: 100.0,
- view_box_height: 200.0,
- };
+ let params = ViewParams::new(40.0, 40.0, 100.0, 200.0);
let values = ComputedValues::default();
@@ -465,12 +451,7 @@ mod tests {
#[test]
fn normalize_font_em_ex_works() {
- let params = ViewParams {
- dpi_x: 40.0,
- dpi_y: 40.0,
- view_box_width: 100.0,
- view_box_height: 200.0,
- };
+ let params = ViewParams::new(40.0, 40.0, 100.0, 200.0);
let values = ComputedValues::default();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]