7cc428d8e644accaec3b2c3552f776ad22dad1e9
[xboard.git] / winboard / wsnap.h
1 /*\r
2  * Smart "snapping" for window moving and sizing\r
3  *\r
4  * Author: Alessandro Scotti (Dec 2005)\r
5  *\r
6  * ------------------------------------------------------------------------\r
7  * This program is free software; you can redistribute it and/or modify\r
8  * it under the terms of the GNU General Public License as published by\r
9  * the Free Software Foundation; either version 2 of the License, or\r
10  * (at your option) any later version.\r
11  *\r
12  * This program is distributed in the hope that it will be useful,\r
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
15  * GNU General Public License for more details.\r
16  *\r
17  * You should have received a copy of the GNU General Public License\r
18  * along with this program; if not, write to the Free Software\r
19  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\r
20  * ------------------------------------------------------------------------\r
21  */\r
22 #ifndef WSNAP_H_\r
23 #define WSNAP_H_\r
24 \r
25 #include <windows.h>\r
26 \r
27 #define MAX_SNAP_POINTS     12\r
28 \r
29 #define SNAP_DISTANCE       4\r
30 \r
31 typedef struct {\r
32     int x_grid[ MAX_SNAP_POINTS ];\r
33     int x_grid_len;\r
34     int y_grid[ MAX_SNAP_POINTS ];\r
35     int y_grid_len;\r
36 } SnapData;\r
37 \r
38 LRESULT OnEnterSizeMove( SnapData * snapData, HWND hWnd, WPARAM wParam, LPARAM lParam );\r
39 LRESULT OnMoving( SnapData * snapData, HWND hWnd, WPARAM wParam, LPARAM lParam );\r
40 LRESULT OnSizing( SnapData * snapData, HWND hWnd, WPARAM wParam, LPARAM lParam );\r
41 LRESULT OnExitSizeMove( SnapData * snapData, HWND hWnd, WPARAM wParam, LPARAM lParam );\r
42 \r
43 #endif // WSNAP_H_\r