using System; namespace RecrownedGTK.Types { /// <summary> /// Holds a width and height while allowing for easier comparison between other <see cref="Resolution"/>s. /// </summary> public struct Resolution : IComparable<Resolution> { /// <summary> /// Dimensions of resolution. /// </summary> public int Width, Height; /// <summary> /// Constructs resolution given the dimensions. /// </summary> /// <param name="width">Width of resolution.</param> /// <param name="height">Height of resolution.</param> public Resolution(int width, int height) { Width = width; Height = height; } /// <summary> /// Compares area of this resolution to another. /// </summary> /// <param name="other">The other resolution to compare to.</param> /// <returns>A value less than 0 for this being the smaller resolution, 0 for the two being the same in area, and larger for this being the larger in area.</returns> public int CompareTo(Resolution other) { return Area() - other.Area(); } /// <summary> /// Gets a string representation of this resolution. /// </summary> /// <returns>"WidthxHeight"</returns> public override string ToString() { return Width + "x" + Height; } /// <summary> /// Calculates area of resolution. /// </summary> /// <returns>Area of resolution.</returns> public int Area() { return Width * Height; } } }