57 lines
1.9 KiB
C#
57 lines
1.9 KiB
C#
/**
|
|
*mpv.net
|
|
*Copyright(C) 2017 stax76
|
|
*
|
|
*This program is free software: you can redistribute it and/or modify
|
|
*it under the terms of the GNU General Public License as published by
|
|
*the Free Software Foundation, either version 3 of the License, or
|
|
*(at your option) any later version.
|
|
*
|
|
*This program is distributed in the hope that it will be useful,
|
|
*but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
*MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
|
|
*GNU General Public License for more details.
|
|
*
|
|
*You should have received a copy of the GNU General Public License
|
|
*along with this program. If not, see http://www.gnu.org/licenses/.
|
|
*/
|
|
|
|
using System;
|
|
|
|
namespace mpvnet
|
|
{
|
|
public static class NativeHelp
|
|
{
|
|
public static int GetResizeBorder(int v)
|
|
{
|
|
switch (v)
|
|
{
|
|
case 1 /* WMSZ_LEFT */ : return 3;
|
|
case 3 /* WMSZ_TOP */ : return 2;
|
|
case 2 /* WMSZ_RIGHT */ : return 3;
|
|
case 6 /* WMSZ_BOTTOM */ : return 2;
|
|
case 4 /* WMSZ_TOPLEFT */ : return 1;
|
|
case 5 /* WMSZ_TOPRIGHT */ : return 1;
|
|
case 7 /* WMSZ_BOTTOMLEFT */ : return 3;
|
|
case 8 /* WMSZ_BOTTOMRIGHT */: return 3;
|
|
default: return -1;
|
|
}
|
|
}
|
|
|
|
public static void SubtractWindowBorders(IntPtr hwnd, ref Native.RECT rc)
|
|
{
|
|
var b = new Native.RECT(0, 0, 0, 0);
|
|
AddWindowBorders(hwnd, ref b);
|
|
rc.Left -= b.Left;
|
|
rc.Top -= b.Top;
|
|
rc.Right -= b.Right;
|
|
rc.Bottom -= b.Bottom;
|
|
}
|
|
|
|
public static void AddWindowBorders(IntPtr hwnd, ref Native.RECT rc)
|
|
{
|
|
Native.AdjustWindowRect(ref rc, (uint)Native.GetWindowLongPtrW(hwnd, -16 /* GWL_STYLE */), false);
|
|
}
|
|
}
|
|
}
|