summaryrefslogtreecommitdiff
path: root/include/delphi/reserve/m_magneticWindows.inc
diff options
context:
space:
mode:
Diffstat (limited to 'include/delphi/reserve/m_magneticWindows.inc')
-rw-r--r--include/delphi/reserve/m_magneticWindows.inc72
1 files changed, 72 insertions, 0 deletions
diff --git a/include/delphi/reserve/m_magneticWindows.inc b/include/delphi/reserve/m_magneticWindows.inc
new file mode 100644
index 0000000000..885760f629
--- /dev/null
+++ b/include/delphi/reserve/m_magneticWindows.inc
@@ -0,0 +1,72 @@
+{$IFNDEF M_MAGNETICWINDOWS}
+{$DEFINE M_MAGNETICWINDOWS}
+
+const
+// For other Plugins to start snapping for their windows
+// wparam: hwnd of window
+// lparam: 0
+// return: 0 on success, 1 on error
+ MS_MW_ADDWINDOW = 'Utils/MagneticWindows/Add';
+
+// For other Plugins to stop snapping for their windows
+// wparam: hwnd of window
+// lparam: 0
+// return: 0 on success, 1 on error
+ MS_MW_REMWINDOW = 'Utils/MagneticWindows/Rem';
+
+//decide where to align on the list:
+ MS_MW_STL_List_Left = $00000001; //Snaps the window to the left border of the list
+ MS_MW_STL_List_Top = $00000002; //Snaps the window to the top border of the list
+ MS_MW_STL_List_Right = $00000004; //Snaps the window to the right border of the list
+ MS_MW_STL_List_Bottom = $00000008; //Snaps the window to the bottom border of the list
+//decide with what side (of the window you want to snap) to snap to the list
+ MS_MW_STL_Wnd_Left = $00000010; //Snaps the window with the left border to the left/right side of the list
+ MS_MW_STL_Wnd_Top = $00000020; //Snaps the window with the top border to the top/bottom side of the list
+ MS_MW_STL_Wnd_Right = $00000040; //Snaps the window with the right border to the left/right side of the list
+ MS_MW_STL_Wnd_Bottom = $00000080; //Snaps the window with the bottom border to the top/bottom side of the list
+
+ MS_MW_STL_Wnd_FullWidth = (MS_MW_STL_Wnd_Left or MS_MW_STL_Wnd_Right);
+ //Snaps to the top/bottom of the list and spans over the full width
+
+ MS_MW_STL_Wnd_FullHeight = (MS_MW_STL_Wnd_Top or MS_MW_STL_Wnd_Bottom);
+ //Snaps to the left/right of the list and spans over the full height
+
+// to place the window in the list combine f.e.
+// MS_MW_STL_List_Left | MS_MW_STL_Wnd_Right | *vetical alignment*
+
+//For other Plugins to snap a window to the list for other Plugins
+// wparam: hwnd of window
+// lparam: combination of the above constants MS_MW_STL_*
+// return: 0 on success, 1 on error
+ MS_MW_SNAPTOLIST = 'Utils/MagneticWindows/SnapToList';
+
+// Helper functions
+{$IFNDEF MW_NO_HELPPER_FUNCTIONS}
+
+function MagneticWindows_AddWindow(hWnd:HWND):integer;
+begin
+ if ServiceExists(MS_MW_ADDWINDOW)<>0 then
+ result:=CallService(MS_MW_ADDWINDOW,hWnd,0);
+ else
+ result:=-1;
+end;
+
+function MagneticWindows_RemoveWindow(hWnd:HWND):integer;
+begin
+ if ServiceExists(MS_MW_REMWINDOW)<>0 then
+ result:=CallService(MS_MW_REMWINDOW,hWnd,0);
+ else
+ result:=-1;
+end;
+
+function MagneticWindows_SnapWindowToList(hWnd:HWND;MS_MW_STL_Options:integer):integer;
+begin
+ if (ServiceExists(MS_MW_SNAPTOLIST))
+ result:=CallService(MS_MW_SNAPTOLIST,hWnd,MS_MW_STL_Options);
+ else
+ result:=-1;
+end;
+
+{$ENDIF}
+
+{$ENDIF}