private void CalcTextSize ()
{
// clear the old value
text_size = Size.Empty;
if (items.Count == 0)
return;
text_size = BiggestItem (0);
if (view == View.LargeIcon && this.label_wrap) {
Size temp = Size.Empty;
if (this.check_boxes)
temp.Width += 2 * this.CheckBoxSize.Width;
int icon_w = LargeImageList == null ? 12 : LargeImageList.ImageSize.Width;
temp.Width += icon_w + max_wrap_padding;
// wrapping is done for two lines only
if (text_size.Width > temp.Width) {
text_size.Width = temp.Width;
text_size.Height *= 2;
}
}
else if (view == View.List) {
// in list view max text shown in determined by the
// control width, even if scolling is enabled.
int max_wd = this.Width - (this.CheckBoxSize.Width - 2);
if (this.small_image_list != null)
max_wd -= this.small_image_list.ImageSize.Width;
if (text_size.Width > max_wd)
text_size.Width = max_wd;
}
// we do the default settings, if we have got 0's
if (text_size.Height <= 0)
text_size.Height = this.Font.Height;
if (text_size.Width <= 0)
text_size.Width = this.Width;
// little adjustment
text_size.Width += 2;
text_size.Height += 2;
}