From f1ebd697946489664d1e9d44fa1a1d699e5ede5d Mon Sep 17 00:00:00 2001 From: Rejean Loyer Date: Thu, 16 Oct 2014 01:24:35 -0400 Subject: [PATCH] win32 driver guicondigdata work comments. --- ecere/src/gui/drivers/Win32Interface.ec | 115 ++++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) diff --git a/ecere/src/gui/drivers/Win32Interface.ec b/ecere/src/gui/drivers/Win32Interface.ec index 9037578..480edd7 100644 --- a/ecere/src/gui/drivers/Win32Interface.ec +++ b/ecere/src/gui/drivers/Win32Interface.ec @@ -944,17 +944,129 @@ class Win32Interface : Interface window.Destroy(0); return 0; } + /*case WM_GETMINMAXINFO: + { + MINMAXINFO * mmi = (MINMAXINFO *)lParam; + if(window.nativeDecorations) + { + WINDOWPLACEMENT place = { 0 }; + place.length = sizeof(WINDOWPLACEMENT); + GetWindowPlacement(windowHandle, &place); + if((place.showCmd & SW_SHOWMAXIMIZED) && window.state != maximized) + window.state = maximized; + else if((place.showCmd & SW_SHOWMINIMIZED) && window.state != minimized) + window.state = minimized; + else if((place.showCmd & SW_SHOWNORMAL) && window.state != normal && window.visible) + window.state = normal; + } + else + return (uint)DefWindowProc(windowHandle, msg, wParam, lParam); + break; + }*/ +#if 0 + case WM_WINDOWPOSCHANGED: + { + if(window.nativeDecorations) + { + int x, y, w, h; + WINDOWPOS * pos = (WINDOWPOS *)lParam; + //if((pos->flags & SWP_SHOWWINDOW)) +#if 0 + if((pos->flags & 0x800)) // SWP_STATECHANGED + { + WINDOWPLACEMENT place = { 0 }; + place.length = sizeof(WINDOWPLACEMENT); + GetWindowPlacement(windowHandle, &place); + printf("WM_WINDOWPOSCHANGED: "); + printf("SWP_STATECHANGED ("); + if((place.showCmd & SW_SHOWMAXIMIZED)) + printf("maximized"); + else if((place.showCmd & SW_SHOWMINIMIZED)) + printf("minimized"); + else if((place.showCmd & SW_SHOWNORMAL)) + printf("normal"); + printf(") "); + + /*if((place.showCmd & SW_SHOWMAXIMIZED) && window.state != maximized) + window.state = maximized; + else if((place.showCmd & SW_SHOWMINIMIZED) && window.state != minimized) + window.state = minimized; + else if((place.showCmd & SW_SHOWNORMAL) && window.state != normal && window.visible) + window.state = normal;*/ + printf("\n"); + } +#endif + if(!(pos->flags & SWP_NOMOVE) || !(pos->flags & SWP_NOSIZE)) + { + //RECT rcWindow; + //GetWindowRect(windowHandle, &rcWindow); + WINDOWPLACEMENT place = { 0 }; + place.length = sizeof(WINDOWPLACEMENT); + GetWindowPlacement(windowHandle, &place); + printf("WM_WINDOWPOSCHANGED: "); + printf("!SWP_NOMOVE || !SWP_NOSIZE ("); + + if(wParam == SIZE_MAXIMIZED && window.state != maximized) + window.state = maximized; + else if(wParam == SIZE_MINIMIZED && window.state != minimized) + window.state = minimized; + else if(wParam == SIZE_RESTORED && window.state != normal && window.visible) + window.state = normal; + + /*if((place.showCmd & SW_MAXIMIZE) && window.state != maximized) + window.state = maximized; + else if((place.showCmd & SW_MINIMIZE) && window.state != minimized) + window.state = minimized; + else if((place.showCmd & SW_RESTORE) && window.state != normal && window.visible) + window.state = normal;*/ + + //x = rcWindow.left - desktopX; + //y = rcWindow.top - desktopY; + //w = rcWindow.right - rcWindow.left; + //h = rcWindow.bottom - rcWindow.top; + x = pos->x - desktopX; + y = pos->y - desktopY; + w = pos->cx; + h = pos->cy; + printf("%d, %d, %d, %d) ", x, y, w, h); + + AeroSnapPosition(window, x, y, w, h); + if(!(pos->flags & SWP_NOSIZE) && !guiApp.modeSwitching) + window.UpdateVisual(null); + } + //printf("\n"); + } + //else + return (uint)DefWindowProc(windowHandle, msg, wParam, lParam); + break; + } +#endif case WM_MOVE: { int x, y, w, h; + //WINDOWPLACEMENT place = { 0 }; RECT rcWindow; + //place.length = sizeof(WINDOWPLACEMENT); + //GetWindowPlacement(windowHandle, &place); GetWindowRect(windowHandle, &rcWindow); +#if 0 + if((place.showCmd & SW_SHOWMAXIMIZED) && window.state != maximized) + window.state = maximized; + else if((place.showCmd & SW_SHOWMINIMIZED) && window.state != minimized) + window.state = minimized; + else if((place.showCmd & SW_SHOWNORMAL) && window.state != normal && window.visible) + window.state = normal; +#endif + x = rcWindow.left - desktopX; y = rcWindow.top - desktopY; w = rcWindow.right - rcWindow.left; h = rcWindow.bottom - rcWindow.top; + //printf("WM_MOVE - (%d,%d) (%dx%d) (%s) \n", x, y, w, h, + // window.state == maximized ? "maximized" : window.state == minimized ? "minimized" : window.state == normal ? "normal" : "BAD"); + AeroSnapPosition(window, x, y, w, h); break; } @@ -1026,6 +1138,9 @@ class Win32Interface : Interface w = rcWindow.right - rcWindow.left; h = rcWindow.bottom - rcWindow.top; + //printf("WM_SIZE - (%d,%d) (%dx%d) (%s) \n", x, y, w, h, + // wParam == SIZE_MAXIMIZED ? "SIZE_MAXIMIZED" : wParam == SIZE_MINIMIZED ? "SIZE_MINIMIZED" : wParam == SIZE_RESTORED ? "SIZE_RESTORED" : "BAD"); + AeroSnapPosition(window, x, y, w, h); if(!guiApp.modeSwitching) window.UpdateVisual(null); -- 1.8.3.1