| //! Gridline |
| |
| use crate::{Axis, Default, Display, Grid, Script}; |
| |
| /// Gridline properties |
| #[derive(Clone, Copy)] |
| pub struct Properties { |
| hidden: bool, |
| } |
| |
| impl Default for Properties { |
| fn default() -> Properties { |
| Properties { hidden: true } |
| } |
| } |
| |
| // TODO Lots of configuration pending: linetype, linewidth, etc |
| impl Properties { |
| /// Hides the gridlines |
| /// |
| /// **Note** Both `Major` and `Minor` gridlines are hidden by default |
| pub fn hide(&mut self) -> &mut Properties { |
| self.hidden = true; |
| self |
| } |
| |
| /// Shows the gridlines |
| pub fn show(&mut self) -> &mut Properties { |
| self.hidden = false; |
| self |
| } |
| } |
| |
| impl<'a> Script for (Axis, Grid, &'a Properties) { |
| fn script(&self) -> String { |
| let &(axis, grid, properties) = self; |
| let axis = axis.display(); |
| let grid = grid.display(); |
| |
| if properties.hidden { |
| String::new() |
| } else { |
| format!("set grid {}{}tics\n", grid, axis) |
| } |
| } |
| } |