186 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			186 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using System;
 | 
						|
using System.ComponentModel;
 | 
						|
using System.Runtime.InteropServices;
 | 
						|
using System.Drawing.Text;
 | 
						|
using System.Windows.Forms;
 | 
						|
 | 
						|
namespace DevComponents.DotNetBar.Layout
 | 
						|
{
 | 
						|
	/// <summary>
 | 
						|
	/// Represents class with static functions that provide commonly used utility functions when working with
 | 
						|
	/// Bar objects and items hosted by Bar object.
 | 
						|
	/// </summary>
 | 
						|
	internal class BarUtilities
 | 
						|
    {
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets whether StringFormat internally used by all DotNetBar controls to render text is GenericDefault. Default value is false
 | 
						|
        /// which indicates that GenericTypographic is used.
 | 
						|
        /// </summary>
 | 
						|
        public static bool UseGenericDefaultStringFormat
 | 
						|
        {
 | 
						|
            get { return TextDrawing.UseGenericDefault; }
 | 
						|
            set { TextDrawing.UseGenericDefault = value; }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the anti-alias text rendering hint that will be used to render text on controls that have AntiAlias property set to true.
 | 
						|
        /// </summary>
 | 
						|
        public static TextRenderingHint AntiAliasTextRenderingHint
 | 
						|
        {
 | 
						|
            get
 | 
						|
            {
 | 
						|
                return DisplayHelp.AntiAliasTextRenderingHint;
 | 
						|
            }
 | 
						|
            set
 | 
						|
            {
 | 
						|
            	DisplayHelp.AntiAliasTextRenderingHint = value;
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
#if FRAMEWORK20
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets whether .NET Framework TextRenderer class is used for text rendering instead of Graphics.DrawString. 
 | 
						|
        /// Default value is false. 
 | 
						|
        /// Using TextRenderer will disable the Fade and Animation effects on controls because of issues in TextRenderer when drawing text on transparent
 | 
						|
        /// surfaces.
 | 
						|
        /// </summary>
 | 
						|
        public static bool UseTextRenderer
 | 
						|
        {
 | 
						|
            get { return TextDrawing.UseTextRenderer; }
 | 
						|
            set { TextDrawing.UseTextRenderer = value; }
 | 
						|
        }
 | 
						|
#endif
 | 
						|
 | 
						|
 | 
						|
        private static bool _AlwaysGenerateAccessibilityFocusEvent = false;
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets whether items always generate the Focus accessibility event when mouse enters the item. Default value is false which indicates
 | 
						|
        /// that focus event will be raised only when item is on menu bar.
 | 
						|
        /// </summary>
 | 
						|
        public static bool AlwaysGenerateAccessibilityFocusEvent
 | 
						|
        {
 | 
						|
            get { return _AlwaysGenerateAccessibilityFocusEvent; }
 | 
						|
            set
 | 
						|
            {
 | 
						|
                _AlwaysGenerateAccessibilityFocusEvent = value;
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        internal static bool IsModalFormOpen
 | 
						|
        {
 | 
						|
            get
 | 
						|
            {
 | 
						|
#if (FRAMEWORK20)
 | 
						|
                for (int i = 0; i < System.Windows.Forms.Application.OpenForms.Count; i++)
 | 
						|
                {
 | 
						|
                    System.Windows.Forms.Form form = System.Windows.Forms.Application.OpenForms[i];
 | 
						|
                    if (form.Modal) return true;
 | 
						|
                }
 | 
						|
#endif
 | 
						|
                return false;
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        private static bool _AutoRemoveMessageFilter = false;
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets whether Application Message Filter that is registered by popup controls
 | 
						|
        /// is automatically unregistered when last control is disposed. Default value is false and
 | 
						|
        /// in most cases should not be changed.
 | 
						|
        /// </summary>
 | 
						|
        public static bool AutoRemoveMessageFilter
 | 
						|
        {
 | 
						|
            get { return _AutoRemoveMessageFilter; }
 | 
						|
            set { _AutoRemoveMessageFilter = value; }
 | 
						|
        }
 | 
						|
 | 
						|
        private static int _TextMarkupCultureSpecific = 3;
 | 
						|
        /// <summary>
 | 
						|
        /// Get or sets the text-markup padding for text measurement when running on Japanese version of Windows.
 | 
						|
        /// </summary>
 | 
						|
        public static int TextMarkupCultureSpecificPadding
 | 
						|
        {
 | 
						|
            get { return _TextMarkupCultureSpecific; }
 | 
						|
            set
 | 
						|
            {
 | 
						|
                _TextMarkupCultureSpecific = value;
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        private static bool _DisposeItemImages = false;
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets whether Image and Icon resources assigned to items and controls are automatically disposed when
 | 
						|
        /// control or item is disposed. Default value is false.
 | 
						|
        /// </summary>
 | 
						|
        public static bool DisposeItemImages
 | 
						|
        {
 | 
						|
            get
 | 
						|
            {
 | 
						|
                return _DisposeItemImages;
 | 
						|
            }
 | 
						|
            set
 | 
						|
            {
 | 
						|
                _DisposeItemImages = value;
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Disposes image reference and sets it to null.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="image">Reference to image to dispose.</param>
 | 
						|
        internal static void DisposeImage(ref System.Drawing.Image image)
 | 
						|
        {
 | 
						|
            if (image == null) return;
 | 
						|
            image.Dispose();
 | 
						|
            image = null;
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// Disposes image reference and sets it to null.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="image">Reference to image to dispose.</param>
 | 
						|
        internal static void DisposeImage(ref System.Drawing.Icon icon)
 | 
						|
        {
 | 
						|
            if (icon == null) return;
 | 
						|
            icon.Dispose();
 | 
						|
            icon = null;
 | 
						|
        }
 | 
						|
 | 
						|
        #region Delayed Invoke
 | 
						|
        /// <summary>
 | 
						|
        /// Invokes the method asynchronously using the WinForms Timer.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="method">Method to invoke.</param>
 | 
						|
        public static void InvokeDelayed(MethodInvoker method)
 | 
						|
        {
 | 
						|
            InvokeDelayed(method, 10);
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// Invokes the method asynchronously using the WinForms Timer.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="method">Method to invoke.</param>
 | 
						|
        /// <param name="delayInterval">Time in milliseconds after which method is invoked.</param>
 | 
						|
        public static void InvokeDelayed(MethodInvoker method, int delayInterval)
 | 
						|
        {
 | 
						|
            Timer delayedInvokeTimer = new Timer();
 | 
						|
            delayedInvokeTimer = new Timer();
 | 
						|
            delayedInvokeTimer.Tag = method;
 | 
						|
            delayedInvokeTimer.Interval = delayInterval;
 | 
						|
            delayedInvokeTimer.Tick += new EventHandler(DelayedInvokeTimerTick);
 | 
						|
            delayedInvokeTimer.Start();
 | 
						|
        }
 | 
						|
        private static void DelayedInvokeTimerTick(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            Timer timer = (Timer)sender;
 | 
						|
            MethodInvoker method = (MethodInvoker)timer.Tag;
 | 
						|
            timer.Stop();
 | 
						|
            timer.Dispose();
 | 
						|
            method.Invoke();
 | 
						|
        }
 | 
						|
        #endregion
 | 
						|
    }
 | 
						|
 | 
						|
	internal class BarPropertyBagKeys
 | 
						|
	{
 | 
						|
		public static string AutoHideSetting="autohide";
 | 
						|
	}
 | 
						|
}
 |