2007-05-03 Marek Habersack <mhabersack@novell.com>
authorMarek Habersack <grendel@twistedcode.net>
Thu, 3 May 2007 17:37:16 +0000 (17:37 -0000)
committerMarek Habersack <grendel@twistedcode.net>
Thu, 3 May 2007 17:37:16 +0000 (17:37 -0000)
* TreeView.cs: honor ChildNodesPadding of the NodeStyle.

svn path=/trunk/mcs/; revision=76631

mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog
mcs/class/System.Web/System.Web.UI.WebControls/TreeView.cs

index 41a5590bd8600bd6ba68365802668e179bd6c4bc..4f7e0bd9e4aba47704a76066992a0e3ed182ca5e 100644 (file)
@@ -1,3 +1,7 @@
+2007-05-03  Marek Habersack  <mhabersack@novell.com>
+
+       * TreeView.cs: honor ChildNodesPadding of the NodeStyle.
+
 2007-05-03 Igor Zelmanovich <igorz@mainsoft.com>
 
        * ControlPropertyNameConverter.css:
index 35c4a2ae396367277dd3853e68af03f8285b6886..15c4697d7907fb6bb79cf0e8fd030876bf905c52 100644 (file)
@@ -1444,6 +1444,7 @@ namespace System.Web.UI.WebControls
                        
                        if (hasChildNodes)
                        {
+                               AddChildrenPadding (writer, node);
                                if (level >= levelLines.Count) {
                                        if (hasNext) levelLines.Add (this);
                                        else levelLines.Add (null);
@@ -1470,9 +1471,32 @@ namespace System.Web.UI.WebControls
                                        for (int n=0; n<num; n++)
                                                RenderNode (writer, node.ChildNodes [n], level + 1, levelLines, true, n<num-1);
                                }
+                               AddChildrenPadding (writer, node);
                        }
                }
 
+               private void AddChildrenPadding (HtmlTextWriter writer, TreeNode node)
+               {
+                       if (nodeStyle == null)
+                               return;
+                       Unit cnp = nodeStyle.ChildNodesPadding;
+                       double value;
+                       
+                       if (cnp.IsEmpty || (value = cnp.Value) == 0)
+                               return;
+
+                       if (cnp.Type != UnitType.Pixel)
+                               return;
+
+                       writer.RenderBeginTag (HtmlTextWriterTag.Table);
+                       writer.AddAttribute ("height", ((int)value).ToString ());
+                       writer.RenderBeginTag (HtmlTextWriterTag.Tr);
+                       writer.RenderBeginTag (HtmlTextWriterTag.Td);
+                       writer.RenderEndTag (); // td
+                       writer.RenderEndTag (); // tr
+                       writer.RenderEndTag (); // table
+               }
+               
                private void RenderMenuItemSpacing (HtmlTextWriter writer, Unit itemSpacing) {
                        writer.AddStyleAttribute ("height", itemSpacing.ToString ());
                        writer.RenderBeginTag (HtmlTextWriterTag.Tr);