Esempio n. 1
1
		public static Size Convert (Size value,
					    PrinterUnit fromUnit,
					    PrinterUnit toUnit)
		{
			return new Size(
				Convert(value.Width, fromUnit, toUnit),
				Convert(value.Height, fromUnit, toUnit));
		}
Esempio n. 2
0
        private static void UpdateSettings(NativeMethods.PAGESETUPDLG data, PageSettings pageSettings,
                                           PrinterSettings printerSettings)
        {
            // SetHDevMode demands AllPrintingAndUnmanagedCode Permission : Since we are calling that function we should Assert the permision,
            IntSecurity.AllPrintingAndUnmanagedCode.Assert();
            try
            {
                pageSettings.SetHdevmode(data.hDevMode);
                if (printerSettings != null)
                {
                    printerSettings.SetHdevmode(data.hDevMode);
                    printerSettings.SetHdevnames(data.hDevNames);
                }
            }
            finally
            {
                CodeAccessPermission.RevertAssert();
            }

            Margins newMargins = new Margins();

            newMargins.Left   = data.marginLeft;
            newMargins.Top    = data.marginTop;
            newMargins.Right  = data.marginRight;
            newMargins.Bottom = data.marginBottom;

            PrinterUnit fromUnit = ((data.Flags & NativeMethods.PSD_INHUNDREDTHSOFMILLIMETERS) != 0)
                                   ? PrinterUnit.HundredthsOfAMillimeter
                                   : PrinterUnit.ThousandthsOfAnInch;

            pageSettings.Margins = PrinterUnitConvert.Convert(newMargins, fromUnit, PrinterUnit.Display);
        }
Esempio n. 3
0
        private static double UnitsPerDisplay(PrinterUnit unit)
        {
            double result;

            switch (unit)
            {
            case PrinterUnit.Display:
                result = 1.0;
                break;

            case PrinterUnit.ThousandthsOfAnInch:
                result = 10.0;
                break;

            case PrinterUnit.HundredthsOfAMillimeter:
                result = 25.4;
                break;

            case PrinterUnit.TenthsOfAMillimeter:
                result = 2.54;
                break;

            default:
                Debug.Fail("Unknown PrinterUnit " + unit);
                result = 1.0;
                break;
            }

            return(result);
        }
Esempio n. 4
0
        public static double Convert(double value, PrinterUnit fromUnit, PrinterUnit toUnit)
        {
            double num  = UnitsPerDisplay(fromUnit);
            double num2 = UnitsPerDisplay(toUnit);

            return((value * num2) / num);
        }
        private static void UpdateSettings(System.Windows.Forms.NativeMethods.PAGESETUPDLG data, System.Drawing.Printing.PageSettings pageSettings, System.Drawing.Printing.PrinterSettings printerSettings)
        {
            System.Windows.Forms.IntSecurity.AllPrintingAndUnmanagedCode.Assert();
            try
            {
                pageSettings.SetHdevmode(data.hDevMode);
                if (printerSettings != null)
                {
                    printerSettings.SetHdevmode(data.hDevMode);
                    printerSettings.SetHdevnames(data.hDevNames);
                }
            }
            finally
            {
                CodeAccessPermission.RevertAssert();
            }
            Margins margins = new Margins {
                Left   = data.marginLeft,
                Top    = data.marginTop,
                Right  = data.marginRight,
                Bottom = data.marginBottom
            };
            PrinterUnit fromUnit = ((data.Flags & 8) != 0) ? PrinterUnit.HundredthsOfAMillimeter : PrinterUnit.ThousandthsOfAnInch;

            pageSettings.Margins = PrinterUnitConvert.Convert(margins, fromUnit, PrinterUnit.Display);
        }
Esempio n. 6
0
 public PageSetup()
 {
     aryKey = new object[PARAMCOUNT];
     Initialize(null);
     printUnit        = PrinterUnit.Display;
     MaxCharsOfCyCell = 0;
 }
Esempio n. 7
0
 public PageSetup(PrinterUnit PrintUnit, PrintDocument printDoc)
 {
     aryKey = new object[PARAMCOUNT];
     Initialize(printDoc);
     printUnit        = PrintUnit;
     MaxCharsOfCyCell = 0;
 }
Esempio n. 8
0
        /// <summary>
        /// Converts the value, in fromUnit units, to toUnit units.
        /// </summary>
        public static double Convert(double value, PrinterUnit fromUnit, PrinterUnit toUnit)
        {
            double fromUnitsPerDisplay = UnitsPerDisplay(fromUnit);
            double toUnitsPerDisplay   = UnitsPerDisplay(toUnit);

            return(value * toUnitsPerDisplay / fromUnitsPerDisplay);
        }
Esempio n. 9
0
 /// <summary>
 /// Converts the value, in fromUnit units, to toUnit units.
 /// </summary>
 public static Point Convert(Point value, PrinterUnit fromUnit, PrinterUnit toUnit)
 {
     return(new Point(
                Convert(value.X, fromUnit, toUnit),
                Convert(value.Y, fromUnit, toUnit)
                ));
 }
Esempio n. 10
0
 /// <summary>
 /// Converts the value, in fromUnit units, to toUnit units.
 /// </summary>
 public static Size Convert(Size value, PrinterUnit fromUnit, PrinterUnit toUnit)
 {
     return(new Size(
                Convert(value.Width, fromUnit, toUnit),
                Convert(value.Height, fromUnit, toUnit)
                ));
 }
 /// <include file='doc\PrinterUnitConvert.uex' path='docs/doc[@for="PrinterUnitConvert.Convert4"]/*' />
 /// <devdoc>
 ///    <para>
 ///       Converts the value, in fromUnit units, to toUnit units.
 ///    </para>
 /// </devdoc>
 public static Rectangle Convert(Rectangle value, PrinterUnit fromUnit, PrinterUnit toUnit) {
     return new Rectangle(
                         Convert(value.X, fromUnit, toUnit),
                         Convert(value.Y, fromUnit, toUnit),
                         Convert(value.Width, fromUnit, toUnit),
                         Convert(value.Height, fromUnit, toUnit)
                         );
 }
Esempio n. 12
0
 public static Rectangle Convert
     (Rectangle value, PrinterUnit fromUnit, PrinterUnit toUnit)
 {
     return(new Rectangle(Convert(value.X, fromUnit, toUnit),
                          Convert(value.Y, fromUnit, toUnit),
                          Convert(value.Width, fromUnit, toUnit),
                          Convert(value.Height, fromUnit, toUnit)));
 }
Esempio n. 13
0
 public static Margins Convert
     (Margins value, PrinterUnit fromUnit, PrinterUnit toUnit)
 {
     return(new Margins
                (Convert(value.Left, fromUnit, toUnit),
                Convert(value.Right, fromUnit, toUnit),
                Convert(value.Top, fromUnit, toUnit),
                Convert(value.Bottom, fromUnit, toUnit)));
 }
Esempio n. 14
0
        /// <summary>
        /// Convert rectangle from unit to unit
        /// </summary>
        /// <param name="r">Rectangle to convert</param>
        /// <param name="source">Source unit</param>
        /// <param name="dest">Dest unit</param>
        /// <returns>Rectangle converted</returns>
        public static RectangleF Convert(RectangleF r, PrinterUnit source, PrinterUnit dest)
        {
            float l = (float)PrinterUnitConvert.Convert(r.Left, source, dest);
            float t = (float)PrinterUnitConvert.Convert(r.Top, source, dest);
            float w = (float)PrinterUnitConvert.Convert(r.Width, source, dest);
            float h = (float)PrinterUnitConvert.Convert(r.Height, source, dest);

            return(new RectangleF(l, t, w, h));
        }
Esempio n. 15
0
        public static int Convert(int value,
                                  PrinterUnit fromUnit,
                                  PrinterUnit toUnit)
        {
            double rslt;

            rslt = Convert((double)value, fromUnit, toUnit);
            return((int)Math.Round(rslt));
        }
Esempio n. 16
0
        /// <summary>
        /// Convert paper size from unit to unit
        /// </summary>
        /// <param name="paperSize">Paper size to convert</param>
        /// <param name="source">Source unit</param>
        /// <param name="dest">Dest unit</param>
        /// <returns>Paper size converted</returns>
        public static PaperSize Convert(PaperSize paperSize, PrinterUnit source, PrinterUnit dest)
        {
            int       w   = PrinterUnitConvert.Convert(paperSize.Width, source, dest);
            int       h   = PrinterUnitConvert.Convert(paperSize.Height, source, dest);
            PaperSize ret = new PaperSize(paperSize.PaperName, w, h);

            ret.RawKind = paperSize.RawKind;
            return(ret);
        }
Esempio n. 17
0
 public static int Convert
     (int value, PrinterUnit fromUnit, PrinterUnit toUnit)
 {
                 #if CONFIG_EXTENDED_NUMERICS
     return((int)Math.Round
                (Convert((double)value, fromUnit, toUnit)));
                 #else
     return((int)
            (Convert((double)value, fromUnit, toUnit) + 0.5));
                 #endif
 }
Esempio n. 18
0
        /// <summary>
        /// Converts the value, in fromUnit units, to toUnit units.
        /// </summary>
        public static Margins Convert(Margins value, PrinterUnit fromUnit, PrinterUnit toUnit)
        {
            Margins result = new Margins();

            result.DoubleLeft   = Convert(value.DoubleLeft, fromUnit, toUnit);
            result.DoubleRight  = Convert(value.DoubleRight, fromUnit, toUnit);
            result.DoubleTop    = Convert(value.DoubleTop, fromUnit, toUnit);
            result.DoubleBottom = Convert(value.DoubleBottom, fromUnit, toUnit);

            return(result);
        }
Esempio n. 19
0
		public static double Convert (double value,
					      PrinterUnit fromUnit,
					      PrinterUnit toUnit)
		{
			switch (fromUnit)
			{
				case PrinterUnit.Display:
					switch (toUnit)
					{
						case PrinterUnit.Display: return value;
						case PrinterUnit.ThousandthsOfAnInch: return value * 10;
						case PrinterUnit.HundredthsOfAMillimeter: return value * 25.4;
						case PrinterUnit.TenthsOfAMillimeter: return value * 2.54;
					}
					break;
				case PrinterUnit.ThousandthsOfAnInch:
					switch (toUnit)
					{
						case PrinterUnit.Display: return value / 10;
						case PrinterUnit.ThousandthsOfAnInch: return value;
						case PrinterUnit.HundredthsOfAMillimeter: return value * 2.54;
						case PrinterUnit.TenthsOfAMillimeter: return value * 0.254;
					}
					break;
				case PrinterUnit.HundredthsOfAMillimeter:
					switch (toUnit)
					{
						case PrinterUnit.Display: return value / 25.4;
						case PrinterUnit.ThousandthsOfAnInch: return value / 2.54;
						case PrinterUnit.HundredthsOfAMillimeter: return value;
						case PrinterUnit.TenthsOfAMillimeter: return value / 10;
					}
					break;
				case PrinterUnit.TenthsOfAMillimeter:
					switch (toUnit)
					{
						case PrinterUnit.Display: return value / 2.54;
						case PrinterUnit.ThousandthsOfAnInch: return value / 0.254;
						case PrinterUnit.HundredthsOfAMillimeter: return value * 10;
						case PrinterUnit.TenthsOfAMillimeter: return value;
					}
					break;
			}
			// should never happen
			throw new NotImplementedException();
		}
        private static double UnitsPerDisplay(PrinterUnit unit)
        {
            switch (unit)
            {
                case PrinterUnit.Display:
                    return 1.0;

                case PrinterUnit.ThousandthsOfAnInch:
                    return 10.0;

                case PrinterUnit.HundredthsOfAMillimeter:
                    return 25.4;

                case PrinterUnit.TenthsOfAMillimeter:
                    return 2.54;
            }
            return 1.0;
        }
Esempio n. 21
0
        private static double UnitsPerDisplay(PrinterUnit unit)
        {
            switch (unit)
            {
            case PrinterUnit.Display:
                return(1.0);

            case PrinterUnit.ThousandthsOfAnInch:
                return(10.0);

            case PrinterUnit.HundredthsOfAMillimeter:
                return(25.4);

            case PrinterUnit.TenthsOfAMillimeter:
                return(2.54);
            }
            return(1.0);
        }
Esempio n. 22
0
        private static void UpdateSettings(NativeMethods.PAGESETUPDLG data, PageSettings pageSettings,
                                           PrinterSettings printerSettings)
        {
            pageSettings.SetHdevmode(data.hDevMode);
            if (printerSettings != null)
            {
                printerSettings.SetHdevmode(data.hDevMode);
                printerSettings.SetHdevnames(data.hDevNames);
            }

            Margins newMargins = new Margins();

            newMargins.Left   = data.marginLeft;
            newMargins.Top    = data.marginTop;
            newMargins.Right  = data.marginRight;
            newMargins.Bottom = data.marginBottom;

            PrinterUnit fromUnit = ((data.Flags & NativeMethods.PSD_INHUNDREDTHSOFMILLIMETERS) != 0)
                                   ? PrinterUnit.HundredthsOfAMillimeter
                                   : PrinterUnit.ThousandthsOfAnInch;

            pageSettings.Margins = PrinterUnitConvert.Convert(newMargins, fromUnit, PrinterUnit.Display);
        }
Esempio n. 23
0
        public static double Convert(double value,
                                     PrinterUnit fromUnit,
                                     PrinterUnit toUnit)
        {
            switch (fromUnit)
            {
            case PrinterUnit.Display:
                switch (toUnit)
                {
                case PrinterUnit.Display: return(value);

                case PrinterUnit.ThousandthsOfAnInch: return(value * 10);

                case PrinterUnit.HundredthsOfAMillimeter: return(value * 25.4);

                case PrinterUnit.TenthsOfAMillimeter: return(value * 2.54);
                }
                break;

            case PrinterUnit.ThousandthsOfAnInch:
                switch (toUnit)
                {
                case PrinterUnit.Display: return(value / 10);

                case PrinterUnit.ThousandthsOfAnInch: return(value);

                case PrinterUnit.HundredthsOfAMillimeter: return(value * 2.54);

                case PrinterUnit.TenthsOfAMillimeter: return(value * 0.254);
                }
                break;

            case PrinterUnit.HundredthsOfAMillimeter:
                switch (toUnit)
                {
                case PrinterUnit.Display: return(value / 25.4);

                case PrinterUnit.ThousandthsOfAnInch: return(value / 2.54);

                case PrinterUnit.HundredthsOfAMillimeter: return(value);

                case PrinterUnit.TenthsOfAMillimeter: return(value / 10);
                }
                break;

            case PrinterUnit.TenthsOfAMillimeter:
                switch (toUnit)
                {
                case PrinterUnit.Display: return(value / 2.54);

                case PrinterUnit.ThousandthsOfAnInch: return(value / 0.254);

                case PrinterUnit.HundredthsOfAMillimeter: return(value * 10);

                case PrinterUnit.TenthsOfAMillimeter: return(value);
                }
                break;
            }
            // should never happen
            throw new NotImplementedException();
        }
 /// <include file='doc\PrinterUnitConvert.uex' path='docs/doc[@for="PrinterUnitConvert.Convert1"]/*' />
 /// <devdoc>
 ///    <para>
 ///       Converts the value, in fromUnit units, to toUnit units.
 ///    </para>
 /// </devdoc>
 public static int Convert(int value, PrinterUnit fromUnit, PrinterUnit toUnit) {
     return(int) Math.Round(Convert((double)value, fromUnit, toUnit));
 }
Esempio n. 25
0
 /// <summary>
 /// Convert rectangle from unit to unit
 /// </summary>
 /// <param name="r">Rectangle to convert</param>
 /// <param name="source">Source unit</param>
 /// <param name="dest">Dest unit</param>
 /// <returns>Rectangle converted</returns>
 public static Rectangle Convert(Rectangle r, PrinterUnit source, PrinterUnit dest)
 {
     return(PrinterUnitConvert.Convert(r, source, dest));
 }
        public void Convert_Int_ReturnsExpected(PrinterUnit fromUnit, PrinterUnit toUnit, int expectedResult)
        {
            var converted = PrinterUnitConvert.Convert(100, fromUnit, toUnit);

            Assert.Equal(expectedResult, converted);
        }
        public void Convert_Rectangle_ReturnsExpected(PrinterUnit fromUnit, PrinterUnit toUnit, int expectedLeftValue, int expectedRightValue)
        {
            var converted = PrinterUnitConvert.Convert(new Rectangle(100, 1000, 100, 1000), fromUnit, toUnit);

            Assert.Equal(new Rectangle(expectedLeftValue, expectedRightValue, expectedLeftValue, expectedRightValue), converted);
        }
        protected override bool RunDialog(IntPtr hwndOwner)
        {
            System.Windows.Forms.NativeMethods.PAGESETUPDLG pagesetupdlg;
            bool flag2;

            System.Windows.Forms.IntSecurity.SafePrinting.Demand();
            System.Windows.Forms.NativeMethods.WndProc proc = new System.Windows.Forms.NativeMethods.WndProc(this.HookProc);
            if (this.pageSettings == null)
            {
                throw new ArgumentException(System.Windows.Forms.SR.GetString("PSDcantShowWithoutPage"));
            }
            pagesetupdlg = new System.Windows.Forms.NativeMethods.PAGESETUPDLG {
                lStructSize       = Marshal.SizeOf(pagesetupdlg),
                Flags             = this.GetFlags(),
                hwndOwner         = hwndOwner,
                lpfnPageSetupHook = proc
            };
            PrinterUnit thousandthsOfAnInch = PrinterUnit.ThousandthsOfAnInch;

            if (this.EnableMetric)
            {
                StringBuilder lpLCData = new StringBuilder(2);
                if ((UnsafeNativeMethods.GetLocaleInfo(System.Windows.Forms.NativeMethods.LOCALE_USER_DEFAULT, 13, lpLCData, lpLCData.Capacity) > 0) && (int.Parse(lpLCData.ToString(), CultureInfo.InvariantCulture) == 0))
                {
                    thousandthsOfAnInch = PrinterUnit.HundredthsOfAMillimeter;
                }
            }
            if (this.MinMargins != null)
            {
                Margins margins = PrinterUnitConvert.Convert(this.MinMargins, PrinterUnit.Display, thousandthsOfAnInch);
                pagesetupdlg.minMarginLeft   = margins.Left;
                pagesetupdlg.minMarginTop    = margins.Top;
                pagesetupdlg.minMarginRight  = margins.Right;
                pagesetupdlg.minMarginBottom = margins.Bottom;
            }
            if (this.pageSettings.Margins != null)
            {
                Margins margins2 = PrinterUnitConvert.Convert(this.pageSettings.Margins, PrinterUnit.Display, thousandthsOfAnInch);
                pagesetupdlg.marginLeft   = margins2.Left;
                pagesetupdlg.marginTop    = margins2.Top;
                pagesetupdlg.marginRight  = margins2.Right;
                pagesetupdlg.marginBottom = margins2.Bottom;
            }
            pagesetupdlg.marginLeft   = Math.Max(pagesetupdlg.marginLeft, pagesetupdlg.minMarginLeft);
            pagesetupdlg.marginTop    = Math.Max(pagesetupdlg.marginTop, pagesetupdlg.minMarginTop);
            pagesetupdlg.marginRight  = Math.Max(pagesetupdlg.marginRight, pagesetupdlg.minMarginRight);
            pagesetupdlg.marginBottom = Math.Max(pagesetupdlg.marginBottom, pagesetupdlg.minMarginBottom);
            System.Drawing.Printing.PrinterSettings settings = (this.printerSettings == null) ? this.pageSettings.PrinterSettings : this.printerSettings;
            System.Windows.Forms.IntSecurity.AllPrintingAndUnmanagedCode.Assert();
            try
            {
                pagesetupdlg.hDevMode  = settings.GetHdevmode(this.pageSettings);
                pagesetupdlg.hDevNames = settings.GetHdevnames();
            }
            finally
            {
                CodeAccessPermission.RevertAssert();
            }
            try
            {
                if (!UnsafeNativeMethods.PageSetupDlg(pagesetupdlg))
                {
                    return(false);
                }
                UpdateSettings(pagesetupdlg, this.pageSettings, this.printerSettings);
                flag2 = true;
            }
            finally
            {
                UnsafeNativeMethods.GlobalFree(new HandleRef(pagesetupdlg, pagesetupdlg.hDevMode));
                UnsafeNativeMethods.GlobalFree(new HandleRef(pagesetupdlg, pagesetupdlg.hDevNames));
            }
            return(flag2);
        }
	// Methods
	public static double Convert(double value, PrinterUnit fromUnit, PrinterUnit toUnit) {}
Esempio n. 30
0
        // Convert from one unit to another.
        public static double Convert
            (double value, PrinterUnit fromUnit, PrinterUnit toUnit)
        {
            switch (fromUnit)
            {
            case PrinterUnit.Display:
            {
                switch (toUnit)
                {
                case PrinterUnit.Display: break;

                case PrinterUnit.ThousandthsOfAnInch:
                {
                    value /= 10.0;
                }
                break;

                case PrinterUnit.HundredthsOfAMillimeter:
                {
                    value *= 0.00254;
                }
                break;

                case PrinterUnit.TenthsOfAMillimeter:
                {
                    value *= 0.0254;
                }
                break;
                }
            }
            break;

            case PrinterUnit.ThousandthsOfAnInch:
            {
                switch (toUnit)
                {
                case PrinterUnit.Display:
                {
                    value *= 10.0;
                }
                break;

                case PrinterUnit.ThousandthsOfAnInch: break;

                case PrinterUnit.HundredthsOfAMillimeter:
                {
                    value *= 0.000254;
                }
                break;

                case PrinterUnit.TenthsOfAMillimeter:
                {
                    value *= 0.00254;
                }
                break;
                }
            }
            break;

            case PrinterUnit.HundredthsOfAMillimeter:
            {
                switch (toUnit)
                {
                case PrinterUnit.Display:
                {
                    value /= 0.00254;
                }
                break;

                case PrinterUnit.ThousandthsOfAnInch:
                {
                    value /= 0.000254;
                }
                break;

                case PrinterUnit.HundredthsOfAMillimeter: break;

                case PrinterUnit.TenthsOfAMillimeter:
                {
                    value /= 10.0;
                }
                break;
                }
            }
            break;

            case PrinterUnit.TenthsOfAMillimeter:
            {
                switch (toUnit)
                {
                case PrinterUnit.Display:
                {
                    value = value / 0.0254;
                }
                break;

                case PrinterUnit.ThousandthsOfAnInch:
                {
                    value = value / 0.00254;
                }
                break;

                case PrinterUnit.HundredthsOfAMillimeter:
                {
                    value *= 10.0;
                }
                break;

                case PrinterUnit.TenthsOfAMillimeter: break;
                }
            }
            break;
            }
            return(value);
        }
	// Convert from one unit to another.
	public static double Convert
				(double value, PrinterUnit fromUnit, PrinterUnit toUnit)
			{
				switch(fromUnit)
				{
					case PrinterUnit.Display:
					{
						switch(toUnit)
						{
							case PrinterUnit.Display: break;

							case PrinterUnit.ThousandthsOfAnInch:
							{
								value /= 10.0;
							}
							break;

							case PrinterUnit.HundredthsOfAMillimeter:
							{
								value *= 0.00254;
							}
							break;

							case PrinterUnit.TenthsOfAMillimeter:
							{
								value *= 0.0254;
							}
							break;
						}
					}
					break;

					case PrinterUnit.ThousandthsOfAnInch:
					{
						switch(toUnit)
						{
							case PrinterUnit.Display:
							{
								value *= 10.0;
							}
							break;

							case PrinterUnit.ThousandthsOfAnInch: break;

							case PrinterUnit.HundredthsOfAMillimeter:
							{
								value *= 0.000254;
							}
							break;

							case PrinterUnit.TenthsOfAMillimeter:
							{
								value *= 0.00254;
							}
							break;
						}
					}
					break;

					case PrinterUnit.HundredthsOfAMillimeter:
					{
						switch(toUnit)
						{
							case PrinterUnit.Display:
							{
								value /= 0.00254;
							}
							break;

							case PrinterUnit.ThousandthsOfAnInch:
							{
								value /= 0.000254;
							}
							break;

							case PrinterUnit.HundredthsOfAMillimeter: break;

							case PrinterUnit.TenthsOfAMillimeter:
							{
								value /= 10.0;
							}
							break;
						}
					}
					break;

					case PrinterUnit.TenthsOfAMillimeter:
					{
						switch(toUnit)
						{
							case PrinterUnit.Display:
							{
								value = value / 0.0254;
							}
							break;

							case PrinterUnit.ThousandthsOfAnInch:
							{
								value = value / 0.00254;
							}
							break;

							case PrinterUnit.HundredthsOfAMillimeter:
							{
								value *= 10.0;
							}
							break;

							case PrinterUnit.TenthsOfAMillimeter: break;
						}
					}
					break;
				}
				return value;
			}
 /// <include file='doc\PrinterUnitConvert.uex' path='docs/doc[@for="PrinterUnitConvert.Convert"]/*' />
 /// <devdoc>
 ///    <para>
 ///       Converts the value, in fromUnit units, to toUnit units.
 ///    </para>
 /// </devdoc>
 public static double Convert(double value, PrinterUnit fromUnit, PrinterUnit toUnit) {
     double fromUnitsPerDisplay = UnitsPerDisplay(fromUnit);
     double toUnitsPerDisplay = UnitsPerDisplay(toUnit);
     return value * toUnitsPerDisplay / fromUnitsPerDisplay;
 }
Esempio n. 33
0
		public static int Convert (int value,
					   PrinterUnit fromUnit,
					   PrinterUnit toUnit)
		{
			double rslt;
			rslt = Convert ((double) value, fromUnit, toUnit);
			return (int) Math.Round (rslt);			

		}
Esempio n. 34
0
		public static Margins Convert (Margins value,
					       PrinterUnit fromUnit,
					       PrinterUnit toUnit)
		{
			return new Margins(
				Convert(value.Left, fromUnit, toUnit),
				Convert(value.Right, fromUnit, toUnit),
				Convert(value.Top, fromUnit, toUnit),
				Convert(value.Bottom, fromUnit, toUnit));
		}
        private static double UnitsPerDisplay(PrinterUnit unit) {
            double result;
            switch (unit) {
                case PrinterUnit.Display:
                    result = 1.0;
                    break;
                case PrinterUnit.ThousandthsOfAnInch:
                    result = 10.0;
                    break;
                case PrinterUnit.HundredthsOfAMillimeter:
                    result = 25.4;
                    break;
                case PrinterUnit.TenthsOfAMillimeter:
                    result = 2.54;
                    break;
                default:
                    Debug.Fail("Unknown PrinterUnit " + unit);
                    result = 1.0;
                    break; 
            }

            return result;
        }
	public static int Convert(int value, PrinterUnit fromUnit, PrinterUnit toUnit) {}
Esempio n. 37
0
 /// <summary>
 /// Converts the value, in fromUnit units, to toUnit units.
 /// </summary>
 public static int Convert(int value, PrinterUnit fromUnit, PrinterUnit toUnit)
 {
     return((int)Math.Round(Convert((double)value, fromUnit, toUnit)));
 }
        /// <include file='doc\PageSetupDialog.uex' path='docs/doc[@for="PageSetupDialog.RunDialog"]/*' />
        /// <devdoc>
        /// </devdoc>
        /// <internalonly/>
        protected override bool RunDialog(IntPtr hwndOwner)
        {
            IntSecurity.SafePrinting.Demand();

            NativeMethods.WndProc hookProcPtr = new NativeMethods.WndProc(this.HookProc);
            if (pageSettings == null)
            {
                throw new ArgumentException(SR.GetString(SR.PSDcantShowWithoutPage));
            }

            NativeMethods.PAGESETUPDLG data = new NativeMethods.PAGESETUPDLG();
            data.lStructSize       = Marshal.SizeOf(data);
            data.Flags             = GetFlags();
            data.hwndOwner         = hwndOwner;
            data.lpfnPageSetupHook = hookProcPtr;

            if (MinMargins != null)
            {
                PrinterUnit toUnit  = PrinterUnit.ThousandthsOfAnInch;
                Margins     margins = PrinterUnitConvert.Convert(MinMargins, PrinterUnit.Display, toUnit);
                data.minMarginLeft   = margins.Left;
                data.minMarginTop    = margins.Top;
                data.minMarginRight  = margins.Right;
                data.minMarginBottom = margins.Bottom;
            }

            if (pageSettings.Margins != null)
            {
                PrinterUnit toUnit  = PrinterUnit.ThousandthsOfAnInch;
                Margins     margins = PrinterUnitConvert.Convert(pageSettings.Margins, PrinterUnit.Display, toUnit);
                data.marginLeft   = margins.Left;
                data.marginTop    = margins.Top;
                data.marginRight  = margins.Right;
                data.marginBottom = margins.Bottom;
            }

            // Ensure that the margins are >= minMargins.
            // This is a requirement of the PAGESETUPDLG structure.
            //
            data.marginLeft   = Math.Max(data.marginLeft, data.minMarginLeft);
            data.marginTop    = Math.Max(data.marginTop, data.minMarginTop);
            data.marginRight  = Math.Max(data.marginRight, data.minMarginRight);
            data.marginBottom = Math.Max(data.marginBottom, data.minMarginBottom);

            PrinterSettings printer = (printerSettings == null) ? pageSettings.PrinterSettings : printerSettings;

            IntSecurity.AllPrinting.Assert();

            try {
                data.hDevMode  = printer.GetHdevmode(pageSettings);
                data.hDevNames = printer.GetHdevnames();
            }
            finally {
                CodeAccessPermission.RevertAssert();
            }

            try {
                bool status = UnsafeNativeMethods.PageSetupDlg(data);
                if (!status)
                {
                    // Debug.WriteLine(Windows.CommonDialogErrorToString(Windows.CommDlgExtendedError()));
                    return(false);
                }

                UpdateSettings(data, pageSettings, printerSettings); // yes, printerSettings, not printer
                return(true);
            }
            finally {
                UnsafeNativeMethods.GlobalFree(new HandleRef(data, data.hDevMode));
                UnsafeNativeMethods.GlobalFree(new HandleRef(data, data.hDevNames));
            }
        }
 public static double Convert(double value, PrinterUnit fromUnit, PrinterUnit toUnit)
 {
     double num = UnitsPerDisplay(fromUnit);
     double num2 = UnitsPerDisplay(toUnit);
     return ((value * num2) / num);
 }
        public void Convert_Margins_ReturnsExpected(PrinterUnit fromUnit, PrinterUnit toUnit, int expectedLeft, int expectedRight, int expectedTop, int expectedBottom)
        {
            var converted = PrinterUnitConvert.Convert(new Margins(100, 1000, 100, 1000), fromUnit, toUnit);

            Assert.Equal(new Margins(expectedLeft, expectedRight, expectedTop, expectedBottom), converted);
        }
Esempio n. 41
0
		public static Point Convert (Point value,
					     PrinterUnit fromUnit,
					     PrinterUnit toUnit)
		{
			return new Point(
				Convert(value.X, fromUnit, toUnit),
				Convert(value.Y, fromUnit, toUnit));
		}
        public void Convert_Point_ReturnsExpected(PrinterUnit fromUnit, PrinterUnit toUnit, int expectedX, int expectedY)
        {
            var converted = PrinterUnitConvert.Convert(new Point(100, 1000), fromUnit, toUnit);

            Assert.Equal(new Point(expectedX, expectedY), converted);
        }
	public static Margins Convert(Margins value, PrinterUnit fromUnit, PrinterUnit toUnit) {}
	public static System.Drawing.Point Convert(System.Drawing.Point value, PrinterUnit fromUnit, PrinterUnit toUnit) {}
Esempio n. 45
0
 /// <summary>
 /// Convert margins from unit to unit
 /// </summary>
 /// <param name="m">Source margins</param>
 /// <param name="source">Source unit</param>
 /// <param name="dest">Dest unit</param>
 /// <returns>Margins converted</returns>
 public static Margins Convert(Margins m, PrinterUnit source, PrinterUnit dest)
 {
     return(PrinterUnitConvert.Convert(m, source, dest));
 }
 public static Margins Convert(Margins value, PrinterUnit fromUnit, PrinterUnit toUnit)
 {
     return new Margins { DoubleLeft = Convert(value.DoubleLeft, fromUnit, toUnit), DoubleRight = Convert(value.DoubleRight, fromUnit, toUnit), DoubleTop = Convert(value.DoubleTop, fromUnit, toUnit), DoubleBottom = Convert(value.DoubleBottom, fromUnit, toUnit) };
 }
	public static System.Drawing.Size Convert(System.Drawing.Size value, PrinterUnit fromUnit, PrinterUnit toUnit) {}
	public static System.Drawing.Rectangle Convert(System.Drawing.Rectangle value, PrinterUnit fromUnit, PrinterUnit toUnit) {}
        /// <include file='doc\PrinterUnitConvert.uex' path='docs/doc[@for="PrinterUnitConvert.Convert5"]/*' />
        /// <devdoc>
        ///    <para>
        ///       Converts the value, in fromUnit units, to toUnit units.
        ///    </para>
        /// </devdoc>
        public static Margins Convert(Margins value, PrinterUnit fromUnit, PrinterUnit toUnit) {
            Margins result = new Margins();

            result.DoubleLeft = Convert(value.DoubleLeft, fromUnit, toUnit);
            result.DoubleRight = Convert(value.DoubleRight, fromUnit, toUnit);
            result.DoubleTop = Convert(value.DoubleTop, fromUnit, toUnit);
            result.DoubleBottom = Convert(value.DoubleBottom, fromUnit, toUnit);

            return result;
        }
Esempio n. 50
0
        protected override bool RunDialog(IntPtr hwndOwner)
        {
            NativeMethods.WndProc hookProcPtr = new NativeMethods.WndProc(HookProc);
            if (pageSettings == null)
            {
                throw new ArgumentException(SR.PSDcantShowWithoutPage);
            }

            NativeMethods.PAGESETUPDLG data = new NativeMethods.PAGESETUPDLG();
            data.lStructSize       = Marshal.SizeOf(data);
            data.Flags             = GetFlags();
            data.hwndOwner         = hwndOwner;
            data.lpfnPageSetupHook = hookProcPtr;

            PrinterUnit toUnit = PrinterUnit.ThousandthsOfAnInch;

            // Below was a breaking change from RTM and EVERETT even though this was a correct FIX.
            // EnableMetric is a new Whidbey property which we allow the users to choose between the AutoConversion or not.
            if (EnableMetric)
            {
                //take the Units of Measurement while determining the PrinterUnits...
                //
                StringBuilder sb     = new StringBuilder(2);
                int           result = UnsafeNativeMethods.GetLocaleInfo(NativeMethods.LOCALE_USER_DEFAULT, NativeMethods.LOCALE_IMEASURE, sb, sb.Capacity);

                if (result > 0 && int.Parse(sb.ToString(), CultureInfo.InvariantCulture) == 0)
                {
                    toUnit = PrinterUnit.HundredthsOfAMillimeter;
                }
            }

            if (MinMargins != null)
            {
                Margins margins = PrinterUnitConvert.Convert(MinMargins, PrinterUnit.Display, toUnit);
                data.minMarginLeft   = margins.Left;
                data.minMarginTop    = margins.Top;
                data.minMarginRight  = margins.Right;
                data.minMarginBottom = margins.Bottom;
            }

            if (pageSettings.Margins != null)
            {
                Margins margins = PrinterUnitConvert.Convert(pageSettings.Margins, PrinterUnit.Display, toUnit);
                data.marginLeft   = margins.Left;
                data.marginTop    = margins.Top;
                data.marginRight  = margins.Right;
                data.marginBottom = margins.Bottom;
            }

            // Ensure that the margins are >= minMargins.
            // This is a requirement of the PAGESETUPDLG structure.
            //
            data.marginLeft   = Math.Max(data.marginLeft, data.minMarginLeft);
            data.marginTop    = Math.Max(data.marginTop, data.minMarginTop);
            data.marginRight  = Math.Max(data.marginRight, data.minMarginRight);
            data.marginBottom = Math.Max(data.marginBottom, data.minMarginBottom);

            PrinterSettings printer = printerSettings ?? pageSettings.PrinterSettings;

            data.hDevMode  = printer.GetHdevmode(pageSettings);
            data.hDevNames = printer.GetHdevnames();

            try
            {
                bool status = UnsafeNativeMethods.PageSetupDlg(data);
                if (!status)
                {
                    // Debug.WriteLine(Windows.CommonDialogErrorToString(Windows.CommDlgExtendedError()));
                    return(false);
                }

                UpdateSettings(data, pageSettings, printerSettings); // yes, printerSettings, not printer
                return(true);
            }
            finally
            {
                UnsafeNativeMethods.GlobalFree(new HandleRef(data, data.hDevMode));
                UnsafeNativeMethods.GlobalFree(new HandleRef(data, data.hDevNames));
            }
        }
	public static int Convert
				(int value, PrinterUnit fromUnit, PrinterUnit toUnit)
			{
			#if CONFIG_EXTENDED_NUMERICS
				return (int)Math.Round
					(Convert((double)value, fromUnit, toUnit));
			#else
				return (int)
					(Convert((double)value, fromUnit, toUnit) + 0.5);
			#endif
			}