-/*\r
- * PROJECT: PAINT for ReactOS\r
- * LICENSE: LGPL\r
- * FILE: selection.c\r
- * PURPOSE: Window procedure of the selection window\r
- * PROGRAMMERS: Benedikt Freisen\r
- */\r
-\r
-/* INCLUDES *********************************************************/\r
-\r
-#include <windows.h>\r
-#include "globalvar.h"\r
-\r
-/* FUNCTIONS ********************************************************/\r
-\r
-BOOL moving = FALSE;\r
-short xPos;\r
-short yPos;\r
-\r
-LRESULT CALLBACK SelectionWinProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)\r
-{\r
- switch (message)\r
- {\r
- case WM_PAINT:\r
- {\r
- if (!moving)\r
- {\r
- DefWindowProc (hwnd, message, wParam, lParam);\r
- HDC hdc=GetDC(hwnd);\r
- SelectionFrame(hdc, 1, 1, rectSel_dest[2]*zoom/1000+5, rectSel_dest[3]*zoom/1000+5);\r
- ReleaseDC(hwnd, hdc);\r
- }\r
- }\r
- break;\r
- case WM_LBUTTONDOWN:\r
- xPos = LOWORD(lParam);\r
- yPos = HIWORD(lParam);\r
- SetCapture(hwnd);\r
- moving = TRUE;\r
- break;\r
- case WM_MOUSEMOVE:\r
- if (moving)\r
- {\r
- resetToU1();\r
- rectSel_dest[0]+=(short)LOWORD(lParam)-xPos;\r
- rectSel_dest[1]+=(short)HIWORD(lParam)-yPos;\r
- \r
- Rect(hDrawingDC, rectSel_src[0], rectSel_src[1], rectSel_src[0]+rectSel_src[2], rectSel_src[1]+rectSel_src[3], bgColor, bgColor, 0, TRUE);\r
- if (transpBg==0)\r
- BitBlt(hDrawingDC, rectSel_dest[0], rectSel_dest[1], rectSel_dest[2], rectSel_dest[3], hSelDC, 0, 0, SRCCOPY);\r
- else\r
- BitBlt(hDrawingDC, rectSel_dest[0], rectSel_dest[1], rectSel_dest[2], rectSel_dest[3], hSelDC, 0, 0, SRCAND);\r
- //TransparentBlt(hDrawingDC, rectSel_dest[0], rectSel_dest[1], rectSel_dest[2], rectSel_dest[3], hSelDC, 0, 0, rectSel_dest[2], rectSel_dest[3], bgColor);\r
- SendMessage(hImageArea, WM_PAINT, 0, 0);\r
- xPos = LOWORD(lParam);\r
- yPos = HIWORD(lParam);\r
- //SendMessage(hwnd, WM_PAINT, 0, 0);\r
- }\r
- break;\r
- case WM_LBUTTONUP:\r
- if (moving)\r
- {\r
- moving = FALSE;\r
- ReleaseCapture();\r
- placeSelWin();\r
- ShowWindow(hSelection, SW_HIDE);\r
- ShowWindow(hSelection, SW_SHOW);\r
- }\r
- break;\r
- default:\r
- return DefWindowProc (hwnd, message, wParam, lParam);\r
- }\r
-\r
- return 0;\r
-}\r
+/*
+ * PROJECT: PAINT for ReactOS
+ * LICENSE: LGPL
+ * FILE: selection.c
+ * PURPOSE: Window procedure of the selection window
+ * PROGRAMMERS: Benedikt Freisen
+ */
+
+/* INCLUDES *********************************************************/
+
+#include <windows.h>
+#include "globalvar.h"
+
+/* FUNCTIONS ********************************************************/
+
+BOOL moving = FALSE;
+short xPos;
+short yPos;
+
+LRESULT CALLBACK SelectionWinProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
+{
+ switch (message)
+ {
+ case WM_PAINT:
+ {
+ if (!moving)
+ {
+ DefWindowProc (hwnd, message, wParam, lParam);
+ HDC hdc=GetDC(hwnd);
+ SelectionFrame(hdc, 1, 1, rectSel_dest[2]*zoom/1000+5, rectSel_dest[3]*zoom/1000+5);
+ ReleaseDC(hwnd, hdc);
+ }
+ }
+ break;
+ case WM_LBUTTONDOWN:
+ xPos = LOWORD(lParam);
+ yPos = HIWORD(lParam);
+ SetCapture(hwnd);
+ moving = TRUE;
+ break;
+ case WM_MOUSEMOVE:
+ if (moving)
+ {
+ resetToU1();
+ rectSel_dest[0]+=(short)LOWORD(lParam)-xPos;
+ rectSel_dest[1]+=(short)HIWORD(lParam)-yPos;
+
+ Rect(hDrawingDC, rectSel_src[0], rectSel_src[1], rectSel_src[0]+rectSel_src[2], rectSel_src[1]+rectSel_src[3], bgColor, bgColor, 0, TRUE);
+ if (transpBg==0)
+ BitBlt(hDrawingDC, rectSel_dest[0], rectSel_dest[1], rectSel_dest[2], rectSel_dest[3], hSelDC, 0, 0, SRCCOPY);
+ else
+ BitBlt(hDrawingDC, rectSel_dest[0], rectSel_dest[1], rectSel_dest[2], rectSel_dest[3], hSelDC, 0, 0, SRCAND);
+ //TransparentBlt(hDrawingDC, rectSel_dest[0], rectSel_dest[1], rectSel_dest[2], rectSel_dest[3], hSelDC, 0, 0, rectSel_dest[2], rectSel_dest[3], bgColor);
+ SendMessage(hImageArea, WM_PAINT, 0, 0);
+ xPos = LOWORD(lParam);
+ yPos = HIWORD(lParam);
+ //SendMessage(hwnd, WM_PAINT, 0, 0);
+ }
+ break;
+ case WM_LBUTTONUP:
+ if (moving)
+ {
+ moving = FALSE;
+ ReleaseCapture();
+ placeSelWin();
+ ShowWindow(hSelection, SW_HIDE);
+ ShowWindow(hSelection, SW_SHOW);
+ }
+ break;
+ default:
+ return DefWindowProc (hwnd, message, wParam, lParam);
+ }
+
+ return 0;
+}