summaryrefslogtreecommitdiff
path: root/plugins/!Deprecated/MagneticWindows/src/SnapToListService.cpp
diff options
context:
space:
mode:
authorVadim Dashevskiy <watcherhd@gmail.com>2013-12-12 08:33:21 +0000
committerVadim Dashevskiy <watcherhd@gmail.com>2013-12-12 08:33:21 +0000
commit88e6efae0b8867f14d59561f6503bfc41eb0d4d3 (patch)
tree7e50e21757a5bdf221afc2f4e7aa0eee588466f1 /plugins/!Deprecated/MagneticWindows/src/SnapToListService.cpp
parenteb8546ca0013f26ed4330b35bfb7bcde0a1d9527 (diff)
MagneticWindows moved to deprecated
git-svn-id: http://svn.miranda-ng.org/main/trunk@7134 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/!Deprecated/MagneticWindows/src/SnapToListService.cpp')
-rw-r--r--plugins/!Deprecated/MagneticWindows/src/SnapToListService.cpp61
1 files changed, 61 insertions, 0 deletions
diff --git a/plugins/!Deprecated/MagneticWindows/src/SnapToListService.cpp b/plugins/!Deprecated/MagneticWindows/src/SnapToListService.cpp
new file mode 100644
index 0000000000..586fa594b1
--- /dev/null
+++ b/plugins/!Deprecated/MagneticWindows/src/SnapToListService.cpp
@@ -0,0 +1,61 @@
+#include "MagneticWindowsCore.h"
+
+INT_PTR SnapToList(WPARAM wParam, LPARAM Align)
+{
+ HWND hWnd, hWndList;
+ RECT WndRect, ListRect;
+ RECT AlignRect;
+ RECT ResultRect;
+
+ hWnd = (HWND)wParam;
+
+ hWndList = (HWND)CallService(MS_CLUI_GETHWND,0,0);
+ GetWindowRect(hWnd, &WndRect);
+ GetWindowRect(hWndList, &ListRect);
+
+ AlignRect = ListRect;
+ if ((!(MS_MW_STL_List_Left & Align)) && (MS_MW_STL_List_Right & Align)) {
+ AlignRect.left = AlignRect.right;
+ } else
+ if ((MS_MW_STL_List_Left & Align) && (!(MS_MW_STL_List_Right & Align))) {
+ AlignRect.right = AlignRect.left;
+ }
+
+ if ((!(MS_MW_STL_List_Top & Align)) && (MS_MW_STL_List_Bottom & Align)) {
+ AlignRect.top = AlignRect.bottom;
+ } else
+ if ((MS_MW_STL_List_Top & Align) && (!(MS_MW_STL_List_Bottom & Align))) {
+ AlignRect.bottom = AlignRect.top;
+ }
+
+ ResultRect = WndRect;
+ if ((MS_MW_STL_Wnd_Left & Align) && (MS_MW_STL_Wnd_Right & Align)) {
+ ResultRect.left = AlignRect.left;
+ ResultRect.right = AlignRect.right;
+ } else
+ if ((!(MS_MW_STL_Wnd_Left & Align)) && (MS_MW_STL_Wnd_Right & Align)) {
+ ResultRect.left = AlignRect.right - (WndRect.right - WndRect.left);
+ ResultRect.right = AlignRect.right;
+ } else
+ if ((MS_MW_STL_Wnd_Left & Align) && (!(MS_MW_STL_Wnd_Right & Align))) {
+ ResultRect.left = AlignRect.left;
+ ResultRect.right = AlignRect.left + (WndRect.right - WndRect.left);
+ }
+
+ if ((MS_MW_STL_Wnd_Top & Align) && (MS_MW_STL_Wnd_Bottom & Align)) {
+ ResultRect.top = AlignRect.top;
+ ResultRect.bottom = AlignRect.bottom;
+ } else
+ if ((!(MS_MW_STL_Wnd_Top & Align)) && (MS_MW_STL_Wnd_Bottom & Align)) {
+ ResultRect.top = AlignRect.bottom - (WndRect.bottom - WndRect.top);
+ ResultRect.bottom = AlignRect.bottom;
+ } else
+ if ((MS_MW_STL_Wnd_Top & Align) && (!(MS_MW_STL_Wnd_Bottom & Align))) {
+ ResultRect.top = AlignRect.top;
+ ResultRect.bottom = AlignRect.top + (WndRect.bottom - WndRect.top);
+ }
+
+ MoveWindow(hWnd, ResultRect.left, ResultRect.top, ResultRect.right-ResultRect.left, ResultRect.bottom-ResultRect.top, true);
+
+ return 0;
+} \ No newline at end of file