[mapguide-commits] r8110 - in trunk/Tools/Maestro: Maestro.Editors/LayerDefinition/Vector/Thematics OSGeo.MapGuide.MaestroAPI

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Tue May 6 12:17:13 PDT 2014


Author: jng
Date: 2014-05-06 12:17:12 -0700 (Tue, 06 May 2014)
New Revision: 8110

Modified:
   trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Thematics/ThemeCreator.cs
   trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Thematics/ThemeCreator.designer.cs
   trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Thematics/ThemeCreator.resx
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Utility.cs
Log:
#1229: Add support for custom border colors when generating a theme. Options available include:
 - Using a pre-defined color
 - Computing a brighter or darker version of the theme color based on positive or negative percentage

Modified: trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Thematics/ThemeCreator.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Thematics/ThemeCreator.cs	2014-05-06 18:22:49 UTC (rev 8109)
+++ trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Thematics/ThemeCreator.cs	2014-05-06 19:17:12 UTC (rev 8110)
@@ -190,6 +190,8 @@
 
             GradientFromColor.ResetColors();
             GradientToColor.ResetColors();
+            cmbBorderColor.ResetColors();
+            cmbBorderColor.CurrentColor = Color.Black;
 
             if (m_colorBrewer == null)
                 m_colorBrewer = ColorBrewer.ParseCSV(GetCsvPath());
@@ -249,6 +251,15 @@
                 OKBtn.Enabled =
                     true;
 
+                IPointVectorStyle pts = m_ruleCollection as IPointVectorStyle;
+                ILineVectorStyle lts = m_ruleCollection as ILineVectorStyle;
+                IAreaVectorStyle ats = m_ruleCollection as IAreaVectorStyle;
+                ICompositeTypeStyle cts = m_ruleCollection as ICompositeTypeStyle;
+
+                //Border color not applicable for line or composite styles
+                if (lts != null || cts != null)
+                    grpBorderColor.Enabled = false;
+
                 m_values = new Dictionary<object, long>();
 
                 PropertyDefinition col = m_featureClass.FindProperty(ColumnCombo.Text);
@@ -730,14 +741,22 @@
                     int topy = bmp.Height / 4;
                     int height = topy * 2;
 
-
                     foreach (Color? c in colors)
                     {
                         if (!c.HasValue)
                             g.DrawString("...", new Font(FontFamily.GenericSansSerif, 12), Brushes.Black, x, topy);
                         else
                         {
-                            g.DrawRectangle(Pens.Black, x, topy, PREVIEW_ITEM_BOX_WIDTH, height);
+                            Pen p = null;
+                            if (rdPredefinedBorderColor.Checked)
+                                p = new Pen(cmbBorderColor.CurrentColor);
+                            else if (rdDarkenBorder.Checked)
+                                p = new Pen(Utility.ChangeColorBrightness(c.Value, (float)((float)numDarkenBorderPc.Value / 100.0f)));
+
+                            if (p == null)
+                                p = Pens.Black;
+
+                            g.DrawRectangle(p, x, topy, PREVIEW_ITEM_BOX_WIDTH, height);
                             using (Brush b = new SolidBrush(c.Value))
                                 g.FillRectangle(b, x, topy, PREVIEW_ITEM_BOX_WIDTH, height);
                         }
@@ -1392,7 +1411,9 @@
                 var sym = r.PointSymbolization2D.Symbol;
                 if (sym.Type == PointSymbolType.Mark)
                 {
-                    ((IMarkSymbol)sym).Fill.ForegroundColor = fillAlpha + Utility.SerializeHTMLColor(entry.Color, string.IsNullOrEmpty(fillAlpha));
+                    var mark = ((IMarkSymbol)sym);
+                    mark.Fill.ForegroundColor = fillAlpha + Utility.SerializeHTMLColor(entry.Color, string.IsNullOrEmpty(fillAlpha));
+                    ApplyBorderColor(entry, mark.Edge);
                 }
                 else if (sym.Type == PointSymbolType.Font)
                 {
@@ -1464,11 +1485,22 @@
                 r.Filter = entry.Filter;
                 r.LegendLabel = entry.Label;
                 r.AreaSymbolization2D.Fill.ForegroundColor = fillAlpha + Utility.SerializeHTMLColor(entry.Color, string.IsNullOrEmpty(fillAlpha));
-
+                if (r.AreaSymbolization2D.Stroke != null)
+                {
+                    ApplyBorderColor(entry, r.AreaSymbolization2D.Stroke);
+                }
                 col.AddRule(r);
             }
         }
 
+        private void ApplyBorderColor(RuleItem entry, IStroke border)
+        {
+            if (rdPredefinedBorderColor.Checked)
+                border.Color = Utility.SerializeHTMLColor(cmbBorderColor.CurrentColor, true);
+            else if (rdDarkenBorder.Checked)
+                border.Color = Utility.SerializeHTMLColor(Utility.ChangeColorBrightness(entry.Color, (float)(Convert.ToSingle(numDarkenBorderPc.Value) / 100.0f)), true);
+        }
+
         private void CancelBtn_Click(object sender, EventArgs e)
         {
             this.DialogResult = DialogResult.Cancel;
@@ -1709,5 +1741,25 @@
             if (expr != null)
                 txtFilter.Text = expr;
         }
+
+        private void rdPredefinedBorderColor_CheckedChanged(object sender, EventArgs e)
+        {
+            RefreshPreview();
+        }
+
+        private void rdDarkenBorder_CheckedChanged(object sender, EventArgs e)
+        {
+            RefreshPreview();
+        }
+
+        private void cmbBorderColor_SelectedIndexChanged(object sender, EventArgs e)
+        {
+            RefreshPreview();
+        }
+
+        private void numDarkenBorderPc_ValueChanged(object sender, EventArgs e)
+        {
+            RefreshPreview();
+        }
     }
 }

Modified: trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Thematics/ThemeCreator.designer.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Thematics/ThemeCreator.designer.cs	2014-05-06 18:22:49 UTC (rev 8109)
+++ trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Thematics/ThemeCreator.designer.cs	2014-05-06 19:17:12 UTC (rev 8110)
@@ -60,15 +60,16 @@
             this.chkUseFirstRuleAsTemplate = new System.Windows.Forms.CheckBox();
             this.RuleCountPanel = new System.Windows.Forms.Panel();
             this.DisplayGroup = new System.Windows.Forms.GroupBox();
+            this.grpBorderColor = new System.Windows.Forms.GroupBox();
+            this.numDarkenBorderPc = new System.Windows.Forms.NumericUpDown();
+            this.rdDarkenBorder = new System.Windows.Forms.RadioButton();
+            this.rdPredefinedBorderColor = new System.Windows.Forms.RadioButton();
             this.btnFlipColorBrewer = new System.Windows.Forms.Button();
             this.ColorBrewerPanel = new System.Windows.Forms.Panel();
             this.label3 = new System.Windows.Forms.Label();
             this.ColorBrewerDataType = new System.Windows.Forms.ComboBox();
-            this.ColorBrewerColorSet = new Maestro.Editors.Common.CustomCombo();
             this.ColorBrewerLabel = new System.Windows.Forms.LinkLabel();
             this.panel2 = new System.Windows.Forms.Panel();
-            this.GradientToColor = new Maestro.Editors.Common.ColorComboBox();
-            this.GradientFromColor = new Maestro.Editors.Common.ColorComboBox();
             this.label4 = new System.Windows.Forms.Label();
             this.ColorBrewerColors = new System.Windows.Forms.RadioButton();
             this.GradientColors = new System.Windows.Forms.RadioButton();
@@ -78,6 +79,10 @@
             this.CancelBtn = new System.Windows.Forms.Button();
             this.OKBtn = new System.Windows.Forms.Button();
             this.grpThemeGeneration = new System.Windows.Forms.GroupBox();
+            this.cmbBorderColor = new Maestro.Editors.Common.ColorComboBox();
+            this.ColorBrewerColorSet = new Maestro.Editors.Common.CustomCombo();
+            this.GradientToColor = new Maestro.Editors.Common.ColorComboBox();
+            this.GradientFromColor = new Maestro.Editors.Common.ColorComboBox();
             this.colorComboBox1 = new Maestro.Editors.Common.ColorComboBox();
             ((System.ComponentModel.ISupportInitialize)(this.RuleCount)).BeginInit();
             this.DataGroup.SuspendLayout();
@@ -86,6 +91,8 @@
             this.GroupPanel.SuspendLayout();
             this.RuleCountPanel.SuspendLayout();
             this.DisplayGroup.SuspendLayout();
+            this.grpBorderColor.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.numDarkenBorderPc)).BeginInit();
             this.ColorBrewerPanel.SuspendLayout();
             this.panel2.SuspendLayout();
             this.PreviewGroup.SuspendLayout();
@@ -320,6 +327,7 @@
             // DisplayGroup
             // 
             resources.ApplyResources(this.DisplayGroup, "DisplayGroup");
+            this.DisplayGroup.Controls.Add(this.grpBorderColor);
             this.DisplayGroup.Controls.Add(this.btnFlipColorBrewer);
             this.DisplayGroup.Controls.Add(this.ColorBrewerPanel);
             this.DisplayGroup.Controls.Add(this.ColorBrewerLabel);
@@ -329,6 +337,43 @@
             this.DisplayGroup.Name = "DisplayGroup";
             this.DisplayGroup.TabStop = false;
             // 
+            // grpBorderColor
+            // 
+            this.grpBorderColor.Controls.Add(this.numDarkenBorderPc);
+            this.grpBorderColor.Controls.Add(this.cmbBorderColor);
+            this.grpBorderColor.Controls.Add(this.rdDarkenBorder);
+            this.grpBorderColor.Controls.Add(this.rdPredefinedBorderColor);
+            resources.ApplyResources(this.grpBorderColor, "grpBorderColor");
+            this.grpBorderColor.Name = "grpBorderColor";
+            this.grpBorderColor.TabStop = false;
+            // 
+            // numDarkenBorderPc
+            // 
+            resources.ApplyResources(this.numDarkenBorderPc, "numDarkenBorderPc");
+            this.numDarkenBorderPc.Minimum = new decimal(new int[] {
+            100,
+            0,
+            0,
+            -2147483648});
+            this.numDarkenBorderPc.Name = "numDarkenBorderPc";
+            this.numDarkenBorderPc.ValueChanged += new System.EventHandler(this.numDarkenBorderPc_ValueChanged);
+            // 
+            // rdDarkenBorder
+            // 
+            resources.ApplyResources(this.rdDarkenBorder, "rdDarkenBorder");
+            this.rdDarkenBorder.Name = "rdDarkenBorder";
+            this.rdDarkenBorder.UseVisualStyleBackColor = true;
+            this.rdDarkenBorder.CheckedChanged += new System.EventHandler(this.rdDarkenBorder_CheckedChanged);
+            // 
+            // rdPredefinedBorderColor
+            // 
+            resources.ApplyResources(this.rdPredefinedBorderColor, "rdPredefinedBorderColor");
+            this.rdPredefinedBorderColor.Checked = true;
+            this.rdPredefinedBorderColor.Name = "rdPredefinedBorderColor";
+            this.rdPredefinedBorderColor.TabStop = true;
+            this.rdPredefinedBorderColor.UseVisualStyleBackColor = true;
+            this.rdPredefinedBorderColor.CheckedChanged += new System.EventHandler(this.rdPredefinedBorderColor_CheckedChanged);
+            // 
             // btnFlipColorBrewer
             // 
             resources.ApplyResources(this.btnFlipColorBrewer, "btnFlipColorBrewer");
@@ -357,14 +402,6 @@
             this.ColorBrewerDataType.Name = "ColorBrewerDataType";
             this.ColorBrewerDataType.SelectedIndexChanged += new System.EventHandler(this.ColorBrewerDataType_SelectedIndexChanged);
             // 
-            // ColorBrewerColorSet
-            // 
-            this.ColorBrewerColorSet.DropDownWidth = 150;
-            this.ColorBrewerColorSet.FormattingEnabled = true;
-            resources.ApplyResources(this.ColorBrewerColorSet, "ColorBrewerColorSet");
-            this.ColorBrewerColorSet.Name = "ColorBrewerColorSet";
-            this.ColorBrewerColorSet.SelectedIndexChanged += new System.EventHandler(this.ColorBrewerColorSet_SelectedIndexChanged);
-            // 
             // ColorBrewerLabel
             // 
             resources.ApplyResources(this.ColorBrewerLabel, "ColorBrewerLabel");
@@ -380,20 +417,6 @@
             resources.ApplyResources(this.panel2, "panel2");
             this.panel2.Name = "panel2";
             // 
-            // GradientToColor
-            // 
-            this.GradientToColor.FormattingEnabled = true;
-            resources.ApplyResources(this.GradientToColor, "GradientToColor");
-            this.GradientToColor.Name = "GradientToColor";
-            this.GradientToColor.SelectedIndexChanged += new System.EventHandler(this.GradientToColor_SelectedIndexChanged);
-            // 
-            // GradientFromColor
-            // 
-            this.GradientFromColor.FormattingEnabled = true;
-            resources.ApplyResources(this.GradientFromColor, "GradientFromColor");
-            this.GradientFromColor.Name = "GradientFromColor";
-            this.GradientFromColor.SelectedIndexChanged += new System.EventHandler(this.GradientFromColor_SelectedIndexChanged);
-            // 
             // label4
             // 
             resources.ApplyResources(this.label4, "label4");
@@ -459,6 +482,35 @@
             this.grpThemeGeneration.Name = "grpThemeGeneration";
             this.grpThemeGeneration.TabStop = false;
             // 
+            // cmbBorderColor
+            // 
+            this.cmbBorderColor.FormattingEnabled = true;
+            resources.ApplyResources(this.cmbBorderColor, "cmbBorderColor");
+            this.cmbBorderColor.Name = "cmbBorderColor";
+            this.cmbBorderColor.SelectedIndexChanged += new System.EventHandler(this.cmbBorderColor_SelectedIndexChanged);
+            // 
+            // ColorBrewerColorSet
+            // 
+            this.ColorBrewerColorSet.DropDownWidth = 150;
+            this.ColorBrewerColorSet.FormattingEnabled = true;
+            resources.ApplyResources(this.ColorBrewerColorSet, "ColorBrewerColorSet");
+            this.ColorBrewerColorSet.Name = "ColorBrewerColorSet";
+            this.ColorBrewerColorSet.SelectedIndexChanged += new System.EventHandler(this.ColorBrewerColorSet_SelectedIndexChanged);
+            // 
+            // GradientToColor
+            // 
+            this.GradientToColor.FormattingEnabled = true;
+            resources.ApplyResources(this.GradientToColor, "GradientToColor");
+            this.GradientToColor.Name = "GradientToColor";
+            this.GradientToColor.SelectedIndexChanged += new System.EventHandler(this.GradientToColor_SelectedIndexChanged);
+            // 
+            // GradientFromColor
+            // 
+            this.GradientFromColor.FormattingEnabled = true;
+            resources.ApplyResources(this.GradientFromColor, "GradientFromColor");
+            this.GradientFromColor.Name = "GradientFromColor";
+            this.GradientFromColor.SelectedIndexChanged += new System.EventHandler(this.GradientFromColor_SelectedIndexChanged);
+            // 
             // colorComboBox1
             // 
             resources.ApplyResources(this.colorComboBox1, "colorComboBox1");
@@ -488,6 +540,9 @@
             this.RuleCountPanel.PerformLayout();
             this.DisplayGroup.ResumeLayout(false);
             this.DisplayGroup.PerformLayout();
+            this.grpBorderColor.ResumeLayout(false);
+            this.grpBorderColor.PerformLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.numDarkenBorderPc)).EndInit();
             this.ColorBrewerPanel.ResumeLayout(false);
             this.ColorBrewerPanel.PerformLayout();
             this.panel2.ResumeLayout(false);
@@ -552,5 +607,10 @@
         private System.Windows.Forms.Button btnFilter;
         private System.Windows.Forms.TextBox txtFilter;
         private System.Windows.Forms.Label label9;
+        private System.Windows.Forms.GroupBox grpBorderColor;
+        private System.Windows.Forms.NumericUpDown numDarkenBorderPc;
+        private ColorComboBox cmbBorderColor;
+        private System.Windows.Forms.RadioButton rdDarkenBorder;
+        private System.Windows.Forms.RadioButton rdPredefinedBorderColor;
     }
 }
\ No newline at end of file

Modified: trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Thematics/ThemeCreator.resx
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Thematics/ThemeCreator.resx	2014-05-06 18:22:49 UTC (rev 8109)
+++ trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/Thematics/ThemeCreator.resx	2014-05-06 19:17:12 UTC (rev 8110)
@@ -277,7 +277,7 @@
     <value>111, 19</value>
   </data>
   <data name="ColumnCombo.Size" type="System.Drawing.Size, System.Drawing">
-    <value>198, 21</value>
+    <value>245, 21</value>
   </data>
   <data name="ColumnCombo.TabIndex" type="System.Int32, mscorlib">
     <value>6</value>
@@ -301,7 +301,7 @@
     <value>96, 0</value>
   </data>
   <data name="RuleCount.Size" type="System.Drawing.Size, System.Drawing">
-    <value>211, 20</value>
+    <value>258, 20</value>
   </data>
   <data name="RuleCount.TabIndex" type="System.Int32, mscorlib">
     <value>7</value>
@@ -337,7 +337,7 @@
     <value>97, 0</value>
   </data>
   <data name="AggregateCombo.Size" type="System.Drawing.Size, System.Drawing">
-    <value>198, 21</value>
+    <value>245, 21</value>
   </data>
   <data name="AggregateCombo.TabIndex" type="System.Int32, mscorlib">
     <value>8</value>
@@ -357,6 +357,78 @@
   <data name="DataGroup.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
     <value>Top, Left, Right</value>
   </data>
+  <data name=">>rdValuesFromLookup.Name" xml:space="preserve">
+    <value>rdValuesFromLookup</value>
+  </data>
+  <data name=">>rdValuesFromLookup.Type" xml:space="preserve">
+    <value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>rdValuesFromLookup.Parent" xml:space="preserve">
+    <value>DataGroup</value>
+  </data>
+  <data name=">>rdValuesFromLookup.ZOrder" xml:space="preserve">
+    <value>0</value>
+  </data>
+  <data name=">>rdValuesFromClass.Name" xml:space="preserve">
+    <value>rdValuesFromClass</value>
+  </data>
+  <data name=">>rdValuesFromClass.Type" xml:space="preserve">
+    <value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>rdValuesFromClass.Parent" xml:space="preserve">
+    <value>DataGroup</value>
+  </data>
+  <data name=">>rdValuesFromClass.ZOrder" xml:space="preserve">
+    <value>1</value>
+  </data>
+  <data name=">>grpValuesFromLookup.Name" xml:space="preserve">
+    <value>grpValuesFromLookup</value>
+  </data>
+  <data name=">>grpValuesFromLookup.Type" xml:space="preserve">
+    <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>grpValuesFromLookup.Parent" xml:space="preserve">
+    <value>DataGroup</value>
+  </data>
+  <data name=">>grpValuesFromLookup.ZOrder" xml:space="preserve">
+    <value>4</value>
+  </data>
+  <data name=">>grpValuesFromClass.Name" xml:space="preserve">
+    <value>grpValuesFromClass</value>
+  </data>
+  <data name=">>grpValuesFromClass.Type" xml:space="preserve">
+    <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>grpValuesFromClass.Parent" xml:space="preserve">
+    <value>DataGroup</value>
+  </data>
+  <data name=">>grpValuesFromClass.ZOrder" xml:space="preserve">
+    <value>5</value>
+  </data>
+  <data name="DataGroup.Location" type="System.Drawing.Point, System.Drawing">
+    <value>8, 8</value>
+  </data>
+  <data name="DataGroup.Size" type="System.Drawing.Size, System.Drawing">
+    <value>377, 277</value>
+  </data>
+  <data name="DataGroup.TabIndex" type="System.Int32, mscorlib">
+    <value>9</value>
+  </data>
+  <data name="DataGroup.Text" xml:space="preserve">
+    <value>Data setup</value>
+  </data>
+  <data name=">>DataGroup.Name" xml:space="preserve">
+    <value>DataGroup</value>
+  </data>
+  <data name=">>DataGroup.Type" xml:space="preserve">
+    <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>DataGroup.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name=">>DataGroup.ZOrder" xml:space="preserve">
+    <value>4</value>
+  </data>
   <data name="rdValuesFromLookup.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
   </data>
@@ -420,6 +492,183 @@
   <data name="grpValuesFromLookup.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
     <value>Top, Left, Right</value>
   </data>
+  <data name=">>btnFilter.Name" xml:space="preserve">
+    <value>btnFilter</value>
+  </data>
+  <data name=">>btnFilter.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>btnFilter.Parent" xml:space="preserve">
+    <value>grpValuesFromLookup</value>
+  </data>
+  <data name=">>btnFilter.ZOrder" xml:space="preserve">
+    <value>0</value>
+  </data>
+  <data name=">>txtFilter.Name" xml:space="preserve">
+    <value>txtFilter</value>
+  </data>
+  <data name=">>txtFilter.Type" xml:space="preserve">
+    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>txtFilter.Parent" xml:space="preserve">
+    <value>grpValuesFromLookup</value>
+  </data>
+  <data name=">>txtFilter.ZOrder" xml:space="preserve">
+    <value>1</value>
+  </data>
+  <data name=">>label9.Name" xml:space="preserve">
+    <value>label9</value>
+  </data>
+  <data name=">>label9.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>label9.Parent" xml:space="preserve">
+    <value>grpValuesFromLookup</value>
+  </data>
+  <data name=">>label9.ZOrder" xml:space="preserve">
+    <value>2</value>
+  </data>
+  <data name=">>btnUpdateThemeParameters.Name" xml:space="preserve">
+    <value>btnUpdateThemeParameters</value>
+  </data>
+  <data name=">>btnUpdateThemeParameters.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>btnUpdateThemeParameters.Parent" xml:space="preserve">
+    <value>grpValuesFromLookup</value>
+  </data>
+  <data name=">>btnUpdateThemeParameters.ZOrder" xml:space="preserve">
+    <value>3</value>
+  </data>
+  <data name=">>btnBrowseFeatureSource.Name" xml:space="preserve">
+    <value>btnBrowseFeatureSource</value>
+  </data>
+  <data name=">>btnBrowseFeatureSource.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>btnBrowseFeatureSource.Parent" xml:space="preserve">
+    <value>grpValuesFromLookup</value>
+  </data>
+  <data name=">>btnBrowseFeatureSource.ZOrder" xml:space="preserve">
+    <value>4</value>
+  </data>
+  <data name=">>cmbValueProperty.Name" xml:space="preserve">
+    <value>cmbValueProperty</value>
+  </data>
+  <data name=">>cmbValueProperty.Type" xml:space="preserve">
+    <value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>cmbValueProperty.Parent" xml:space="preserve">
+    <value>grpValuesFromLookup</value>
+  </data>
+  <data name=">>cmbValueProperty.ZOrder" xml:space="preserve">
+    <value>5</value>
+  </data>
+  <data name=">>label8.Name" xml:space="preserve">
+    <value>label8</value>
+  </data>
+  <data name=">>label8.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>label8.Parent" xml:space="preserve">
+    <value>grpValuesFromLookup</value>
+  </data>
+  <data name=">>label8.ZOrder" xml:space="preserve">
+    <value>6</value>
+  </data>
+  <data name=">>cmbKeyProperty.Name" xml:space="preserve">
+    <value>cmbKeyProperty</value>
+  </data>
+  <data name=">>cmbKeyProperty.Type" xml:space="preserve">
+    <value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>cmbKeyProperty.Parent" xml:space="preserve">
+    <value>grpValuesFromLookup</value>
+  </data>
+  <data name=">>cmbKeyProperty.ZOrder" xml:space="preserve">
+    <value>7</value>
+  </data>
+  <data name=">>label7.Name" xml:space="preserve">
+    <value>label7</value>
+  </data>
+  <data name=">>label7.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>label7.Parent" xml:space="preserve">
+    <value>grpValuesFromLookup</value>
+  </data>
+  <data name=">>label7.ZOrder" xml:space="preserve">
+    <value>8</value>
+  </data>
+  <data name=">>cmbFeatureClass.Name" xml:space="preserve">
+    <value>cmbFeatureClass</value>
+  </data>
+  <data name=">>cmbFeatureClass.Type" xml:space="preserve">
+    <value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>cmbFeatureClass.Parent" xml:space="preserve">
+    <value>grpValuesFromLookup</value>
+  </data>
+  <data name=">>cmbFeatureClass.ZOrder" xml:space="preserve">
+    <value>9</value>
+  </data>
+  <data name=">>label6.Name" xml:space="preserve">
+    <value>label6</value>
+  </data>
+  <data name=">>label6.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>label6.Parent" xml:space="preserve">
+    <value>grpValuesFromLookup</value>
+  </data>
+  <data name=">>label6.ZOrder" xml:space="preserve">
+    <value>10</value>
+  </data>
+  <data name=">>txtFeatureSource.Name" xml:space="preserve">
+    <value>txtFeatureSource</value>
+  </data>
+  <data name=">>txtFeatureSource.Type" xml:space="preserve">
+    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>txtFeatureSource.Parent" xml:space="preserve">
+    <value>grpValuesFromLookup</value>
+  </data>
+  <data name=">>txtFeatureSource.ZOrder" xml:space="preserve">
+    <value>11</value>
+  </data>
+  <data name=">>label5.Name" xml:space="preserve">
+    <value>label5</value>
+  </data>
+  <data name=">>label5.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>label5.Parent" xml:space="preserve">
+    <value>grpValuesFromLookup</value>
+  </data>
+  <data name=">>label5.ZOrder" xml:space="preserve">
+    <value>12</value>
+  </data>
+  <data name="grpValuesFromLookup.Location" type="System.Drawing.Point, System.Drawing">
+    <value>10, 114</value>
+  </data>
+  <data name="grpValuesFromLookup.Size" type="System.Drawing.Size, System.Drawing">
+    <value>355, 154</value>
+  </data>
+  <data name="grpValuesFromLookup.TabIndex" type="System.Int32, mscorlib">
+    <value>13</value>
+  </data>
+  <data name=">>grpValuesFromLookup.Name" xml:space="preserve">
+    <value>grpValuesFromLookup</value>
+  </data>
+  <data name=">>grpValuesFromLookup.Type" xml:space="preserve">
+    <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>grpValuesFromLookup.Parent" xml:space="preserve">
+    <value>DataGroup</value>
+  </data>
+  <data name=">>grpValuesFromLookup.ZOrder" xml:space="preserve">
+    <value>4</value>
+  </data>
   <data name="btnFilter.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
     <value>Top, Right</value>
   </data>
@@ -427,7 +676,7 @@
     <value>NoControl</value>
   </data>
   <data name="btnFilter.Location" type="System.Drawing.Point, System.Drawing">
-    <value>278, 122</value>
+    <value>325, 122</value>
   </data>
   <data name="btnFilter.Size" type="System.Drawing.Size, System.Drawing">
     <value>25, 23</value>
@@ -457,7 +706,7 @@
     <value>103, 124</value>
   </data>
   <data name="txtFilter.Size" type="System.Drawing.Size, System.Drawing">
-    <value>169, 20</value>
+    <value>216, 20</value>
   </data>
   <data name="txtFilter.TabIndex" type="System.Int32, mscorlib">
     <value>20</value>
@@ -510,8 +759,11 @@
   <data name="btnUpdateThemeParameters.Enabled" type="System.Boolean, mscorlib">
     <value>False</value>
   </data>
+  <data name="btnUpdateThemeParameters.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
   <data name="btnUpdateThemeParameters.Location" type="System.Drawing.Point, System.Drawing">
-    <value>246, 70</value>
+    <value>293, 70</value>
   </data>
   <data name="btnUpdateThemeParameters.Size" type="System.Drawing.Size, System.Drawing">
     <value>57, 48</value>
@@ -541,7 +793,7 @@
     <value>NoControl</value>
   </data>
   <data name="btnBrowseFeatureSource.Location" type="System.Drawing.Point, System.Drawing">
-    <value>278, 15</value>
+    <value>325, 15</value>
   </data>
   <data name="btnBrowseFeatureSource.Size" type="System.Drawing.Size, System.Drawing">
     <value>25, 23</value>
@@ -571,7 +823,7 @@
     <value>103, 97</value>
   </data>
   <data name="cmbValueProperty.Size" type="System.Drawing.Size, System.Drawing">
-    <value>137, 21</value>
+    <value>184, 21</value>
   </data>
   <data name="cmbValueProperty.TabIndex" type="System.Int32, mscorlib">
     <value>16</value>
@@ -625,7 +877,7 @@
     <value>103, 70</value>
   </data>
   <data name="cmbKeyProperty.Size" type="System.Drawing.Size, System.Drawing">
-    <value>137, 21</value>
+    <value>184, 21</value>
   </data>
   <data name="cmbKeyProperty.TabIndex" type="System.Int32, mscorlib">
     <value>14</value>
@@ -679,7 +931,7 @@
     <value>103, 43</value>
   </data>
   <data name="cmbFeatureClass.Size" type="System.Drawing.Size, System.Drawing">
-    <value>200, 21</value>
+    <value>247, 21</value>
   </data>
   <data name="cmbFeatureClass.TabIndex" type="System.Int32, mscorlib">
     <value>12</value>
@@ -733,7 +985,7 @@
     <value>103, 17</value>
   </data>
   <data name="txtFeatureSource.Size" type="System.Drawing.Size, System.Drawing">
-    <value>169, 20</value>
+    <value>216, 20</value>
   </data>
   <data name="txtFeatureSource.TabIndex" type="System.Int32, mscorlib">
     <value>1</value>
@@ -780,42 +1032,9 @@
   <data name=">>label5.ZOrder" xml:space="preserve">
     <value>12</value>
   </data>
-  <data name="grpValuesFromLookup.Location" type="System.Drawing.Point, System.Drawing">
-    <value>10, 114</value>
-  </data>
-  <data name="grpValuesFromLookup.Size" type="System.Drawing.Size, System.Drawing">
-    <value>308, 154</value>
-  </data>
-  <data name="grpValuesFromLookup.TabIndex" type="System.Int32, mscorlib">
-    <value>13</value>
-  </data>
-  <data name=">>grpValuesFromLookup.Name" xml:space="preserve">
-    <value>grpValuesFromLookup</value>
-  </data>
-  <data name=">>grpValuesFromLookup.Type" xml:space="preserve">
-    <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name=">>grpValuesFromLookup.Parent" xml:space="preserve">
-    <value>DataGroup</value>
-  </data>
-  <data name=">>grpValuesFromLookup.ZOrder" xml:space="preserve">
-    <value>4</value>
-  </data>
   <data name="grpValuesFromClass.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
     <value>Top, Left, Right</value>
   </data>
-  <data name="GroupPanel.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
-    <value>Top, Left, Right</value>
-  </data>
-  <data name="GroupPanel.Location" type="System.Drawing.Point, System.Drawing">
-    <value>5, 19</value>
-  </data>
-  <data name="GroupPanel.Size" type="System.Drawing.Size, System.Drawing">
-    <value>295, 24</value>
-  </data>
-  <data name="GroupPanel.TabIndex" type="System.Int32, mscorlib">
-    <value>10</value>
-  </data>
   <data name=">>GroupPanel.Name" xml:space="preserve">
     <value>GroupPanel</value>
   </data>
@@ -832,7 +1051,7 @@
     <value>10, 56</value>
   </data>
   <data name="grpValuesFromClass.Size" type="System.Drawing.Size, System.Drawing">
-    <value>307, 52</value>
+    <value>354, 52</value>
   </data>
   <data name="grpValuesFromClass.TabIndex" type="System.Int32, mscorlib">
     <value>12</value>
@@ -849,29 +1068,29 @@
   <data name=">>grpValuesFromClass.ZOrder" xml:space="preserve">
     <value>5</value>
   </data>
-  <data name="DataGroup.Location" type="System.Drawing.Point, System.Drawing">
-    <value>8, 8</value>
+  <data name="GroupPanel.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+    <value>Top, Left, Right</value>
   </data>
-  <data name="DataGroup.Size" type="System.Drawing.Size, System.Drawing">
-    <value>330, 277</value>
+  <data name="GroupPanel.Location" type="System.Drawing.Point, System.Drawing">
+    <value>5, 19</value>
   </data>
-  <data name="DataGroup.TabIndex" type="System.Int32, mscorlib">
-    <value>9</value>
+  <data name="GroupPanel.Size" type="System.Drawing.Size, System.Drawing">
+    <value>342, 24</value>
   </data>
-  <data name="DataGroup.Text" xml:space="preserve">
-    <value>Data setup</value>
+  <data name="GroupPanel.TabIndex" type="System.Int32, mscorlib">
+    <value>10</value>
   </data>
-  <data name=">>DataGroup.Name" xml:space="preserve">
-    <value>DataGroup</value>
+  <data name=">>GroupPanel.Name" xml:space="preserve">
+    <value>GroupPanel</value>
   </data>
-  <data name=">>DataGroup.Type" xml:space="preserve">
-    <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  <data name=">>GroupPanel.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
-  <data name=">>DataGroup.Parent" xml:space="preserve">
-    <value>$this</value>
+  <data name=">>GroupPanel.Parent" xml:space="preserve">
+    <value>grpValuesFromClass</value>
   </data>
-  <data name=">>DataGroup.ZOrder" xml:space="preserve">
-    <value>4</value>
+  <data name=">>GroupPanel.ZOrder" xml:space="preserve">
+    <value>0</value>
   </data>
   <data name="chkUseFirstRuleAsTemplate.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
     <value>Top, Bottom, Left, Right</value>
@@ -883,7 +1102,7 @@
     <value>158, 49</value>
   </data>
   <data name="chkUseFirstRuleAsTemplate.Size" type="System.Drawing.Size, System.Drawing">
-    <value>165, 48</value>
+    <value>212, 48</value>
   </data>
   <data name="chkUseFirstRuleAsTemplate.TabIndex" type="System.Int32, mscorlib">
     <value>11</value>
@@ -910,7 +1129,7 @@
     <value>10, 19</value>
   </data>
   <data name="RuleCountPanel.Size" type="System.Drawing.Size, System.Drawing">
-    <value>307, 24</value>
+    <value>354, 24</value>
   </data>
   <data name="RuleCountPanel.TabIndex" type="System.Int32, mscorlib">
     <value>9</value>
@@ -930,6 +1149,132 @@
   <data name="DisplayGroup.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
     <value>Top, Left, Right</value>
   </data>
+  <data name="numDarkenBorderPc.Location" type="System.Drawing.Point, System.Drawing">
+    <value>281, 42</value>
+  </data>
+  <data name="numDarkenBorderPc.Size" type="System.Drawing.Size, System.Drawing">
+    <value>64, 20</value>
+  </data>
+  <data name="numDarkenBorderPc.TabIndex" type="System.Int32, mscorlib">
+    <value>4</value>
+  </data>
+  <data name=">>numDarkenBorderPc.Name" xml:space="preserve">
+    <value>numDarkenBorderPc</value>
+  </data>
+  <data name=">>numDarkenBorderPc.Type" xml:space="preserve">
+    <value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>numDarkenBorderPc.Parent" xml:space="preserve">
+    <value>grpBorderColor</value>
+  </data>
+  <data name=">>numDarkenBorderPc.ZOrder" xml:space="preserve">
+    <value>0</value>
+  </data>
+  <data name="cmbBorderColor.Location" type="System.Drawing.Point, System.Drawing">
+    <value>281, 18</value>
+  </data>
+  <data name="cmbBorderColor.Size" type="System.Drawing.Size, System.Drawing">
+    <value>65, 21</value>
+  </data>
+  <data name="cmbBorderColor.TabIndex" type="System.Int32, mscorlib">
+    <value>3</value>
+  </data>
+  <data name=">>cmbBorderColor.Name" xml:space="preserve">
+    <value>cmbBorderColor</value>
+  </data>
+  <data name=">>cmbBorderColor.Type" xml:space="preserve">
+    <value>Maestro.Editors.Common.ColorComboBox, Maestro.Editors, Version=6.0.0.0, Culture=neutral, PublicKeyToken=f526c48929fda856</value>
+  </data>
+  <data name=">>cmbBorderColor.Parent" xml:space="preserve">
+    <value>grpBorderColor</value>
+  </data>
+  <data name=">>cmbBorderColor.ZOrder" xml:space="preserve">
+    <value>1</value>
+  </data>
+  <data name="rdDarkenBorder.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="rdDarkenBorder.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="rdDarkenBorder.Location" type="System.Drawing.Point, System.Drawing">
+    <value>10, 42</value>
+  </data>
+  <data name="rdDarkenBorder.Size" type="System.Drawing.Size, System.Drawing">
+    <value>231, 17</value>
+  </data>
+  <data name="rdDarkenBorder.TabIndex" type="System.Int32, mscorlib">
+    <value>2</value>
+  </data>
+  <data name="rdDarkenBorder.Text" xml:space="preserve">
+    <value>Adjust theme color (<0: Darker, >0: Brighter)</value>
+  </data>
+  <data name=">>rdDarkenBorder.Name" xml:space="preserve">
+    <value>rdDarkenBorder</value>
+  </data>
+  <data name=">>rdDarkenBorder.Type" xml:space="preserve">
+    <value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>rdDarkenBorder.Parent" xml:space="preserve">
+    <value>grpBorderColor</value>
+  </data>
+  <data name=">>rdDarkenBorder.ZOrder" xml:space="preserve">
+    <value>2</value>
+  </data>
+  <data name="rdPredefinedBorderColor.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="rdPredefinedBorderColor.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="rdPredefinedBorderColor.Location" type="System.Drawing.Point, System.Drawing">
+    <value>10, 19</value>
+  </data>
+  <data name="rdPredefinedBorderColor.Size" type="System.Drawing.Size, System.Drawing">
+    <value>126, 17</value>
+  </data>
+  <data name="rdPredefinedBorderColor.TabIndex" type="System.Int32, mscorlib">
+    <value>1</value>
+  </data>
+  <data name="rdPredefinedBorderColor.Text" xml:space="preserve">
+    <value>Use pre-defined color</value>
+  </data>
+  <data name=">>rdPredefinedBorderColor.Name" xml:space="preserve">
+    <value>rdPredefinedBorderColor</value>
+  </data>
+  <data name=">>rdPredefinedBorderColor.Type" xml:space="preserve">
+    <value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>rdPredefinedBorderColor.Parent" xml:space="preserve">
+    <value>grpBorderColor</value>
+  </data>
+  <data name=">>rdPredefinedBorderColor.ZOrder" xml:space="preserve">
+    <value>3</value>
+  </data>
+  <data name="grpBorderColor.Location" type="System.Drawing.Point, System.Drawing">
+    <value>10, 78</value>
+  </data>
+  <data name="grpBorderColor.Size" type="System.Drawing.Size, System.Drawing">
+    <value>354, 71</value>
+  </data>
+  <data name="grpBorderColor.TabIndex" type="System.Int32, mscorlib">
+    <value>11</value>
+  </data>
+  <data name="grpBorderColor.Text" xml:space="preserve">
+    <value>Border Color (Not applicable for Line or Composite Rules)</value>
+  </data>
+  <data name=">>grpBorderColor.Name" xml:space="preserve">
+    <value>grpBorderColor</value>
+  </data>
+  <data name=">>grpBorderColor.Type" xml:space="preserve">
+    <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>grpBorderColor.Parent" xml:space="preserve">
+    <value>DisplayGroup</value>
+  </data>
+  <data name=">>grpBorderColor.ZOrder" xml:space="preserve">
+    <value>0</value>
+  </data>
   <data name="btnFlipColorBrewer.Enabled" type="System.Boolean, mscorlib">
     <value>False</value>
   </data>
@@ -937,16 +1282,16 @@
     <value>NoControl</value>
   </data>
   <data name="btnFlipColorBrewer.Location" type="System.Drawing.Point, System.Drawing">
-    <value>112, 78</value>
+    <value>316, 46</value>
   </data>
   <data name="btnFlipColorBrewer.Size" type="System.Drawing.Size, System.Drawing">
-    <value>148, 23</value>
+    <value>48, 23</value>
   </data>
   <data name="btnFlipColorBrewer.TabIndex" type="System.Int32, mscorlib">
     <value>10</value>
   </data>
   <data name="btnFlipColorBrewer.Text" xml:space="preserve">
-    <value>Flip ColorBrewer Colors</value>
+    <value>Flip</value>
   </data>
   <data name=">>btnFlipColorBrewer.Name" xml:space="preserve">
     <value>btnFlipColorBrewer</value>
@@ -958,26 +1303,8 @@
     <value>DisplayGroup</value>
   </data>
   <data name=">>btnFlipColorBrewer.ZOrder" xml:space="preserve">
-    <value>0</value>
+    <value>1</value>
   </data>
-  <data name="label3.AutoSize" type="System.Boolean, mscorlib">
-    <value>True</value>
-  </data>
-  <data name="label3.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
-    <value>NoControl</value>
-  </data>
-  <data name="label3.Location" type="System.Drawing.Point, System.Drawing">
-    <value>90, 3</value>
-  </data>
-  <data name="label3.Size" type="System.Drawing.Size, System.Drawing">
-    <value>16, 13</value>
-  </data>
-  <data name="label3.TabIndex" type="System.Int32, mscorlib">
-    <value>8</value>
-  </data>
-  <data name="label3.Text" xml:space="preserve">
-    <value>-></value>
-  </data>
   <data name=">>label3.Name" xml:space="preserve">
     <value>label3</value>
   </data>
@@ -990,15 +1317,6 @@
   <data name=">>label3.ZOrder" xml:space="preserve">
     <value>0</value>
   </data>
-  <data name="ColorBrewerDataType.Location" type="System.Drawing.Point, System.Drawing">
-    <value>0, 0</value>
-  </data>
-  <data name="ColorBrewerDataType.Size" type="System.Drawing.Size, System.Drawing">
-    <value>88, 21</value>
-  </data>
-  <data name="ColorBrewerDataType.TabIndex" type="System.Int32, mscorlib">
-    <value>6</value>
-  </data>
   <data name=">>ColorBrewerDataType.Name" xml:space="preserve">
     <value>ColorBrewerDataType</value>
   </data>
@@ -1011,20 +1329,11 @@
   <data name=">>ColorBrewerDataType.ZOrder" xml:space="preserve">
     <value>1</value>
   </data>
-  <data name="ColorBrewerColorSet.Location" type="System.Drawing.Point, System.Drawing">
-    <value>112, 0</value>
-  </data>
-  <data name="ColorBrewerColorSet.Size" type="System.Drawing.Size, System.Drawing">
-    <value>88, 21</value>
-  </data>
-  <data name="ColorBrewerColorSet.TabIndex" type="System.Int32, mscorlib">
-    <value>4</value>
-  </data>
   <data name=">>ColorBrewerColorSet.Name" xml:space="preserve">
     <value>ColorBrewerColorSet</value>
   </data>
   <data name=">>ColorBrewerColorSet.Type" xml:space="preserve">
-    <value>Maestro.Editors.Common.CustomCombo, Maestro.Editors, Version=5.1.0.0, Culture=neutral, PublicKeyToken=f526c48929fda856</value>
+    <value>Maestro.Editors.Common.CustomCombo, Maestro.Editors, Version=6.0.0.0, Culture=neutral, PublicKeyToken=f526c48929fda856</value>
   </data>
   <data name=">>ColorBrewerColorSet.Parent" xml:space="preserve">
     <value>ColorBrewerPanel</value>
@@ -1051,7 +1360,7 @@
     <value>DisplayGroup</value>
   </data>
   <data name=">>ColorBrewerPanel.ZOrder" xml:space="preserve">
-    <value>1</value>
+    <value>2</value>
   </data>
   <data name="ColorBrewerLabel.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
@@ -1081,22 +1390,13 @@
     <value>DisplayGroup</value>
   </data>
   <data name=">>ColorBrewerLabel.ZOrder" xml:space="preserve">
-    <value>2</value>
+    <value>3</value>
   </data>
-  <data name="GradientToColor.Location" type="System.Drawing.Point, System.Drawing">
-    <value>112, 0</value>
-  </data>
-  <data name="GradientToColor.Size" type="System.Drawing.Size, System.Drawing">
-    <value>88, 21</value>
-  </data>
-  <data name="GradientToColor.TabIndex" type="System.Int32, mscorlib">
-    <value>8</value>
-  </data>
   <data name=">>GradientToColor.Name" xml:space="preserve">
     <value>GradientToColor</value>
   </data>
   <data name=">>GradientToColor.Type" xml:space="preserve">
-    <value>Maestro.Editors.Common.ColorComboBox, Maestro.Editors, Version=5.1.0.0, Culture=neutral, PublicKeyToken=f526c48929fda856</value>
+    <value>Maestro.Editors.Common.ColorComboBox, Maestro.Editors, Version=6.0.0.0, Culture=neutral, PublicKeyToken=f526c48929fda856</value>
   </data>
   <data name=">>GradientToColor.Parent" xml:space="preserve">
     <value>panel2</value>
@@ -1104,20 +1404,11 @@
   <data name=">>GradientToColor.ZOrder" xml:space="preserve">
     <value>0</value>
   </data>
-  <data name="GradientFromColor.Location" type="System.Drawing.Point, System.Drawing">
-    <value>0, 0</value>
-  </data>
-  <data name="GradientFromColor.Size" type="System.Drawing.Size, System.Drawing">
-    <value>88, 21</value>
-  </data>
-  <data name="GradientFromColor.TabIndex" type="System.Int32, mscorlib">
-    <value>5</value>
-  </data>
   <data name=">>GradientFromColor.Name" xml:space="preserve">
     <value>GradientFromColor</value>
   </data>
   <data name=">>GradientFromColor.Type" xml:space="preserve">
-    <value>Maestro.Editors.Common.ColorComboBox, Maestro.Editors, Version=5.1.0.0, Culture=neutral, PublicKeyToken=f526c48929fda856</value>
+    <value>Maestro.Editors.Common.ColorComboBox, Maestro.Editors, Version=6.0.0.0, Culture=neutral, PublicKeyToken=f526c48929fda856</value>
   </data>
   <data name=">>GradientFromColor.Parent" xml:space="preserve">
     <value>panel2</value>
@@ -1125,24 +1416,6 @@
   <data name=">>GradientFromColor.ZOrder" xml:space="preserve">
     <value>1</value>
   </data>
-  <data name="label4.AutoSize" type="System.Boolean, mscorlib">
-    <value>True</value>
-  </data>
-  <data name="label4.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
-    <value>NoControl</value>
-  </data>
-  <data name="label4.Location" type="System.Drawing.Point, System.Drawing">
-    <value>90, 4</value>
-  </data>
-  <data name="label4.Size" type="System.Drawing.Size, System.Drawing">
-    <value>16, 13</value>
-  </data>
-  <data name="label4.TabIndex" type="System.Int32, mscorlib">
-    <value>7</value>
-  </data>
-  <data name="label4.Text" xml:space="preserve">
-    <value>-></value>
-  </data>
   <data name=">>label4.Name" xml:space="preserve">
     <value>label4</value>
   </data>
@@ -1174,7 +1447,7 @@
     <value>DisplayGroup</value>
   </data>
   <data name=">>panel2.ZOrder" xml:space="preserve">
-    <value>3</value>
+    <value>4</value>
   </data>
   <data name="ColorBrewerColors.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
@@ -1201,7 +1474,7 @@
     <value>DisplayGroup</value>
   </data>
   <data name=">>ColorBrewerColors.ZOrder" xml:space="preserve">
-    <value>4</value>
+    <value>5</value>
   </data>
   <data name="GradientColors.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
@@ -1231,13 +1504,13 @@
     <value>DisplayGroup</value>
   </data>
   <data name=">>GradientColors.ZOrder" xml:space="preserve">
-    <value>5</value>
+    <value>6</value>
   </data>
   <data name="DisplayGroup.Location" type="System.Drawing.Point, System.Drawing">
     <value>8, 400</value>
   </data>
   <data name="DisplayGroup.Size" type="System.Drawing.Size, System.Drawing">
-    <value>330, 112</value>
+    <value>377, 158</value>
   </data>
   <data name="DisplayGroup.TabIndex" type="System.Int32, mscorlib">
     <value>10</value>
@@ -1257,24 +1530,90 @@
   <data name=">>DisplayGroup.ZOrder" xml:space="preserve">
     <value>3</value>
   </data>
-  <data name="PreviewGroup.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
-    <value>Top, Left, Right</value>
+  <data name="label3.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
   </data>
-  <data name="PreviewPicture.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
-    <value>Top, Left, Right</value>
-  </data>
-  <data name="PreviewPicture.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+  <data name="label3.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
     <value>NoControl</value>
   </data>
-  <data name="PreviewPicture.Location" type="System.Drawing.Point, System.Drawing">
-    <value>8, 16</value>
+  <data name="label3.Location" type="System.Drawing.Point, System.Drawing">
+    <value>90, 3</value>
   </data>
-  <data name="PreviewPicture.Size" type="System.Drawing.Size, System.Drawing">
-    <value>309, 24</value>
+  <data name="label3.Size" type="System.Drawing.Size, System.Drawing">
+    <value>16, 13</value>
   </data>
-  <data name="PreviewPicture.TabIndex" type="System.Int32, mscorlib">
+  <data name="label3.TabIndex" type="System.Int32, mscorlib">
+    <value>8</value>
+  </data>
+  <data name="label3.Text" xml:space="preserve">
+    <value>-></value>
+  </data>
+  <data name=">>label3.Name" xml:space="preserve">
+    <value>label3</value>
+  </data>
+  <data name=">>label3.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>label3.Parent" xml:space="preserve">
+    <value>ColorBrewerPanel</value>
+  </data>
+  <data name=">>label3.ZOrder" xml:space="preserve">
     <value>0</value>
   </data>
+  <data name="ColorBrewerDataType.Location" type="System.Drawing.Point, System.Drawing">
+    <value>0, 0</value>
+  </data>
+  <data name="ColorBrewerDataType.Size" type="System.Drawing.Size, System.Drawing">
+    <value>88, 21</value>
+  </data>
+  <data name="ColorBrewerDataType.TabIndex" type="System.Int32, mscorlib">
+    <value>6</value>
+  </data>
+  <data name=">>ColorBrewerDataType.Name" xml:space="preserve">
+    <value>ColorBrewerDataType</value>
+  </data>
+  <data name=">>ColorBrewerDataType.Type" xml:space="preserve">
+    <value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>ColorBrewerDataType.Parent" xml:space="preserve">
+    <value>ColorBrewerPanel</value>
+  </data>
+  <data name=">>ColorBrewerDataType.ZOrder" xml:space="preserve">
+    <value>1</value>
+  </data>
+  <data name="label4.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="label4.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="label4.Location" type="System.Drawing.Point, System.Drawing">
+    <value>90, 4</value>
+  </data>
+  <data name="label4.Size" type="System.Drawing.Size, System.Drawing">
+    <value>16, 13</value>
+  </data>
+  <data name="label4.TabIndex" type="System.Int32, mscorlib">
+    <value>7</value>
+  </data>
+  <data name="label4.Text" xml:space="preserve">
+    <value>-></value>
+  </data>
+  <data name=">>label4.Name" xml:space="preserve">
+    <value>label4</value>
+  </data>
+  <data name=">>label4.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>label4.Parent" xml:space="preserve">
+    <value>panel2</value>
+  </data>
+  <data name=">>label4.ZOrder" xml:space="preserve">
+    <value>2</value>
+  </data>
+  <data name="PreviewGroup.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+    <value>Top, Left, Right</value>
+  </data>
   <data name=">>PreviewPicture.Name" xml:space="preserve">
     <value>PreviewPicture</value>
   </data>
@@ -1288,10 +1627,10 @@
     <value>0</value>
   </data>
   <data name="PreviewGroup.Location" type="System.Drawing.Point, System.Drawing">
-    <value>8, 518</value>
+    <value>8, 564</value>
   </data>
   <data name="PreviewGroup.Size" type="System.Drawing.Size, System.Drawing">
-    <value>330, 48</value>
+    <value>377, 48</value>
   </data>
   <data name="PreviewGroup.TabIndex" type="System.Int32, mscorlib">
     <value>11</value>
@@ -1311,6 +1650,81 @@
   <data name=">>PreviewGroup.ZOrder" xml:space="preserve">
     <value>2</value>
   </data>
+  <data name="PreviewPicture.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+    <value>Top, Left, Right</value>
+  </data>
+  <data name="PreviewPicture.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="PreviewPicture.Location" type="System.Drawing.Point, System.Drawing">
+    <value>8, 16</value>
+  </data>
+  <data name="PreviewPicture.Size" type="System.Drawing.Size, System.Drawing">
+    <value>356, 24</value>
+  </data>
+  <data name="PreviewPicture.TabIndex" type="System.Int32, mscorlib">
+    <value>0</value>
+  </data>
+  <data name=">>PreviewPicture.Name" xml:space="preserve">
+    <value>PreviewPicture</value>
+  </data>
+  <data name=">>PreviewPicture.Type" xml:space="preserve">
+    <value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>PreviewPicture.Parent" xml:space="preserve">
+    <value>PreviewGroup</value>
+  </data>
+  <data name=">>PreviewPicture.ZOrder" xml:space="preserve">
+    <value>0</value>
+  </data>
+  <data name=">>CancelBtn.Name" xml:space="preserve">
+    <value>CancelBtn</value>
+  </data>
+  <data name=">>CancelBtn.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>CancelBtn.Parent" xml:space="preserve">
+    <value>ButtonPanel</value>
+  </data>
+  <data name=">>CancelBtn.ZOrder" xml:space="preserve">
+    <value>0</value>
+  </data>
+  <data name=">>OKBtn.Name" xml:space="preserve">
+    <value>OKBtn</value>
+  </data>
+  <data name=">>OKBtn.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>OKBtn.Parent" xml:space="preserve">
+    <value>ButtonPanel</value>
+  </data>
+  <data name=">>OKBtn.ZOrder" xml:space="preserve">
+    <value>1</value>
+  </data>
+  <data name="ButtonPanel.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
+    <value>Bottom</value>
+  </data>
+  <data name="ButtonPanel.Location" type="System.Drawing.Point, System.Drawing">
+    <value>0, 617</value>
+  </data>
+  <data name="ButtonPanel.Size" type="System.Drawing.Size, System.Drawing">
+    <value>390, 36</value>
+  </data>
+  <data name="ButtonPanel.TabIndex" type="System.Int32, mscorlib">
+    <value>12</value>
+  </data>
+  <data name=">>ButtonPanel.Name" xml:space="preserve">
+    <value>ButtonPanel</value>
+  </data>
+  <data name=">>ButtonPanel.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name=">>ButtonPanel.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name=">>ButtonPanel.ZOrder" xml:space="preserve">
+    <value>1</value>
+  </data>
   <data name="CancelBtn.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
     <value>Top</value>
   </data>
@@ -1318,7 +1732,7 @@
     <value>NoControl</value>
   </data>
   <data name="CancelBtn.Location" type="System.Drawing.Point, System.Drawing">
-    <value>181, 7</value>
+    <value>205, 7</value>
   </data>
   <data name="CancelBtn.Size" type="System.Drawing.Size, System.Drawing">
     <value>75, 23</value>
@@ -1348,7 +1762,7 @@
     <value>NoControl</value>
   </data>
   <data name="OKBtn.Location" type="System.Drawing.Point, System.Drawing">
-    <value>93, 8</value>
+    <value>117, 8</value>
   </data>
   <data name="OKBtn.Size" type="System.Drawing.Size, System.Drawing">
     <value>75, 23</value>
@@ -1371,30 +1785,6 @@
   <data name=">>OKBtn.ZOrder" xml:space="preserve">
     <value>1</value>
   </data>
-  <data name="ButtonPanel.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
-    <value>Bottom</value>
-  </data>
-  <data name="ButtonPanel.Location" type="System.Drawing.Point, System.Drawing">
-    <value>0, 575</value>
-  </data>
-  <data name="ButtonPanel.Size" type="System.Drawing.Size, System.Drawing">
-    <value>343, 36</value>
-  </data>
-  <data name="ButtonPanel.TabIndex" type="System.Int32, mscorlib">
-    <value>12</value>
-  </data>
-  <data name=">>ButtonPanel.Name" xml:space="preserve">
-    <value>ButtonPanel</value>
-  </data>
-  <data name=">>ButtonPanel.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name=">>ButtonPanel.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name=">>ButtonPanel.ZOrder" xml:space="preserve">
-    <value>1</value>
-  </data>
   <data name="grpThemeGeneration.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
     <value>Top, Left, Right</value>
   </data>
@@ -1402,7 +1792,7 @@
     <value>8, 291</value>
   </data>
   <data name="grpThemeGeneration.Size" type="System.Drawing.Size, System.Drawing">
-    <value>330, 103</value>
+    <value>377, 103</value>
   </data>
   <data name="grpThemeGeneration.TabIndex" type="System.Int32, mscorlib">
     <value>13</value>
@@ -1422,6 +1812,69 @@
   <data name=">>grpThemeGeneration.ZOrder" xml:space="preserve">
     <value>0</value>
   </data>
+  <data name="ColorBrewerColorSet.Location" type="System.Drawing.Point, System.Drawing">
+    <value>112, 0</value>
+  </data>
+  <data name="ColorBrewerColorSet.Size" type="System.Drawing.Size, System.Drawing">
+    <value>88, 21</value>
+  </data>
+  <data name="ColorBrewerColorSet.TabIndex" type="System.Int32, mscorlib">
+    <value>4</value>
+  </data>
+  <data name=">>ColorBrewerColorSet.Name" xml:space="preserve">
+    <value>ColorBrewerColorSet</value>
+  </data>
+  <data name=">>ColorBrewerColorSet.Type" xml:space="preserve">
+    <value>Maestro.Editors.Common.CustomCombo, Maestro.Editors, Version=6.0.0.0, Culture=neutral, PublicKeyToken=f526c48929fda856</value>
+  </data>
+  <data name=">>ColorBrewerColorSet.Parent" xml:space="preserve">
+    <value>ColorBrewerPanel</value>
+  </data>
+  <data name=">>ColorBrewerColorSet.ZOrder" xml:space="preserve">
+    <value>2</value>
+  </data>
+  <data name="GradientToColor.Location" type="System.Drawing.Point, System.Drawing">
+    <value>112, 0</value>
+  </data>
+  <data name="GradientToColor.Size" type="System.Drawing.Size, System.Drawing">
+    <value>88, 21</value>
+  </data>
+  <data name="GradientToColor.TabIndex" type="System.Int32, mscorlib">
+    <value>8</value>
+  </data>
+  <data name=">>GradientToColor.Name" xml:space="preserve">
+    <value>GradientToColor</value>
+  </data>
+  <data name=">>GradientToColor.Type" xml:space="preserve">
+    <value>Maestro.Editors.Common.ColorComboBox, Maestro.Editors, Version=6.0.0.0, Culture=neutral, PublicKeyToken=f526c48929fda856</value>
+  </data>
+  <data name=">>GradientToColor.Parent" xml:space="preserve">
+    <value>panel2</value>
+  </data>
+  <data name=">>GradientToColor.ZOrder" xml:space="preserve">
+    <value>0</value>
+  </data>
+  <data name="GradientFromColor.Location" type="System.Drawing.Point, System.Drawing">
+    <value>0, 0</value>
+  </data>
+  <data name="GradientFromColor.Size" type="System.Drawing.Size, System.Drawing">
+    <value>88, 21</value>
+  </data>
+  <data name="GradientFromColor.TabIndex" type="System.Int32, mscorlib">
+    <value>5</value>
+  </data>
+  <data name=">>GradientFromColor.Name" xml:space="preserve">
+    <value>GradientFromColor</value>
+  </data>
+  <data name=">>GradientFromColor.Type" xml:space="preserve">
+    <value>Maestro.Editors.Common.ColorComboBox, Maestro.Editors, Version=6.0.0.0, Culture=neutral, PublicKeyToken=f526c48929fda856</value>
+  </data>
+  <data name=">>GradientFromColor.Parent" xml:space="preserve">
+    <value>panel2</value>
+  </data>
+  <data name=">>GradientFromColor.ZOrder" xml:space="preserve">
+    <value>1</value>
+  </data>
   <data name="colorComboBox1.Location" type="System.Drawing.Point, System.Drawing">
     <value>0, 0</value>
   </data>
@@ -1435,13 +1888,13 @@
     <value>colorComboBox1</value>
   </data>
   <data name=">>colorComboBox1.Type" xml:space="preserve">
-    <value>Maestro.Editors.Common.ColorComboBox, Maestro.Editors, Version=5.1.0.0, Culture=neutral, PublicKeyToken=f526c48929fda856</value>
+    <value>Maestro.Editors.Common.ColorComboBox, Maestro.Editors, Version=6.0.0.0, Culture=neutral, PublicKeyToken=f526c48929fda856</value>
   </data>
   <metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>True</value>
   </metadata>
   <data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
-    <value>343, 611</value>
+    <value>390, 653</value>
   </data>
   <data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
     <value>CenterParent</value>

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Utility.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Utility.cs	2014-05-06 18:22:49 UTC (rev 8109)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Utility.cs	2014-05-06 19:17:12 UTC (rev 8110)
@@ -1480,6 +1480,40 @@
             }
             return changed;
         }
+
+        //From: http://www.pvladov.com/2012/09/make-color-lighter-or-darker.html
+
+        /// <summary>
+        /// Creates color with corrected brightness.
+        /// </summary>
+        /// <param name="color">Color to correct.</param>
+        /// <param name="correctionFactor">The brightness correction factor. Must be between -1 and 1. 
+        /// Negative values produce darker colors.</param>
+        /// <returns>
+        /// Corrected <see cref="Color"/> structure.
+        /// </returns>
+        public static Color ChangeColorBrightness(Color color, float correctionFactor)
+        {
+            float red = (float)color.R;
+            float green = (float)color.G;
+            float blue = (float)color.B;
+
+            if (correctionFactor < 0)
+            {
+                correctionFactor = 1 + correctionFactor;
+                red *= correctionFactor;
+                green *= correctionFactor;
+                blue *= correctionFactor;
+            }
+            else
+            {
+                red = (255 - red) * correctionFactor + red;
+                green = (255 - green) * correctionFactor + green;
+                blue = (255 - blue) * correctionFactor + blue;
+            }
+
+            return Color.FromArgb(color.A, (int)red, (int)green, (int)blue);
+        }
     }
 
     /// <summary>



More information about the mapguide-commits mailing list