diff --git a/src/AddIns/Analysis/CodeCoverage/Project/CodeCoverage.addin b/src/AddIns/Analysis/CodeCoverage/Project/CodeCoverage.addin
index dec489e9f3..c1a204acf9 100644
--- a/src/AddIns/Analysis/CodeCoverage/Project/CodeCoverage.addin
+++ b/src/AddIns/Analysis/CodeCoverage/Project/CodeCoverage.addin
@@ -48,15 +48,10 @@
-
-
-
diff --git a/src/AddIns/Analysis/CodeCoverage/Project/CodeCoverage.csproj b/src/AddIns/Analysis/CodeCoverage/Project/CodeCoverage.csproj
index 0f5ac5a2a7..73dfc7344f 100644
--- a/src/AddIns/Analysis/CodeCoverage/Project/CodeCoverage.csproj
+++ b/src/AddIns/Analysis/CodeCoverage/Project/CodeCoverage.csproj
@@ -99,8 +99,8 @@
-
-
+
+
@@ -144,6 +144,10 @@
ICSharpCode.Core.WinForms
False
+
+ {8035765F-D51F-4A0C-A746-2FD100E19419}
+ ICSharpCode.SharpDevelop.Widgets
+
{1F261725-6318-4434-A1B1-6C70CE4CD324}
UnitTesting
diff --git a/src/AddIns/Analysis/CodeCoverage/Project/Resources/CodeCoverageOptionsPanel.xfrm b/src/AddIns/Analysis/CodeCoverage/Project/Resources/old_CodeCoverageOptionsPanel.xfrm
similarity index 100%
rename from src/AddIns/Analysis/CodeCoverage/Project/Resources/CodeCoverageOptionsPanel.xfrm
rename to src/AddIns/Analysis/CodeCoverage/Project/Resources/old_CodeCoverageOptionsPanel.xfrm
diff --git a/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageOptionsPanelXaml.xaml b/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageOptionsPanelXaml.xaml
index 35c04952af..5754eb3315 100644
--- a/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageOptionsPanelXaml.xaml
+++ b/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageOptionsPanelXaml.xaml
@@ -1,46 +1,83 @@
-
-
+
+
+
+
-
+
+
+
-
+
-
-
-
+
-
+
+
+
+
-
+
-
-
+
+
-
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageOptionsPanelXaml.xaml.cs b/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageOptionsPanelXaml.xaml.cs
index d533991097..c4bcbd3b74 100644
--- a/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageOptionsPanelXaml.xaml.cs
+++ b/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageOptionsPanelXaml.xaml.cs
@@ -8,9 +8,11 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
+using System.Globalization;
using System.Text;
using System.Windows;
using System.Windows.Controls;
+using System.Windows.Controls.Primitives;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
@@ -18,23 +20,92 @@ using System.Windows.Media;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Gui;
+using ICSharpCode.SharpDevelop.Widgets;
namespace ICSharpCode.CodeCoverage
{
///
/// Interaction logic for CodeCoverageOptionsPanelXaml.xaml
///
- public partial class CodeCoverageOptionsPanelXaml : OptionPanel
+ public partial class CodeCoverageOptionsPanel : OptionPanel
{
- public CodeCoverageOptionsPanelXaml()
+
+ public CodeCoverageOptionsPanel()
{
InitializeComponent();
- DisplayItems = new ObservableCollection();
DataContext = this;
+ DisplayItems = new ObservableCollection();
DisplayItems.Add(new CodeCoverageDisplayItem(StringParser.Parse("${res:ICSharpCode.CodeCoverage.CodeCovered}"), CodeCoverageOptions.VisitedColorProperty, CodeCoverageOptions.VisitedColor, CodeCoverageOptions.VisitedForeColorProperty, CodeCoverageOptions.VisitedForeColor));
DisplayItems.Add(new CodeCoverageDisplayItem(StringParser.Parse("${res:ICSharpCode.CodeCoverage.CodeNotCovered}"), CodeCoverageOptions.NotVisitedColorProperty, CodeCoverageOptions.NotVisitedColor, CodeCoverageOptions.NotVisitedForeColorProperty, CodeCoverageOptions.NotVisitedForeColor));
+ DisplayItem = DisplayItems[0];
}
+ CodeCoverageDisplayItem displayItem;
+
+ public CodeCoverageDisplayItem DisplayItem {
+ get { return displayItem; }
+ set { displayItem = value;
+ base.RaisePropertyChanged(() => DisplayItem);
+ ShowColors();
+ }
+ }
+
+
+ private System.Windows.Media.Color foreGroundColor;
+
+ public Color ForeGroundColor {
+ get { return foreGroundColor; }
+ set {
+ foreGroundColor = value;
+ RaisePropertyChanged(() => ForeGroundColor);
+ DisplayItem.ForeColor = SetColor(ForeGroundColor);
+ }
+ }
+
+
+ private System.Windows.Media.Color backGroundColor;
+
+ public Color BackGroundColor {
+ get { return backGroundColor; }
+ set { backGroundColor = value;
+ RaisePropertyChanged(() => BackGroundColor);
+ DisplayItem.BackColor = SetColor(BackGroundColor);
+ }
+ }
+
+
+ public override bool SaveOptions()
+ {
+ bool codeCoverageColorsChanged = false;
+
+ foreach (CodeCoverageDisplayItem item in displayItemsListBox.Items) {
+ if (item.HasChanged) {
+ CodeCoverageOptions.Properties.Set(item.ForeColorPropertyName, item.ForeColor);
+ CodeCoverageOptions.Properties.Set(item.BackColorPropertyName, item.BackColor);
+ codeCoverageColorsChanged = true;
+ }
+ }
+
+ if (codeCoverageColorsChanged) {
+ CodeCoverageService.RefreshCodeCoverageHighlights();
+ }
+ return base.SaveOptions();
+ }
+
+ private void ShowColors()
+ {
+ System.Drawing.Color clr = DisplayItem.ForeColor;
+ ForeGroundColor = System.Windows.Media.Color.FromArgb(clr.A, clr.R, clr.G, clr.B);
+ clr = DisplayItem.BackColor;
+ BackGroundColor = System.Windows.Media.Color.FromArgb(clr.A, clr.R, clr.G, clr.B);
+ }
+
+
+ private System.Drawing.Color SetColor (System.Windows.Media.Color color)
+ {
+ return System.Drawing.Color.FromArgb(color.A,color.R,color.G,color.B);
+ }
+
public ObservableCollection DisplayItems {get; private set;}
}
}
\ No newline at end of file
diff --git a/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageOptionsPanel.cs b/src/AddIns/Analysis/CodeCoverage/Project/Src/old_CodeCoverageOptionsPanel.cs
similarity index 98%
rename from src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageOptionsPanel.cs
rename to src/AddIns/Analysis/CodeCoverage/Project/Src/old_CodeCoverageOptionsPanel.cs
index 904ba909f9..c042ea4ffd 100644
--- a/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageOptionsPanel.cs
+++ b/src/AddIns/Analysis/CodeCoverage/Project/Src/old_CodeCoverageOptionsPanel.cs
@@ -10,7 +10,7 @@ using ICSharpCode.SharpDevelop.Gui;
namespace ICSharpCode.CodeCoverage
{
- public class CodeCoverageOptionsPanel : XmlFormsOptionPanel
+ public class old_CodeCoverageOptionsPanel : XmlFormsOptionPanel
{
static readonly string foregroundCustomColourButtonName = "foregroundCustomColourButton";
static readonly string backgroundCustomColourButtonName = "backgroundCustomColourButton";