private static void HandleGVSEndElement(string element) { switch (element.ToLower()) { case "visualgroup": if (group != null && group.Count > 0) { groups.Add(group); group = null; vselement = null; } break; case "visualelement": if (!vselement.IsValid()) { throw new InvalidDataException("Invalid VisualElement, must contain a path to the file, coordinates, and a trigger key"); } if (group == null) // elements do not have to be grouped { group = new List <VisualScriptElement>(); group.Add(vselement); groups.Add(group); } else { group.Add(vselement); } vselement = new VisualScriptElement(); break; } }
private static void HandleGVSElement(string element) { switch (element.ToLower()) { case "scriptname": xmlReader.Read(); gvsName = xmlReader.Value; break; case "scriptauthor": xmlReader.Read(); gvsAuthor = xmlReader.Value; break; case "visualgroup": group = new List <VisualScriptElement>(); break; case "visualelement": vselement = new VisualScriptElement(); break; case "imgpath": xmlReader.Read(); String path = Path.GetDirectoryName(gvsPath) + "\\" + xmlReader.Value.Replace('/', '\\'); if (!File.Exists(path)) { throw new FileNotFoundException(); } vselement.Image = new Bitmap(Image.FromFile(path)); break; case "coords": xmlReader.Read(); String[] xy = xmlReader.Value.Split(','); if (xy.Length != 2) { throw new InvalidDataException("Coordinate elements must have 2 coordinates seperated by a ','"); } vselement.AddCoordinates(new Point(Int32.Parse(xy[0]), Int32.Parse(xy[1]))); break; case "trigkey": xmlReader.Read(); vselement.TriggerKey = xmlReader.Value; break; case "comparemethod": xmlReader.Read(); vselement.CompareMethod = (ImageCompareMethod)Int32.Parse(xmlReader.Value); break; case "tolerancelevel": xmlReader.Read(); vselement.ToleranceLevel = Double.Parse(xmlReader.Value); break; } }