4 * Copyright 1998 Eric Kohl
7 * This is just a dummy control. An author is needed! Any volunteers?
8 * I will only improve this control once in a while.
9 * Eric <ekohl@abo.rhein-zeitung.de>
13 * - All notifications.
23 #define ANIMATE_GetInfoPtr(wndPtr) ((ANIMATE_INFO *)wndPtr->wExtra[0])
27 ANIMATE_Open32A (WND
*wndPtr
, WPARAM32 wParam
, LPARAM lParam
)
29 ANIMATE_INFO
*infoPtr
= ANIMATE_GetInfoPtr(wndPtr
);
33 FIXME (animate
, "close avi: empty stub!\n");
40 FIXME (animate
, "(\"%s\") empty stub!\n", (LPSTR
)lParam
);
45 FIXME (animate
, "(%u) empty stub!\n", (WORD
)LOWORD(lParam
));
55 ANIMATE_Play (WND
*wndPtr
, WPARAM32 wParam
, LPARAM lParam
)
57 ANIMATE_INFO
*infoPtr
= ANIMATE_GetInfoPtr(wndPtr
);
58 INT32 nFrom
= (INT32
)LOWORD(lParam
);
59 INT32 nTo
= (INT32
)HIWORD(lParam
);
60 INT32 nRepeat
= (INT32
)wParam
;
70 FIXME (animate
, "(loop from=%d to=%d) empty stub!\n",
76 FIXME (animate
, "(repeat=%d from=%d to=%d) empty stub!\n",
87 ANIMATE_Stop (WND
*wndPtr
, WPARAM32 wParam
, LPARAM lParam
)
89 ANIMATE_INFO
*infoPtr
= ANIMATE_GetInfoPtr(wndPtr
);
103 ANIMATE_Create (WND
*wndPtr
, WPARAM32 wParam
, LPARAM lParam
)
105 ANIMATE_INFO
*infoPtr
;
107 /* allocate memory for info structure */
108 infoPtr
= (ANIMATE_INFO
*)COMCTL32_Alloc (sizeof(ANIMATE_INFO
));
109 wndPtr
->wExtra
[0] = (DWORD
)infoPtr
;
111 if (infoPtr
== NULL
) {
112 ERR (animate
, "could not allocate info memory!\n");
116 if ((ANIMATE_INFO
*)wndPtr
->wExtra
[0] != infoPtr
) {
117 ERR (animate
, "pointer assignment error!\n");
121 /* set default settings */
129 ANIMATE_Destroy (WND
*wndPtr
, WPARAM32 wParam
, LPARAM lParam
)
131 ANIMATE_INFO
*infoPtr
= ANIMATE_GetInfoPtr(wndPtr
);
136 /* free animate info data */
137 COMCTL32_Free (infoPtr
);
145 ANIMATE_EraseBackground (WND
*wndPtr
, WPARAM32 wParam
, LPARAM lParam
)
147 ANIMATE_INFO
*infoPtr
= ANIMATE_GetInfoPtr(wndPtr
);
149 HBRUSH32 hBrush = CreateSolidBrush32 (infoPtr->clrBk);
152 GetClientRect32 (wndPtr->hwndSelf, &rect);
153 FillRect32 ((HDC32)wParam, &rect, hBrush);
154 DeleteObject32 (hBrush);
163 ANIMATE_WindowProc (HWND32 hwnd
, UINT32 uMsg
, WPARAM32 wParam
, LPARAM lParam
)
165 WND
*wndPtr
= WIN_FindWndPtr(hwnd
);
170 return ANIMATE_Open32A (wndPtr
, wParam
, lParam
);
173 // return ANIMATE_Open32W (wndPtr, wParam, lParam);
176 return ANIMATE_Play (wndPtr
, wParam
, lParam
);
179 return ANIMATE_Stop (wndPtr
, wParam
, lParam
);
183 return ANIMATE_Create (wndPtr
, wParam
, lParam
);
186 return ANIMATE_Destroy (wndPtr
, wParam
, lParam
);
188 // case WM_ERASEBKGND:
189 // return ANIMATE_EraseBackground (wndPtr, wParam, lParam);
192 // case WM_NCHITTEST:
195 // case WM_STYLECHANGED:
200 ERR (animate
, "unknown msg %04x wp=%08x lp=%08lx\n",
201 uMsg
, wParam
, lParam
);
202 return DefWindowProc32A (hwnd
, uMsg
, wParam
, lParam
);
209 ANIMATE_Register (void)
211 WNDCLASS32A wndClass
;
213 if (GlobalFindAtom32A (ANIMATE_CLASS32A
)) return;
215 ZeroMemory (&wndClass
, sizeof(WNDCLASS32A
));
216 wndClass
.style
= CS_GLOBALCLASS
| CS_DBLCLKS
;
217 wndClass
.lpfnWndProc
= (WNDPROC32
)ANIMATE_WindowProc
;
218 wndClass
.cbClsExtra
= 0;
219 wndClass
.cbWndExtra
= sizeof(ANIMATE_INFO
*);
220 wndClass
.hCursor
= LoadCursor32A (0, IDC_ARROW32A
);
221 wndClass
.hbrBackground
= (HBRUSH32
)(COLOR_BTNFACE
+ 1);
222 wndClass
.lpszClassName
= ANIMATE_CLASS32A
;
224 RegisterClass32A (&wndClass
);