using System.Drawing;
namespace DevComponents.DotNetBar.SuperGrid
{
    /// 
    /// Provides helpers when working with text.
    /// 
    internal static class TextHelper
    {
        private static int _textMarkupCultureSpecific = 3;
        /// 
        /// Get or sets the text-markup padding for text
        /// measurement when running on Japanese version of Windows.
        /// 
        public static int TextMarkupCultureSpecificPadding
        {
            get { return _textMarkupCultureSpecific; }
            set { _textMarkupCultureSpecific = value; }
        }
        /// 
        /// MeasureText always adds about 1/2 em width of white space on the right,
        /// even when NoPadding is specified. It returns zero for an empty string.
        /// To get the precise string width, measure the width of a string containing a
        /// single period and subtract that from the width of our original string plus a period.
        /// 
        public static Size MeasureText(Graphics g,
            string s, Font font, Size csize, eTextFormat tf)
        {
            return (TextDrawing.MeasureString(g, s, font, csize, tf));
            if (font.Italic == true)
                return (TextDrawing.MeasureString(g, s, font, csize, tf));
            Size sz1 = TextDrawing.MeasureString(g, ".", font, csize, tf);
            Size sz2 = TextDrawing.MeasureString(g, s + ".", font, csize, tf);
            return (new Size(sz2.Width - sz1.Width, sz2.Height));
        }
        public static Size MeasureText(Graphics g, string s, Font font)
        {
            return (TextDrawing.MeasureString(g, s, font));
            if (font.Italic == true)
                return (TextDrawing.MeasureString(g, s, font));
            Size sz1 = TextDrawing.MeasureString(g, ".", font);
            Size sz2 = TextDrawing.MeasureString(g, s + ".", font);
            return (new Size(sz2.Width - sz1.Width, sz2.Height));
        }
    }
}