You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

231 lines
7.2 KiB
C#

9 months ago
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Drawing;
using System.Text;
namespace POSV.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
}
}