private void OnReproducePatternButtonClick(object sender, RoutedEventArgs e) { Pattern pattern = new Pattern(UI.SelectedPattern.Name, UI.Window.MultiStagesEditor.GetStages()); if (pattern.Stages == null || pattern.Stages.Length <= 0) { MessageBox.Show("The selected pattern doesn't have any stages, can't reproduce.", "Empty pattern", MessageBoxButton.OK, MessageBoxImage.Warning); return; } new PatternPlayerWindow(pattern).ShowDialog(); }
public PatternPlayerWindow(Pattern pattern) { if (pattern.Stages == null || pattern.Stages.Length <= 0) throw new ArgumentException("The Stages array is null or empty.", nameof(pattern)); Pattern = pattern; InitializeComponent(); Title = "Reproducing " + Pattern.Name; currentStage = Pattern.Stages[0]; currentStageIndex = 0; RenderStage(); int timeMs = unchecked((int)currentStage.Milliseconds); timeMs = Math.Max(timeMs, 1); // if milliseconds equals 0, it freezes the window, it needs to be at least 1 ms timer = new DispatcherTimer(new TimeSpan(0, 0, 0, 0, timeMs), DispatcherPriority.Normal, OnTimerTick, Dispatcher); timer.Start(); }
public PatternWrapper(string name, Pattern.Stage[] stages) { this.pattern = new Pattern(name, stages); }
public PatternWrapper(Pattern pattern) { this.pattern = pattern; }
public static void SaveTo(string fileName, Pattern[] patterns) { string xmlText = ""; using (StringWriter writer = new StringWriter()) { XmlSerializer s = new XmlSerializer(typeof(Pattern[])); s.Serialize(writer, patterns); xmlText = writer.ToString().Replace("\"?>", "\"?>" + Environment.NewLine + PatternXMLExplanationText); // add the explanation comment after the XML declaration } using (StreamWriter writer = new StreamWriter(fileName, false)) { writer.Write(xmlText); } }
public StageEditor AddStageEditor(Pattern.Stage stage) { StageEditor editor = AddStageEditor(); editor.Stage = stage; return editor; }