private void DiffViewer_Click(object sender, RoutedEventArgs e) { DiffViewer caller = (DiffViewer)sender; if (caller.IsChecked) { DiffEntrySetState(caller, false); } else { DiffEntrySetState(caller, true); } }
/// <summary> /// Sets diff entrys state and updates it's visual style. /// </summary> /// <param name="obj">The DiffViewer entry.</param> /// <param name="state">The state, true or false.</param> private void DiffEntrySetState(DiffViewer obj, bool state) { if (state) { obj.IsChecked = true; obj.BorderBrush = (Brush)FindResource("HighlightGreyBrush"); obj.BorderThickness = new Thickness(2); } else { obj.IsChecked = false; obj.BorderBrush = (Brush)FindResource("BackgroundDarkBrush"); obj.BorderThickness = new Thickness(2); } }
private void MainForm_Load(object sender, EventArgs e) { var now = DateTime.Now; var isDark = now.Hour < 6 || now.Hour >= 18; BackColor = isDark ? Color.FromArgb(255, 32, 32, 32) : Color.FromArgb(255, 251, 251, 251); diffView = new DiffViewer { Margin = new Padding(0), Dock = DockStyle.Fill, ForeColor = isDark ? Color.FromArgb(255, 240, 240, 240) : Color.FromArgb(255, 32, 32, 32), OldText = TestData.DuplicateText(TestData.OldText, 20), NewText = TestData.DuplicateText(TestData.NewText, 20) }; MainLayoutPanel.Controls.Add(diffView, 0, 0); diffView.SetHeaderAsOldToNew(); }
private void PopulateDiffList(string Snapshot) { List <DifferenceObject> RealDifferences = new List <DifferenceObject>(); ZipArchive SnapArch = ZipFile.OpenRead(Snapshot); // Populate Differences foreach (ZipArchiveEntry entry in SnapArch.Entries) { string fName = entry.FullName; string lName = Directory.GetParent(Properties.Settings.Default.CSGOBinary.ToString()).ToString() + "\\csgo\\panorama\\" + entry.FullName; Stream filestream = entry.Open(); Stream lfstream = File.OpenRead(lName); SHA256Managed sha = new SHA256Managed(); byte[] hash = sha.ComputeHash(filestream); SHA256Managed lsha = new SHA256Managed(); byte[] lhash = lsha.ComputeHash(lfstream); Console.WriteLine(fName); // Differences exist if (!hash.SequenceEqual(lhash)) { // deflate stream must be reopened as it does not natively support seeking filestream.Close(); filestream = entry.Open(); lfstream.Seek(0, SeekOrigin.Begin); // Check for compatible file differences if (lName.ToLower().EndsWith("css")) { CSSDifferenceObject newDiff = new CSSDifferenceObject(lfstream, filestream); RealDifferences.Add(newDiff); } } lfstream.Close(); filestream.Close(); } foreach (DifferenceObject diffFile in RealDifferences) { TextBlock dFileTB = new TextBlock(); dFileTB.TextAlignment = TextAlignment.Center; dFileTB.HorizontalAlignment = HorizontalAlignment.Stretch; dFileTB.VerticalAlignment = VerticalAlignment.Stretch; dFileTB.VerticalAlignment = VerticalAlignment.Center; dFileTB.Text = System.IO.Path.GetFileName(diffFile.Filename); dFileTB.FontFamily = (FontFamily)FindResource("LatoRegular"); dFileTB.FontSize = 18; dFileTB.Margin = new Thickness(10, 0, 10, 0); dFileTB.Foreground = (Brush)FindResource("OffWhiteBrush"); dFileTB.Background = (Brush)FindResource("BackgroundDarkBrush"); DiffEntries.Children.Add(dFileTB); foreach (Difference diff in diffFile.Differences) { DiffViewer diffViewer = new DiffViewer() { Difference = diff, InfoWidth = 200, MinHeight = 60, Margin = new Thickness(3), Foreground = (Brush)FindResource("OffWhiteBrush"), InfoBackground = (Brush)FindResource("BackgroundDarkBrush"), BorderBrush = (Brush)FindResource("HighlightGreyBrush"), Cursor = Cursors.Hand, BorderThickness = new Thickness(2) }; diffViewer.Click += DiffViewer_Click; DiffEntries.Children.Add(diffViewer); Differences.Add(diffViewer); } } }