Author: alanmc
Date: 2007-08-21 17:45:52 -0400 (Tue, 21 Aug 2007)
New Revision: 84595

Modified:
   trunk/lunareclipse/ChangeLog
   trunk/lunareclipse/Properties/PropertyManager.cs
Log:
* Properties/PropertyManager.cs: Hooking into the Selected and
  deselected events so that the propertypane appears and disappears
  correctly. More properties are editable now. All property changes
  correctly update the selection pane (if there is one).

Modified: trunk/lunareclipse/ChangeLog
===================================================================
--- trunk/lunareclipse/ChangeLog        2007-08-21 21:44:49 UTC (rev 84594)
+++ trunk/lunareclipse/ChangeLog        2007-08-21 21:45:52 UTC (rev 84595)
@@ -1,5 +1,12 @@
 2007-08-21  Alan McGovern <[EMAIL PROTECTED]> 
 
+       * Properties/PropertyManager.cs: Hooking into the Selected and 
deselected
+         events so that the propertypane appears and disappears correctly. More
+         properties are editable now. All property changes correctly update the
+         selection pane (if there is one).
+
+2007-08-21  Alan McGovern <[EMAIL PROTECTED]> 
+
        * Model/SelectionChangedEventArgs.cs: I have no idea what the 'Selected'
          property was supposed to be for. Removed it, it's useless.
 

Modified: trunk/lunareclipse/Properties/PropertyManager.cs
===================================================================
--- trunk/lunareclipse/Properties/PropertyManager.cs    2007-08-21 21:44:49 UTC 
(rev 84594)
+++ trunk/lunareclipse/Properties/PropertyManager.cs    2007-08-21 21:45:52 UTC 
(rev 84595)
@@ -52,19 +52,29 @@
                {
                        properties = new List<PropertyInfo>();
                        controller.BeforeDrawChanged += delegate {
-                               Console.WriteLine("Hooking out");
                                selector = controller.Current as Selector;
-                               if(selector != null)
-                                       selector.ItemSelected -= ItemSelected;
+                               if(selector == null)
+                                       return;
                                
+                               selector.ItemSelected -= ItemSelectionChanged;
+                               selector.ItemDeselected -= ItemSelectionChanged;
                        };
                        controller.DrawChanged += delegate {
-                               Console.WriteLine("Hooking in");
                                selector = controller.Current as Selector;
-                               if(selector != null)
-                                       selector.ItemSelected += ItemSelected;
+                               if(selector == null)
+                                       return;
+                               
+                               selector.ItemSelected += ItemSelectionChanged;
+                               selector.ItemDeselected +=ItemSelectionChanged;
                        };
                }
+               private void ItemSelectionChanged(object sender, 
SelectionChangedEventArgs e)
+               {
+                       if(selector.SelectedObjects.Count != 1)
+                               SelectedObject = null; 
+                       else
+                               SelectedObject = e.SelectedBorder;
+               }
                
                static PropertyManager()
                {
@@ -73,18 +83,18 @@
                        info.Add(Rectangle.VisibilityProperty, new 
PropertyInfo(ReflectionHelper.GetData(Rectangle.VisibilityProperty), 
PropertyType.Visibility));
                        info.Add(Rectangle.RadiusXProperty, new 
PropertyInfo(ReflectionHelper.GetData(Rectangle.RadiusXProperty), 
PropertyType.Double));
                        info.Add(Rectangle.RadiusYProperty, new 
PropertyInfo(ReflectionHelper.GetData(Rectangle.RadiusYProperty), 
PropertyType.Double));
-                       info.Add(Rectangle.StrokeThicknessProperty, new 
PropertyInfo(ReflectionHelper.GetData(Rectangle.StrokeThicknessProperty), 
PropertyType.Integer));
+                       info.Add(Rectangle.StrokeThicknessProperty, new 
PropertyInfo(ReflectionHelper.GetData(Rectangle.StrokeThicknessProperty), 
PropertyType.Double));
                        info.Add(Path.DataProperty, new 
PropertyInfo(ReflectionHelper.GetData(Path.DataProperty), PropertyType.Data));
 
                        // extended properties
                        info.Add(Path.StretchProperty, new 
PropertyInfo(ReflectionHelper.GetData(Path.StretchProperty), 
PropertyType.Stretch, false, true));
                        info.Add(Path.StrokeDashArrayProperty, new 
PropertyInfo(ReflectionHelper.GetData(Path.StrokeDashArrayProperty), 
PropertyType.DashArray, false, true));
                        info.Add(Path.StrokeDashCapProperty, new 
PropertyInfo(ReflectionHelper.GetData(Path.StrokeDashCapProperty), 
PropertyType.PenLineCap, false, true));
-                       info.Add(Path.StrokeDashOffsetProperty, new 
PropertyInfo(ReflectionHelper.GetData(Path.StrokeDashOffsetProperty), 
PropertyType.Integer, false, true));
-                       info.Add(Path.StrokeStartLineCapProperty, new 
PropertyInfo(ReflectionHelper.GetData(Path.StrokeStartLineCapProperty), 
PropertyType.PenLineCap, false, true));
-                       info.Add(Path.StrokeEndLineCapProperty, new 
PropertyInfo(ReflectionHelper.GetData(Path.StrokeEndLineCapProperty), 
PropertyType.PenLineCap, false, true));
+                       info.Add(Path.StrokeDashOffsetProperty, new 
PropertyInfo(ReflectionHelper.GetData(Path.StrokeDashOffsetProperty), 
PropertyType.Double, false, true));
+                       //info.Add(Path.StrokeStartLineCapProperty, new 
PropertyInfo(ReflectionHelper.GetData(Path.StrokeStartLineCapProperty), 
PropertyType.stroke, false, true));
+                       //info.Add(Path.StrokeEndLineCapProperty, new 
PropertyInfo(ReflectionHelper.GetData(Path.StrokeEndLineCapProperty), 
PropertyType.str, false, true));
                        info.Add(Path.StrokeLineJoinProperty, new 
PropertyInfo(ReflectionHelper.GetData(Path.StrokeLineJoinProperty), 
PropertyType.PenLineJoin, false, true));
-                       info.Add(Path.StrokeMiterLimitProperty, new 
PropertyInfo(ReflectionHelper.GetData(Path.StrokeMiterLimitProperty), 
PropertyType.Integer, false, true));
+                       info.Add(Path.StrokeMiterLimitProperty, new 
PropertyInfo(ReflectionHelper.GetData(Path.StrokeMiterLimitProperty), 
PropertyType.Double, false, true));
                        
                        info.Add(Canvas.WidthProperty, new 
PropertyInfo(ReflectionHelper.GetData(Canvas.WidthProperty), 
PropertyType.Double, false, true));
                        info.Add(Canvas.HeightProperty, new 
PropertyInfo(ReflectionHelper.GetData(Canvas.HeightProperty), 
PropertyType.Double, false, true));
@@ -92,17 +102,6 @@
                        info.Add(Canvas.TopProperty, new 
PropertyInfo(ReflectionHelper.GetData(Canvas.TopProperty), PropertyType.Double, 
true, false));
                        info.Add(Canvas.ZIndexProperty, new 
PropertyInfo(ReflectionHelper.GetData(Canvas.ZIndexProperty), 
PropertyType.Integer, false, false));
                }
-               private void ItemSelected(object sender, 
SelectionChangedEventArgs e)
-               {
-                       if(selector.SelectedObjects.Count != 1)
-                       {
-                               SelectedObject = null; 
-                               return;
-                       }
-                       
-                       if(selector.SelectedObjects.Count == 1 && e.Selected)
-                               SelectedObject = e.SelectedBorder;
-               }
                
                private void UpdateProperties()
                {

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to