Browse Source

Improved measuring of TreeGrid item width.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@677 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 20 years ago
parent
commit
66a115d6ce
  1. 16
      src/Main/Base/Project/Src/Gui/TreeGrid/DynamicListItem.cs
  2. 13
      src/Main/Base/Project/Src/Gui/TreeGrid/DynamicTreeRow.cs

16
src/Main/Base/Project/Src/Gui/TreeGrid/DynamicListItem.cs

@ -92,7 +92,7 @@ namespace ICSharpCode.SharpDevelop.Gui.TreeGrid @@ -92,7 +92,7 @@ namespace ICSharpCode.SharpDevelop.Gui.TreeGrid
minimumWidth = Math.Max(minimumWidth, e.ItemWidth);
}
if (text.Length > 0) {
int width = (int)graphics.MeasureString(text, font, new PointF(0, 0), textFormat).Width;
int width = 2 + (int)graphics.MeasureString(text, font, new PointF(0, 0), textFormat).Width;
minimumWidth = Math.Max(minimumWidth, width);
}
}
@ -163,7 +163,19 @@ namespace ICSharpCode.SharpDevelop.Gui.TreeGrid @@ -163,7 +163,19 @@ namespace ICSharpCode.SharpDevelop.Gui.TreeGrid
}
}
StringFormat textFormat = StringFormat.GenericDefault;
static StringFormat defaultTextFormat;
public static StringFormat DefaultTextFormat {
get {
if (defaultTextFormat == null) {
defaultTextFormat = (StringFormat)StringFormat.GenericDefault.Clone();
defaultTextFormat.FormatFlags |= StringFormatFlags.NoWrap;
}
return defaultTextFormat;
}
}
StringFormat textFormat = DefaultTextFormat;
public StringFormat TextFormat {
get {

13
src/Main/Base/Project/Src/Gui/TreeGrid/DynamicTreeRow.cs

@ -116,7 +116,18 @@ namespace ICSharpCode.SharpDevelop.Gui.TreeGrid @@ -116,7 +116,18 @@ namespace ICSharpCode.SharpDevelop.Gui.TreeGrid
formHeight += missingHeight;
frm.Top -= missingHeight;
}
frm.ClientSize = new Size(e.List.Width + 4, formHeight);
// Autosize child window
int formWidth;
using (Graphics g = childList.CreateGraphics()) {
formWidth = 8 + childList.GetRequiredWidth(g);
}
int screenWidth = Screen.FromPoint(p).WorkingArea.Right - p.X;
if (formWidth > screenWidth) {
int missingWidth = Math.Min(100, formWidth - screenWidth);
formWidth = screenWidth + missingWidth;
frm.Left -= missingWidth;
}
frm.ClientSize = new Size(formWidth, formHeight);
isOpeningChild = true;
frm.Show();
isOpeningChild = false;

Loading…
Cancel
Save