MyGrid getNextDiamond(int x, int y, FlowGraphNode node, List <FlowGraphNode> path) { var grid = new MyGrid(); Rectangle rect = null; if (path.Contains(node)) { rect = new Rectangle { Width = 50, Height = 50, Fill = Brushes.LightBlue }; } else { rect = new Rectangle { Width = 50, Height = 50, Fill = Brushes.Azure }; } rect.HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch; rect.VerticalAlignment = System.Windows.VerticalAlignment.Stretch; RotateTransform rotation = new RotateTransform(); rotation.Angle = 45; rect.RenderTransform = rotation; grid.Children.Add(rect); TextBlock tex = new TextBlock { Text = "\n" + node.ToString(), Foreground = Brushes.Black }; grid.Children.Add(tex); tex.Measure(new System.Windows.Size(double.PositiveInfinity, double.PositiveInfinity)); System.Windows.Size size = tex.DesiredSize; grid.xpos = x - (int)(size.Width / 2) + 25; grid.ypos = y; return(grid); }
void addNewNode(FlowGraphNode node) { if (null == graph) { graph = new List <FlowGraphNode>(); graph.Add(node); } else { graph.Add(node); } }
FlowGraphNode ParseNode(Dictionary <string, object> item) { string NodeType = item["_nodetype"].ToString(); FlowGraphNode node = null; if ("Decl" == NodeType) { node = ParseDeclaration(item); } if ("FuncCall" == NodeType) { node = ParseFuncCall(item); } if ("If" == NodeType) { node = ParseIf(item); } if ("Constant" == NodeType) { node = ParseConstant(item); } if ("ArrayRef" == NodeType) { node = ParseArrayRef(item); } if ("ID" == NodeType) { node = ParseID(item); } if ("BinaryOp" == NodeType) { node = ParseBinOp(item); } if ("UnaryOp" == NodeType) { node = ParseUnaryOp(item); } if ("Assignment" == NodeType) { node = ParseAssigmet(item); } if ("Return" == NodeType) { node = ParseReturn(item); } if ("While" == NodeType) { node = ParseWhile(item); } if ("For" == NodeType) { node = ParseFor(item); } if ("Typedef" == NodeType) { node = ParseTypeDef(item); } if ("TypeDecl" == NodeType) { node = ParseTypeDecl(item); } if ("Enum" == NodeType) { node = ParseEnum(item); } if ("Enumerator" == NodeType) { node = ParseEnumValue(item); } if ("Struct" == NodeType) { node = ParseStruct(item); } if ("Union" == NodeType) { node = ParseUnion(item); } if ("StructRef" == NodeType) { node = ParseStructRef(item); } if ("Typename" == NodeType) { node = ParseTypeName(item); } if ("IdentifierType" == NodeType) { node = ParseTypeDeclIdentifierType(item); } if ("Cast" == NodeType) { node = ParseCast(item); } return(node); }