BrightIdeasSoftware.HeaderControl.DrawImageAndText C# (CSharp) Method

DrawImageAndText() private method

private DrawImageAndText ( Graphics g, Rectangle r, OLVColumn column, TextFormatFlags flags, Font f, Color color, int imageTextGap ) : void
g System.Drawing.Graphics
r System.Drawing.Rectangle
column OLVColumn
flags TextFormatFlags
f System.Drawing.Font
color Color
imageTextGap int
return void
        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);
        }