int PnlSlotCalculateHeight(int slot, int width)
{
Font fontCaption = new Font(Font.FontFamily, 9f);
int vPosition = (int)Math.Max(fontCaption.Height, 18) + 3;
Font fontIndicator = new Font(Font.FontFamily, 11f);
vPosition += fontIndicator.Height;
if (slotMinMidMax == SlotSizeMinMidMax.min)
return vPosition + 5;
// Calculate the height of Logic string
if (strategy.Slot[slot].IndParam.ListParam[0].Enabled)
{
Graphics g = CreateGraphics();
float fPadding = space;
StringFormat stringFormatLogic = new StringFormat();
stringFormatLogic.Alignment = StringAlignment.Center;
stringFormatLogic.LineAlignment = StringAlignment.Center;
stringFormatLogic.Trimming = StringTrimming.EllipsisCharacter;
stringFormatLogic.FormatFlags = StringFormatFlags.NoClip;
string sValue = strategy.Slot[slot].IndParam.ListParam[0].Text;
Font fontLogic = new Font(Font.FontFamily, 10.5f, FontStyle.Regular);
SizeF sizeValue = g.MeasureString(sValue, fontLogic, (int)(width - 2 * fPadding), stringFormatLogic);
vPosition += (int)sizeValue.Height;
g.Dispose();
}
if (slotMinMidMax == SlotSizeMinMidMax.mid)
return vPosition + 6;
Font fontParam = new Font(Font.FontFamily, 9f, FontStyle.Regular);
// List Params
for (int i = 1; i < 5; i++)
vPosition += strategy.Slot[slot].IndParam.ListParam[i].Enabled ? fontParam.Height : 0;
// NumericParam
foreach (NumericParam nump in strategy.Slot[slot].IndParam.NumParam)
vPosition += nump.Enabled ? fontParam.Height : 0;
// CheckParam
foreach (CheckParam checkp in strategy.Slot[slot].IndParam.CheckParam)
vPosition += checkp.Enabled ? fontParam.Height : 0;
vPosition += 10;
return vPosition;
}