Browse Source

Extract WindowLong parameter into enum

pull/1522/head
CommonGuy 9 years ago
parent
commit
d9819ab004
  1. 13
      src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs
  2. 16
      src/Windows/Avalonia.Win32/WindowImpl.cs

13
src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs

@ -558,7 +558,18 @@ namespace Avalonia.Win32.Interop
{ {
DIB_RGB_COLORS = 0, /* color table in RGBs */ DIB_RGB_COLORS = 0, /* color table in RGBs */
DIB_PAL_COLORS /* color table in palette indices */ DIB_PAL_COLORS /* color table in palette indices */
}; }
public enum WindowLongParam
{
GWL_WNDPROC = -4,
GWL_HINSTANCE = -6,
GWL_HWNDPARENT = -8,
GWL_ID = -12,
GWL_STYLE = -16,
GWL_EXSTYLE = -20,
GWL_USERDATA = -21
}
[StructLayout(LayoutKind.Sequential)] [StructLayout(LayoutKind.Sequential)]
public struct RGBQUAD public struct RGBQUAD

16
src/Windows/Avalonia.Win32/WindowImpl.cs

@ -78,8 +78,8 @@ namespace Avalonia.Win32
{ {
get get
{ {
var style = UnmanagedMethods.GetWindowLong(_hwnd, -16); var style = UnmanagedMethods.GetWindowLong(_hwnd, (int)UnmanagedMethods.WindowLongParam.GWL_STYLE);
var exStyle = UnmanagedMethods.GetWindowLong(_hwnd, -20); var exStyle = UnmanagedMethods.GetWindowLong(_hwnd, (int)UnmanagedMethods.WindowLongParam.GWL_EXSTYLE);
var padding = new UnmanagedMethods.RECT(); var padding = new UnmanagedMethods.RECT();
if (UnmanagedMethods.AdjustWindowRectEx(ref padding, style, false, exStyle)) if (UnmanagedMethods.AdjustWindowRectEx(ref padding, style, false, exStyle))
@ -236,7 +236,7 @@ namespace Avalonia.Win32
return; return;
} }
var style = (UnmanagedMethods.WindowStyles)UnmanagedMethods.GetWindowLong(_hwnd, -16); var style = (UnmanagedMethods.WindowStyles)UnmanagedMethods.GetWindowLong(_hwnd, (int)UnmanagedMethods.WindowLongParam.GWL_STYLE);
var systemDecorationStyles = UnmanagedMethods.WindowStyles.WS_OVERLAPPED var systemDecorationStyles = UnmanagedMethods.WindowStyles.WS_OVERLAPPED
| UnmanagedMethods.WindowStyles.WS_CAPTION | UnmanagedMethods.WindowStyles.WS_CAPTION
@ -258,7 +258,7 @@ namespace Avalonia.Win32
Rect newRect; Rect newRect;
var oldThickness = BorderThickness; var oldThickness = BorderThickness;
UnmanagedMethods.SetWindowLong(_hwnd, -16, (uint)style); UnmanagedMethods.SetWindowLong(_hwnd, (int)UnmanagedMethods.WindowLongParam.GWL_STYLE, (uint)style);
if (value) if (value)
{ {
@ -805,7 +805,7 @@ namespace Avalonia.Win32
public void ShowTaskbarIcon(bool value) public void ShowTaskbarIcon(bool value)
{ {
var style = (UnmanagedMethods.WindowStyles)UnmanagedMethods.GetWindowLong(_hwnd, -20); var style = (UnmanagedMethods.WindowStyles)UnmanagedMethods.GetWindowLong(_hwnd, (int)UnmanagedMethods.WindowLongParam.GWL_EXSTYLE);
style &= ~(UnmanagedMethods.WindowStyles.WS_VISIBLE); style &= ~(UnmanagedMethods.WindowStyles.WS_VISIBLE);
@ -820,7 +820,7 @@ namespace Avalonia.Win32
{ {
//Toggle to make the styles stick //Toggle to make the styles stick
UnmanagedMethods.ShowWindow(_hwnd, ShowWindowCommand.Hide); UnmanagedMethods.ShowWindow(_hwnd, ShowWindowCommand.Hide);
UnmanagedMethods.SetWindowLong(_hwnd, -20, (uint)style); UnmanagedMethods.SetWindowLong(_hwnd, (int)UnmanagedMethods.WindowLongParam.GWL_EXSTYLE, (uint)style);
UnmanagedMethods.ShowWindow(_hwnd, windowPlacement.ShowCmd); UnmanagedMethods.ShowWindow(_hwnd, windowPlacement.ShowCmd);
} }
} }
@ -832,14 +832,14 @@ namespace Avalonia.Win32
return; return;
} }
var style = (UnmanagedMethods.WindowStyles)UnmanagedMethods.GetWindowLong(_hwnd, -16); var style = (UnmanagedMethods.WindowStyles)UnmanagedMethods.GetWindowLong(_hwnd, (int)UnmanagedMethods.WindowLongParam.GWL_STYLE);
if (value) if (value)
style |= UnmanagedMethods.WindowStyles.WS_SIZEFRAME; style |= UnmanagedMethods.WindowStyles.WS_SIZEFRAME;
else else
style &= ~(UnmanagedMethods.WindowStyles.WS_SIZEFRAME); style &= ~(UnmanagedMethods.WindowStyles.WS_SIZEFRAME);
UnmanagedMethods.SetWindowLong(_hwnd, -16, (uint)style); UnmanagedMethods.SetWindowLong(_hwnd, (int)UnmanagedMethods.WindowLongParam.GWL_STYLE, (uint)style);
_resizable = value; _resizable = value;
} }
} }

Loading…
Cancel
Save