private void DrawImageAndText(Graphics g, Rectangle r, OLVColumn column, TextFormatFlags flags, Font f, Color color, int imageTextGap)
{
Rectangle textRect = r;
textRect.X += (column.ImageList.ImageSize.Width + imageTextGap);
textRect.Width -= (column.ImageList.ImageSize.Width + imageTextGap);
Size textSize = Size.Empty;
if (column.ShowTextInHeader)
textSize = TextRenderer.MeasureText(g, column.Text, f, textRect.Size, flags);
int imageY = r.Top + ((r.Height - column.ImageList.ImageSize.Height) / 2);
int imageX = textRect.Left;
if (column.HeaderTextAlign == HorizontalAlignment.Center)
imageX = textRect.Left + ((textRect.Width - textSize.Width) / 2);
if (column.HeaderTextAlign == HorizontalAlignment.Right)
imageX = textRect.Right - textSize.Width;
imageX -= (column.ImageList.ImageSize.Width + imageTextGap);
column.ImageList.Draw(g, imageX, imageY, column.ImageList.Images.IndexOfKey(column.HeaderImageKey));
this.DrawText(g, textRect, column, flags, f, color);
}