diff options
author | Vadim Dashevskiy <watcherhd@gmail.com> | 2013-12-12 08:33:21 +0000 |
---|---|---|
committer | Vadim Dashevskiy <watcherhd@gmail.com> | 2013-12-12 08:33:21 +0000 |
commit | 88e6efae0b8867f14d59561f6503bfc41eb0d4d3 (patch) | |
tree | 7e50e21757a5bdf221afc2f4e7aa0eee588466f1 /plugins/!Deprecated/MagneticWindows/src/SnapToListService.cpp | |
parent | eb8546ca0013f26ed4330b35bfb7bcde0a1d9527 (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.cpp | 61 |
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 |