mirror of
https://github.com/LorenzCK/OnTopReplica.git
synced 2024-05-20 20:33:06 +12:00
67 lines
1.6 KiB
C#
67 lines
1.6 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using System.Runtime.InteropServices;
|
|
using System.Drawing;
|
|
|
|
namespace OnTopReplica.Native {
|
|
|
|
/// <summary>A native Rectangle Structure.</summary>
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
struct NRectangle {
|
|
public NRectangle(int left, int top, int right, int bottom) {
|
|
Left = left;
|
|
Top = top;
|
|
Right = right;
|
|
Bottom = bottom;
|
|
}
|
|
|
|
public NRectangle(System.Drawing.Rectangle rect) {
|
|
Left = rect.X;
|
|
Top = rect.Y;
|
|
Right = rect.Right;
|
|
Bottom = rect.Bottom;
|
|
}
|
|
|
|
public int Left;
|
|
public int Top;
|
|
public int Right;
|
|
public int Bottom;
|
|
|
|
public int Width {
|
|
get {
|
|
return Right - Left;
|
|
}
|
|
}
|
|
public int Height {
|
|
get {
|
|
return Bottom - Top;
|
|
}
|
|
}
|
|
|
|
public System.Drawing.Rectangle ToRectangle() {
|
|
return new System.Drawing.Rectangle(Left, Top, Right - Left, Bottom - Top);
|
|
}
|
|
|
|
public System.Drawing.Size Size {
|
|
get {
|
|
return new System.Drawing.Size(Width, Height);
|
|
}
|
|
}
|
|
|
|
public override string ToString() {
|
|
return string.Format("{{{0},{1},{2},{3}}}", Left, Top, Right, Bottom);
|
|
}
|
|
|
|
}
|
|
|
|
static class NRectangleExtensions {
|
|
|
|
public static NRectangle ToNativeRectangle(this Size size) {
|
|
return new NRectangle(0, 0, size.Width, size.Height);
|
|
}
|
|
|
|
}
|
|
|
|
}
|