summaryrefslogtreecommitdiffstats
path: root/packages/svgbob/src/buffer/cell_buffer/settings.rs
diff options
context:
space:
mode:
Diffstat (limited to 'packages/svgbob/src/buffer/cell_buffer/settings.rs')
-rw-r--r--packages/svgbob/src/buffer/cell_buffer/settings.rs53
1 files changed, 53 insertions, 0 deletions
diff --git a/packages/svgbob/src/buffer/cell_buffer/settings.rs b/packages/svgbob/src/buffer/cell_buffer/settings.rs
new file mode 100644
index 0000000..de4cb40
--- /dev/null
+++ b/packages/svgbob/src/buffer/cell_buffer/settings.rs
@@ -0,0 +1,53 @@
+#[derive(Debug, Clone)]
+pub struct Settings {
+ /// font-size of the text
+ pub font_size: usize,
+ /// the font used for the text
+ pub font_family: String,
+ /// the color fill used in filled solid shape
+ pub fill_color: String,
+ /// the backdrop background color
+ pub background: String,
+ /// the stroke color of lines, and shapes
+ pub stroke_color: String,
+ /// the width of the stroke
+ pub stroke_width: f32,
+ /// the scale multiplier
+ pub scale: f32,
+ /// flag whether to enhace circuitries or not, default true
+ pub enhance_circuitries: bool,
+ /// flag whether to include the big rectangle as backdrop
+ /// for all of the svg shapes
+ pub include_backdrop: bool,
+ /// flag whether to include the svg styles and legen css styles
+ pub include_styles: bool,
+ /// flag whether to include the def of markers, etc in the svg
+ pub include_defs: bool,
+ /// merge lines and shapes like triangle,circle,rect to form arrow lines or marker line
+ pub merge_line_with_shapes: bool,
+}
+impl Settings {
+ /// the inverse of the default scale 10
+ pub fn scale_inverse(&self) -> f32 {
+ 1.0 / self.scale
+ }
+}
+
+impl Default for Settings {
+ fn default() -> Self {
+ Settings {
+ font_size: 14,
+ font_family: "monospace".into(),
+ fill_color: "black".into(),
+ background: "white".into(),
+ stroke_color: "black".into(),
+ stroke_width: 2.0,
+ scale: 8.0,
+ enhance_circuitries: true,
+ include_backdrop: true,
+ include_styles: true,
+ include_defs: true,
+ merge_line_with_shapes: false,
+ }
+ }
+}