[librsvg] pattern.rs: Define a PatternContentUnits newtype
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg] pattern.rs: Define a PatternContentUnits newtype
- Date: Tue, 21 Mar 2017 22:57:58 +0000 (UTC)
commit 83311d90ffdbe736b0b42f74b370b1fa309cc87a
Author: Federico Mena Quintero <federico gnome org>
Date: Tue Mar 21 14:32:49 2017 -0600
pattern.rs: Define a PatternContentUnits newtype
This is the same as a PaintServerUnits, but with a different default value.
rust/src/pattern.rs | 20 ++++++++++++++++++++
1 files changed, 20 insertions(+), 0 deletions(-)
---
diff --git a/rust/src/pattern.rs b/rust/src/pattern.rs
index cc174f8..dfbb621 100644
--- a/rust/src/pattern.rs
+++ b/rust/src/pattern.rs
@@ -11,6 +11,7 @@ use length::*;
use drawing_ctx;
use drawing_ctx::RsvgDrawingCtx;
use node::*;
+use paint_server::*;
use bbox::*;
use util::*;
@@ -37,6 +38,25 @@ pub struct Pattern {
pub c_node: *const RsvgNode
}
+// A pattern's patternUnits attribute (in our Pattern::units field) defines the coordinate
+// system relative to the x/y/width/height of the Pattern. However, patterns also
+// have a patternContentUnits attribute, which refers to the pattern's contents (i.e. the
+// objects which it references. We define PatternContentUnits as a newtype, so that
+// it can have its own default value, different from the one in PaintServerUnits.
+struct PatternContentUnits(PaintServerUnits);
+
+impl From<PaintServerUnits> for PatternContentUnits {
+ fn from (units: PaintServerUnits) -> PatternContentUnits {
+ PatternContentUnits(units)
+ }
+}
+
+impl Default for PatternContentUnits {
+ fn default () -> PatternContentUnits {
+ PatternContentUnits (PaintServerUnits::UserSpaceOnUse)
+ }
+}
+
extern "C" {
fn rsvg_pattern_node_to_rust_pattern (node: *const RsvgNode) -> *mut Pattern;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]