public static ScaleFactor Max(int n1, int d1, int n2, int d2, ScaleFactor lastResort) { ScaleFactor a = UseIfValid(n1, d1, lastResort); ScaleFactor b = UseIfValid(n2, d2, lastResort); return(ScaleFactor.Max(a, b)); }
protected override void OnResize(EventArgs e) { base.OnResize(e); // This code fixes the size of the surfaceBox as necessary to // maintain the aspect ratio of the surface. Keeping the mouse // within 32767 is delegated to the new overflow-checking code // in Tool.cs. Size mySize = this.Size; if (this.Width == MaxSideLength && surface != null) { // Windows forms probably clamped this control's width, so we have to fix the height. mySize.Height = (int)(((long)(MaxSideLength + 1) * (long)surface.Height) / (long)surface.Width); } else if (mySize.Width == 0) { mySize.Width = 1; } if (this.Width == MaxSideLength && surface != null) { // Windows forms probably clamped this control's height, so we have to fix the width. mySize.Width = (int)(((long)(MaxSideLength + 1) * (long)surface.Width) / (long)surface.Height); } else if (mySize.Height == 0) { mySize.Height = 1; } if (mySize != this.Size) { this.Size = mySize; } if (surface == null) { this.scaleFactor = ScaleFactor.OneToOne; } else { ScaleFactor newSF = ScaleFactor.Max(this.Width, surface.Width, this.Height, surface.Height, ScaleFactor.OneToOne); this.scaleFactor = newSF; } this.rendererList.DestinationSize = this.Size; }