HRESULT WINAPI CProgressDialog::SetAnimation(HINSTANCE hInstance, UINT uiResourceId)
{
+ HWND hAnimation = GetDlgItem(this->hwnd, IDD_PROGRESS_DLG);
+ SetWindowLongW(hAnimation, GWL_STYLE,
+ GetWindowLongW(hAnimation, GWL_STYLE)|ACS_TRANSPARENT|ACS_CENTER|ACS_AUTOPLAY);
+
+ if(!Animate_OpenEx(hAnimation,hInstance,MAKEINTRESOURCEW(uiResourceId)))
+ return S_FALSE;
+
return S_OK;
}
if (op->progress == NULL)
return;
WCHAR szTitle[50], szPreflight[50];
+ UINT animation_id = NULL;
switch (op->req->wFunc)
{
case FO_COPY:
LoadStringW(shell32_hInstance, IDS_FILEOOP_COPYING, szTitle, sizeof(szTitle)/sizeof(WCHAR));
LoadStringW(shell32_hInstance, IDS_FILEOOP_FROM_TO, op->szBuilderString, sizeof( op->szBuilderString)/sizeof(WCHAR));
+ animation_id = IDA_SHELL_COPY;
break;
case FO_DELETE:
LoadStringW(shell32_hInstance, IDS_FILEOOP_DELETING, szTitle, sizeof(szTitle)/sizeof(WCHAR));
LoadStringW(shell32_hInstance, IDS_FILEOOP_FROM, op->szBuilderString, sizeof( op->szBuilderString)/sizeof(WCHAR));
+ animation_id = IDA_SHELL_DELETE;
break;
case FO_MOVE:
LoadStringW(shell32_hInstance, IDS_FILEOOP_MOVING, szTitle, sizeof(szTitle)/sizeof(WCHAR));
LoadStringW(shell32_hInstance, IDS_FILEOOP_FROM_TO, op->szBuilderString, sizeof( op->szBuilderString)/sizeof(WCHAR));
+ animation_id = IDA_SHELL_COPY;
break;
default:
return;
op->progress->SetTitle(szTitle);
op->progress->SetLine(1, szPreflight, false, NULL);
+ op->progress->SetAnimation(shell32_hInstance, animation_id);
}
static void _SetOperationTexts(FILE_OPERATION *op, LPCWSTR src, LPCWSTR dest) {
* AVI resources
*
* windows shell32 has 14 of them: 150-152 and 160-170
- * FIXME: Need to add them, but for now just let them use the same: searching.avi
- * (also to limit shell32's size)
+ * FIXME: Add 150-152
*/
-#define IDR_AVI_SEARCH 150
-#define IDR_AVI_SEARCHING 151
-#define IDR_AVI_FINDCOMPUTER 152
-#define IDR_AVI_FILEMOVE 160
-#define IDR_AVI_FILECOPY 161
-#define IDR_AVI_FILENUKE 163
-#define IDR_AVI_FILEDELETE 164
+
+#define IDA_SHELL_COPY 160
+#define IDA_SHELL_COPY1 161
+#define IDA_SHELL_COPY2 167
+#define IDA_SHELL_COPY3 168
+#define IDA_SHELL_RECYCLE 162
+#define IDA_SHELL_EMPTY_RECYCLE 163
+#define IDA_SHELL_DELETE 164
+#define IDA_SHELL_DELETE1 169
+#define IDA_SHELL_DOWNLOAD 170
/* Desktop Browser commands */
#define FCIDM_DESKBROWSER_CLOSE 0xA004