SIL.FieldWorks.TE.ImportWizard.lvMappings_DrawSubItem C# (CSharp) Method

lvMappings_DrawSubItem() private method

Handles the DrawSubItem event of the lvMappings control.
private lvMappings_DrawSubItem ( object sender, DrawListViewSubItemEventArgs e ) : void
sender object The source of the event.
e System.Windows.Forms.DrawListViewSubItemEventArgs The /// instance containing the event data.
return void
		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);
		}