use super::*;
pub type OpInputPort = TextBox<OpInputPortClass>;
pub type OpInputs = HStack<OpInputPort, OpInputsClass>;
pub type OpBody = TextBox<OpBodyClass>;
pub type OpComment = TextBox<OpCommentClass>;
pub type OpOutputPort = TextBox<OpOutputPortClass>;
pub type OpOutputs = HStack<OpOutputPort, OpOutputsClass>;
pub type InputOp = V3<OpBody, Optional<OpComment>, OpOutputs, InputOpClass>;
pub type Op = V4<OpInputs, OpBody, Optional<OpComment>, OpOutputs, OpClass>;
pub type EffectOp = V3<OpInputs, OpBody, Optional<OpComment>, EffectOpClass>;
pub type Dummy = Empty<DummyClass>;
pub type GroupInputPort = Empty<GroupInputPortClass>;
pub type GroupInputs = HStack<GroupInputPort, GroupInputsClass>;
pub type GroupOutputPort = Empty<GroupOutputPortClass>;
pub type GroupOutputs = HStack<GroupOutputPort, GroupOutputsClass>;
pub type GroupTitle = TextBox<GroupTitleClass>;
pub struct Group(pub V4<GroupTitle, GroupInputs, GroupContent, GroupOutputs, GroupClass>);
impl Element for Group {
fn solve_size(&mut self, stylesheet: &StyleSheet) {
self.0.solve_size(stylesheet);
}
fn solve_frame(&mut self, stylesheet: &StyleSheet, available: zhc_utils::graphics::Frame) {
self.0.solve_frame(stylesheet, available);
}
fn get_size(&self) -> zhc_utils::graphics::Size {
self.0.get_size()
}
fn get_frame(&self) -> zhc_utils::graphics::Frame {
self.0.get_frame()
}
fn get_variable_cell(&self) -> VariableCell {
self.0.get_variable_cell()
}
}
pub type Node = D7<InputOp, Op, EffectOp, Dummy, Group, GroupInputPort, GroupOutputPort>;
pub use D7::E1 as NodeInputOpVar;
pub use D7::E2 as NodeOpVar;
pub use D7::E3 as NodeEffectOpVar;
pub use D7::E4 as NodeDummyVar;
pub use D7::E5 as NodeGroupVar;
pub use D7::E6 as NodeGroupInputPortVar;
pub use D7::E7 as NodeGroupOutputPortVar;
pub type Layer = HStack<Node, LayerClass>;
pub type LayerSeparator = Spacer<LayerClass>;
pub type LayerMember = D2<Layer, LayerSeparator>;
pub use D2::E1 as LayerMemberLayer;
pub use D2::E2 as LayerMemberSeparator;
pub type Layers = VStack<LayerMember, VerticesClass>;
pub type GroupContent = Layers;