Initial IBM OpenAFS 1.0 tree
[openafs.git] / src / WINNT / afsapplib / ctl_spinner.h
1 #ifndef CTL_SPINNER_H
2 #define CTL_SPINNER_H
3
4 /*
5  * DEFINITIONS ________________________________________________________________
6  *
7  */
8
9 #ifndef THIS_HINST
10 #define THIS_HINST  (HINSTANCE)GetModuleHandle(NULL)
11 #endif
12
13 #ifndef EXPORTED
14 #define EXPORTED
15 #endif
16
17 #ifndef limit
18 #define limit(_a,_x,_b)  min( max( (_x), (_a) ), (_b) )
19 #endif
20
21 #ifndef inlimit
22 #define inlimit(_a,_x,_b)  ( (((_x)>=(_a)) && ((_x)<=(_b))) ? TRUE : FALSE )
23 #endif
24
25 #ifndef cxRECT
26 #define cxRECT(_r)  ((_r).right - (_r).left)
27 #endif
28
29 #ifndef cyRECT
30 #define cyRECT(_r)  ((_r).bottom - (_r).top)
31 #endif
32
33
34 /*
35  * PROTOTYPES _________________________________________________________________
36  *
37  */
38
39 EXPORTED BOOL RegisterSpinnerClass (void);
40
41 // NOTE: All messages are sent to the buddy control, and all notifications
42 // come back through WM_COMMAND:LOWORD(wp)==buddy,HIWORD(wp)=SPN_code,lp=param
43 //
44 #define SPM_GETRANGE            (WM_USER+301)
45 #define SPM_SETRANGE            (WM_USER+302)
46 #define SPM_GETPOS              (WM_USER+303)
47 #define SPM_SETPOS              (WM_USER+304)
48 #define SPM_GETBASE             (WM_USER+305)
49 #define SPM_SETBASE             (WM_USER+306)
50 #define SPM_REATTACH            (WM_USER+307)
51 #define SPM_SETRECT             (WM_USER+308)
52 #define SPM_GETSPINNER          (WM_USER+309)
53 #define SPM_SETFORMAT           (WM_USER+310)
54 #define SPM_SETBUDDY            (WM_USER+311)
55
56 #define SPN_CHANGE_UP    0x1001  // DWORD *pdwValue = lp;
57 #define SPN_CHANGE_DOWN  0x1002  // DWORD *pdwValue = lp;
58 #define SPN_CHANGE       0x1003  // DWORD *pdwValue = lp;
59 #define SPN_UPDATE       0x1004  // DWORD dwNew = lp;
60
61 #define SPVAL_UNCHANGED  (DWORD)0x7FFFFFFF
62
63 EXPORTED BOOL CreateSpinner (HWND hBuddy,
64                              WORD wBase = 10, BOOL fSigned = FALSE,
65                              DWORD dwMin = 0, DWORD dwPos = 100, DWORD dwMax = 100,
66                              LPRECT prTarget = NULL);
67
68 EXPORTED BOOL fHasSpinner (HWND hBuddy);
69
70 /*
71  * void SP_GetRange (HWND hBuddy, DWORD *pdwMin, DWORD *pdwMax)
72  * void SP_SetRange (HWND hBuddy, DWORD dwMin, DWORD dwMax)
73  *
74  */
75 #define SP_GetRange(_hb,_pdwMin,_pdwMax) \
76         SendMessage(_hb,SPM_GETRANGE,(WPARAM)_pdwMin,(LPARAM)_pdwMax)
77 #define SP_SetRange(_hb,_dwMin,_dwMax) \
78         SendMessage(_hb,SPM_SETRANGE,(WPARAM)_dwMin,(LPARAM)_dwMax)
79
80 /*
81  * DWORD SP_GetPos (HWND hBuddy)
82  * void  SP_SetPos (HWND hBuddy, DWORD dwPos)
83  *
84  */
85 #define SP_GetPos(_hb) \
86         SendMessage(_hb,SPM_GETPOS,(WPARAM)0,(LPARAM)0)
87 #define SP_SetPos(_hb,_dwPos) \
88         SendMessage(_hb,SPM_SETPOS,(WPARAM)0,(LPARAM)_dwPos)
89
90 /*
91  * void SP_GetBase (HWND hBuddy, WORD *pwBase, BOOL *pfSigned)
92  * void SP_SetBase (HWND hBuddy, WORD wBase, BOOL fSigned)
93  *
94  */
95 #define SP_GetBase(_hb,_pdwBase,_pfSigned) \
96         SendMessage(_hb,SPM_GETBASE,(WPARAM)_pdwBase,(LPARAM)_pfSigned)
97 #define SP_SetBase(_hb,_wBase,_fSigned) \
98         SendMessage(_hb,SPM_SETBASE,(WPARAM)_wBase,(LPARAM)_fSigned)
99
100 /*
101  * HWND SP_GetSpinner (HWND hBuddy)
102  *
103  */
104 #define SP_GetSpinner(_hb) \
105         (HWND)SendMessage(_hb,SPM_GETSPINNER,(WPARAM)0,(LPARAM)0)
106
107 /*
108  * void SP_SetRect (HWND hBuddy, LPRECT prTarget)
109  *
110  */
111 #define SP_SetRect(_hb,_prTarget) \
112         SendMessage(_hb,SPM_SETRECT,(WPARAM)0,(LPARAM)_prTarget)
113
114 /*
115  * void SP_SetFormat (HWND hBuddy, LPTSTR pszFormat)
116  * (where pszFormat uses "%lu" or "%ld" as appropriate)
117  *
118  */
119 #define SP_SetFormat(_hb,_pszFormat) \
120         SendMessage(_hb,SPM_SETFORMAT,(WPARAM)0,(LPARAM)_pszFormat)
121
122 /*
123  * void SP_SetBuddy (HWND hOld, HWND hBuddyNew, BOOL fMove)
124  *
125  */
126 #define SP_SetBuddy(_hb,_hNew,_fMove) \
127         SendMessage(_hb,SPM_SETBUDDY,(WPARAM)_hNew,(LPARAM)_fMove)
128
129
130 #endif
131