1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
use {Coords, NodeID, Meta, random_fg_color}; #[derive(Debug,Clone)] pub struct Node { pub rooted_coords: Coords, pub parent_id: NodeID, pub id: NodeID, pub content: String, pub children: Vec<NodeID>, pub selected: bool, pub collapsed: bool, pub stricken: bool, pub hide_stricken: bool, pub meta: Meta, pub free_text: Option<String>, pub color: String, pub auto_arrange: bool, } impl Default for Node { fn default() -> Node { Node { rooted_coords: (1, 2), id: 0, parent_id: 0, content: String::new(), children: vec![], selected: false, collapsed: false, stricken: false, hide_stricken: false, meta: Meta::default(), free_text: None, color: random_fg_color(), auto_arrange: false, } } } impl Node { pub fn toggle_collapsed(&mut self) { if self.collapsed { self.collapsed = false; } else { self.collapsed = true; } } pub fn toggle_stricken(&mut self) { if self.stricken { self.stricken = false; self.meta.unfinish(); } else { self.stricken = true; self.meta.finish(); } } pub fn toggle_hide_stricken(&mut self) { if self.hide_stricken { self.hide_stricken = false; } else { self.hide_stricken = true; } } }