summaryrefslogtreecommitdiff
path: root/plugins/ExternalAPI/m_MagneticWindows.h
blob: e011c773fd9c9eb464b8eb14e38154671d0e96bf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#ifndef __M_MAGNETICWINDOWS_H__
#define __M_MAGNETICWINDOWS_H__

//#include "../include/newpluginapi.h"

// For other Plugins to start snapping for their windows 
// wparam: hwnd of window
// lparam: 0
// return: 0 on success, 1 on error
#define 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
#define MS_MW_REMWINDOW "Utils/MagneticWindows/Rem"

//decide where to align on the list:
#define MS_MW_STL_List_Left    0x00000001  //Snaps the window to the left   border of the list
#define MS_MW_STL_List_Top     0x00000002  //Snaps the window to the top    border of the list
#define MS_MW_STL_List_Right   0x00000004  //Snaps the window to the right  border of the list
#define MS_MW_STL_List_Bottom  0x00000008  //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
#define MS_MW_STL_Wnd_Left     0x00000010  //Snaps the window with the left   border to the left/right side of the list
#define MS_MW_STL_Wnd_Top      0x00000020  //Snaps the window with the top    border to the top/bottom side of the list
#define MS_MW_STL_Wnd_Right    0x00000040  //Snaps the window with the right  border to the left/right side of the list
#define MS_MW_STL_Wnd_Bottom   0x00000080  //Snaps the window with the bottom border to the top/bottom side of the list

#define MS_MW_STL_Wnd_FullWidth  (MS_MW_STL_Wnd_Left | MS_MW_STL_Wnd_Right)
											//Snaps to the top/bottom of the list and spans over the full width

#define MS_MW_STL_Wnd_FullHeight (MS_MW_STL_Wnd_Top | 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
#define MS_MW_SNAPTOLIST "Utils/MagneticWindows/SnapToList"

// Helper functions
#ifndef _MW_NO_HELPPER_FUNCTIONS


static inline int MagneticWindows_AddWindow(HWND hWnd)
{
	if (ServiceExists(MS_MW_ADDWINDOW))
	{
		return CallService(MS_MW_ADDWINDOW, (WPARAM) hWnd, 0);
	}
	else
	{
		return -1;
	}
}

static inline int MagneticWindows_RemoveWindow(HWND hWnd)
{
	if (ServiceExists(MS_MW_REMWINDOW))
	{
		return CallService(MS_MW_REMWINDOW, (WPARAM) hWnd, 0);
	}
	else
	{
		return -1;
	}
}

static inline int MagneticWindows_SnapWindowToList(HWND hWnd, int MS_MW_STL_Options)
{
	if (ServiceExists(MS_MW_SNAPTOLIST))
	{
		return CallService(MS_MW_SNAPTOLIST, (WPARAM) hWnd, (LPARAM) MS_MW_STL_Options);
	}
	else
	{
		return -1;
	}
}

#endif


#endif // __M_MAGNETICWINDOWS_H__