private void lvMappings_DrawSubItem(object sender, DrawListViewSubItemEventArgs e)
{
// The StyleListHelper is responsible for column 1.
if (e.ColumnIndex == 1)
return;
FwListView lv = (FwListView)sender;
ImportMappingInfo mapping = e.Item.Tag as ImportMappingInfo;
Debug.Assert(mapping != null);
Color foreColor = lv.GetTextColor(e);
if (e.ColumnIndex != 0 || mapping == null || !mapping.IsInline)
{
TextRenderer.DrawText(e.Graphics, e.SubItem.Text, lv.Font, e.Bounds, foreColor,
TextFormatFlags.LeftAndRightPadding | TextFormatFlags.SingleLine | TextFormatFlags.VerticalCenter);
return;
}
TextRenderer.DrawText(e.Graphics, mapping.BeginMarker, lv.Font, e.Bounds, foreColor,
TextFormatFlags.LeftAndRightPadding | TextFormatFlags.SingleLine | TextFormatFlags.VerticalCenter);
Rectangle rect = e.Bounds;
int textWidth = (int)Math.Round(e.Graphics.MeasureString(mapping.BeginMarker, lv.Font).Width);
rect.X += textWidth;
rect.Width -= textWidth;
Color backColor = e.Item.Selected ? SystemColors.Highlight : lv.BackColor;
TextRenderer.DrawText(e.Graphics, "...", lv.Font, rect, ColorUtil.LightInverse(backColor),
TextFormatFlags.LeftAndRightPadding | TextFormatFlags.SingleLine | TextFormatFlags.VerticalCenter);
textWidth = (int)Math.Round(e.Graphics.MeasureString("...", lv.Font).Width);
rect.X += textWidth;
rect.Width -= textWidth;
TextRenderer.DrawText(e.Graphics, mapping.EndMarker, lv.Font, rect, foreColor,
TextFormatFlags.LeftAndRightPadding | TextFormatFlags.SingleLine | TextFormatFlags.VerticalCenter);
}