231 lines
		
	
	
		
			7.2 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			231 lines
		
	
	
		
			7.2 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.Collections.Generic;
 | |
| using System.Diagnostics;
 | |
| using System.Drawing;
 | |
| using System.Text;
 | |
| 
 | |
| namespace DevComponents.DotNetBar.Keyboard
 | |
| {
 | |
|     /// <summary>
 | |
|     /// Provides High DPI support for DotNetBar controls.
 | |
|     /// </summary>
 | |
|     public static class Dpi
 | |
|     {
 | |
|         private static SizeF _Factor = new SizeF(1f, 1f);
 | |
|         private static bool _UseFactor = false;
 | |
| 
 | |
|         static Dpi()
 | |
|         {
 | |
|             Debug.WriteLine("Static constructor");
 | |
|         }
 | |
| 
 | |
|         public static SizeF Factor
 | |
|         {
 | |
|             get { return _Factor; }
 | |
|         }
 | |
|         public static Size Size(Size size)
 | |
|         {
 | |
|             if (!_UseFactor) return size;
 | |
|             size.Width = (int)(size.Width * _Factor.Width);
 | |
|             size.Height = (int)(size.Height * _Factor.Height);
 | |
|             return size;
 | |
|         }
 | |
|         public static Rectangle Size(Rectangle r)
 | |
|         {
 | |
|             if (!_UseFactor) return r;
 | |
|             r.Width = (int)(r.Width * _Factor.Width);
 | |
|             r.Height = (int)(r.Height * _Factor.Height);
 | |
|             return r;
 | |
|         }
 | |
| 
 | |
|         public static Point Size(Point p)
 | |
|         {
 | |
|             if (!_UseFactor) return p;
 | |
|             p.X = (int)(p.X * _Factor.Width);
 | |
|             p.Y = (int)(p.Y * _Factor.Height);
 | |
|             return p;
 | |
|         }
 | |
| 
 | |
|         //public static DevComponents.DotNetBar.Padding Size(DevComponents.DotNetBar.Padding padding)
 | |
|         //{
 | |
|         //    if (!_UseFactor) return padding;
 | |
|         //    return new Padding((int)(padding.Left * _Factor.Width), (int)(padding.Right * _Factor.Width), (int)(padding.Top * _Factor.Height), (int)(padding.Bottom * _Factor.Height));
 | |
|         //}
 | |
| 
 | |
|         public static int DescaleWidth(int width)
 | |
|         {
 | |
|             if (!_UseFactor) return width;
 | |
|             return (int)(width / _Factor.Width);
 | |
|         }
 | |
|         public static int DescaleHeight(int height)
 | |
|         {
 | |
|             if (!_UseFactor) return height;
 | |
|             return (int)(height / _Factor.Height);
 | |
|         }
 | |
| 
 | |
|         internal static System.Drawing.Size Descale(System.Drawing.Size size)
 | |
|         {
 | |
|             if (!_UseFactor) return size;
 | |
|             size.Width = (int)(size.Width / _Factor.Width);
 | |
|             size.Height = (int)(size.Height / _Factor.Height);
 | |
|             return size;
 | |
|         }
 | |
| 
 | |
|         public static int Width(int width)
 | |
|         {
 | |
|             if (!_UseFactor) return width;
 | |
|             return (int)(width * _Factor.Width);
 | |
|         }
 | |
| 
 | |
|         public static int Height(int height)
 | |
|         {
 | |
|             if (!_UseFactor) return height;
 | |
|             return (int)(height * _Factor.Height);
 | |
|         }
 | |
| 
 | |
|         public static float Height(float height)
 | |
|         {
 | |
|             if (!_UseFactor) return height;
 | |
|             return (height * _Factor.Height);
 | |
|         }
 | |
| 
 | |
|         private static int _CaptionVerticalPadding = 10;
 | |
|         public static int CaptionVerticalPadding
 | |
|         {
 | |
|             get
 | |
|             {
 | |
|                 if (!_UseFactor) return 0;
 | |
|                 return _CaptionVerticalPadding;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         public static void SetScaling(SizeF factor)
 | |
|         {
 | |
|             if(factor==_Factor) return;
 | |
|             
 | |
|             if (factor.Width == 1f && factor.Height == 1f)
 | |
|             {
 | |
|                 _UseFactor = false;
 | |
|                 _Factor = factor;
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 _UseFactor = true;
 | |
|                 _Factor = factor;
 | |
|             }
 | |
| 
 | |
|             UpdateStaticSizes();
 | |
|         }
 | |
| 
 | |
|         private static void UpdateStaticSizes()
 | |
|         {
 | |
|             Width1 = Dpi.Width(1);
 | |
|             Width2 = Dpi.Width(2);
 | |
|             Width3 = Dpi.Width(3);
 | |
|             Width4 = Dpi.Width(4);
 | |
|             Width5 = Dpi.Width(5);
 | |
|             Width6 = Dpi.Width(6);
 | |
|             Width7 = Dpi.Width(7);
 | |
|             Width8 = Dpi.Width(8);
 | |
|             Width9 = Dpi.Width(9);
 | |
|             Width10 = Dpi.Width(10);
 | |
|             Width11 = Dpi.Width(11);
 | |
|             Width12 = Dpi.Width(12);
 | |
|             Width13 = Dpi.Width(13);
 | |
|             Width14 = Dpi.Width(14);
 | |
|             Width15 = Dpi.Width(15);
 | |
|             Width16 = Dpi.Width(16);
 | |
|             Width17 = Dpi.Width(17);
 | |
|             Width18 = Dpi.Width(18);
 | |
|             Width22 = Dpi.Width(22);
 | |
|             Width24 = Dpi.Width(24);
 | |
|             Width25 = Dpi.Width(25);
 | |
|             Width28 = Dpi.Width(28);
 | |
|             Width32 = Dpi.Width(32);
 | |
|             Width34 = Dpi.Width(34);
 | |
| 
 | |
|             Height1 = Dpi.Height(1);
 | |
|             Height2 = Dpi.Height(2);
 | |
|             Height3 = Dpi.Height(3);
 | |
|             Height4 = Dpi.Height(4);
 | |
|             Height5 = Dpi.Height(5);
 | |
|             Height6 = Dpi.Height(6);
 | |
|             Height7 = Dpi.Height(7);
 | |
|             Height8 = Dpi.Height(8);
 | |
|             Height9 = Dpi.Height(9);
 | |
|             Height10 = Dpi.Height(10);
 | |
|             Height11 = Dpi.Height(11);
 | |
|             Height12 = Dpi.Height(12);
 | |
|             Height13 = Dpi.Height(13);
 | |
|             Height14 = Dpi.Height(14);
 | |
|             Height15 = Dpi.Height(15);
 | |
|             Height16 = Dpi.Height(16);
 | |
|             Height17 = Dpi.Height(17);
 | |
|             Height18 = Dpi.Height(18);
 | |
|             Height20 = Dpi.Height(20);
 | |
|             Height22 = Dpi.Height(22);
 | |
|             Height23 = Dpi.Height(23);
 | |
|             Height24 = Dpi.Height(24);
 | |
|             Height25 = Dpi.Height(25);
 | |
|             Height28 = Dpi.Height(28);
 | |
|             Height32 = Dpi.Height(32);
 | |
|         }
 | |
| 
 | |
|         #region Static Sizes
 | |
| 
 | |
|         public static int Width1 = 1;
 | |
|         public static int Width2 = 2;
 | |
|         public static int Width3 = 3;
 | |
|         public static int Width5 = 5;
 | |
|         public static int Width4 = 4;
 | |
|         public static int Width6 = 6;
 | |
|         public static int Width7 = 7;
 | |
|         public static int Width8 = 8;
 | |
|         public static int Width9 = 9;
 | |
|         public static int Width10 = 10;
 | |
|         public static int Width11 = 11;
 | |
|         public static int Width12 = 12;
 | |
|         public static int Width13 = 13;
 | |
|         public static int Width14 = 14;
 | |
|         public static int Width15 = 15;
 | |
|         public static int Width16 = 16;
 | |
|         public static int Width17 = 17;
 | |
|         public static int Width18 = 18;
 | |
|         public static int Width22 = 22;
 | |
|         public static int Width24 = 24;
 | |
|         public static int Width25 = 25;
 | |
|         public static int Width28 = 28;
 | |
|         public static int Width32 = 32;
 | |
|         public static int Width34 = 34;
 | |
|         
 | |
|         public static int Height1 = 1;
 | |
|         public static int Height2 = 2;
 | |
|         public static int Height3 = 3;
 | |
|         public static int Height4 = 4;
 | |
|         public static int Height5 = 5;
 | |
|         public static int Height6 = 6;
 | |
|         public static int Height7 = 7;
 | |
|         public static int Height8 = 8;
 | |
|         public static int Height9 = 9;
 | |
|         public static int Height10 = 10;
 | |
|         public static int Height11 = 11;
 | |
|         public static int Height12 = 12;
 | |
|         public static int Height13 = 13;
 | |
|         public static int Height14 = 14;
 | |
|         public static int Height15 = 15;
 | |
|         public static int Height16 = 16;
 | |
|         public static int Height17 = 17;
 | |
|         public static int Height18 = 18;
 | |
|         public static int Height20 = 20;
 | |
|         public static int Height22 = 22;
 | |
|         public static int Height23 = 23;
 | |
|         public static int Height24 = 24;
 | |
|         public static int Height25 = 25;
 | |
|         public static int Height28 = 28;
 | |
|         public static int Height32 = 32;
 | |
| 
 | |
| 
 | |
|         #endregion
 | |
|     }
 | |
| }
 |