[Mono-bugs] [Bug 80207][Nor] Changed - ListView ColumnHeader has wrong height when Width is -1 or -2

bugzilla-daemon at bugzilla.ximian.com bugzilla-daemon at bugzilla.ximian.com
Tue Jan 2 18:23:39 EST 2007


Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.

Changed by georgegiolfan at yahoo.com.

http://bugzilla.ximian.com/show_bug.cgi?id=80207

--- shadow/80207	2007-01-02 16:49:22.000000000 -0500
+++ shadow/80207.tmp.12253	2007-01-02 18:23:39.000000000 -0500
@@ -127,6 +127,32 @@
         Controls.Add(l);
     }
     
 }
 Changing text_padding to 4 seems to fix it, but I don't know why.
 Maybe the whole header height thing needs to be changed.
+
+------- Additional Comments From georgegiolfan at yahoo.com  2007-01-02 18:23 -------
+Here is an idea: compute the header height in the same way for each 
+column. Ideally this would be done once, when the font changes, but I 
+don't know how to do this correcly and the Theme* classe seem to be 
+using ColumnHeader.Rect.Height instead of some property of the 
+ListView class.
+I suggest changing GetChildColumnSize to
+Size ret_size = BiggestItem(index);
+ColumnHeader col = columns[index];
+int return_width = (col.Width == -2) ? /* autosize = max(items, 
+columnheader) */ Math.Max(ret_size.Width, 
+(int)Math.Ceiling(DeviceContext.MeasureString(col.Text, Font).Width) 
++ text_padding) : /* -1 and all the values < -2 are put under one 
+category */ (ret_size.IsEmpty ? /* fall back to empty columns' width 
+if no subitem is available for a column */ 
+ThemeEngine.Current.ListViewEmptyColumnWidth : ret_size.Width);
+// adjust the size for icon and checkbox for 0th column
+if (index == 0) {
+    return_width += CheckBoxSize.Width + 4;
+    if (small_image_list != null)
+        return_width += small_image_list.ImageSize.Width;
+}
+return new Size(return_width, 
+(int)Math.Ceiling(DeviceContext.MeasureString("a", Font).Height) + 4);
+


More information about the mono-bugs mailing list