Mike McCormack : msi: Update the progress control while installing.
Alexandre Julliard
julliard at wine.codeweavers.com
Fri Jun 9 11:16:34 CDT 2006
Module: wine
Branch: refs/heads/master
Commit: 7500e0feabf3b59c74d2faa50781154feda02cab
URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=7500e0feabf3b59c74d2faa50781154feda02cab
Author: Mike McCormack <mike at codeweavers.com>
Date: Fri Jun 9 17:05:50 2006 +0900
msi: Update the progress control while installing.
---
dlls/msi/dialog.c | 32 +++++++++++++++++++++++++++-----
1 files changed, 27 insertions(+), 5 deletions(-)
diff --git a/dlls/msi/dialog.c b/dlls/msi/dialog.c
index 7949ecd..85976f1 100644
--- a/dlls/msi/dialog.c
+++ b/dlls/msi/dialog.c
@@ -62,6 +62,8 @@ struct msi_control_tag
HICON hIcon;
LPWSTR tabnext;
HMODULE hDll;
+ float progress_current;
+ float progress_max;
WCHAR name[1];
};
@@ -335,6 +337,8 @@ static msi_control *msi_dialog_create_wi
control->hIcon = NULL;
control->hDll = NULL;
control->tabnext = strdupW( MSI_RecordGetString( rec, 11) );
+ control->progress_current = 0;
+ control->progress_max = 100;
x = MSI_RecordGetInteger( rec, 4 );
y = MSI_RecordGetInteger( rec, 5 );
@@ -479,11 +483,29 @@ void msi_dialog_handle_event( msi_dialog
}
else if( !lstrcmpW(attribute, szProgress) )
{
- /* FIXME: should forward to progress bar */
- static int display_fixme = 1;
- if (display_fixme)
- FIXME("Attribute %s not being set\n", debugstr_w(attribute));
- display_fixme = 0;
+ DWORD func, val;
+
+ func = MSI_RecordGetInteger( rec , 1 );
+ val = MSI_RecordGetInteger( rec , 2 );
+
+ switch (func)
+ {
+ case 0: /* init */
+ ctrl->progress_max = val;
+ ctrl->progress_current = 0;
+ SendMessageW(ctrl->hwnd, PBM_SETRANGE, 0, MAKELPARAM(0,100));
+ SendMessageW(ctrl->hwnd, PBM_SETPOS, 0, 0);
+ break;
+ case 1: /* FIXME: not sure what this is supposed to do */
+ break;
+ case 2: /* move */
+ ctrl->progress_current += val;
+ SendMessageW(ctrl->hwnd, PBM_SETPOS, 100*(ctrl->progress_current/ctrl->progress_max), 0);
+ break;
+ default:
+ ERR("Unknown progress message %ld\n", func);
+ break;
+ }
}
else
{
More information about the wine-cvs
mailing list