James Hawkins : msi:
Update the PathEdit control in response to the DirectoryListUp event.
Alexandre Julliard
julliard at wine.codeweavers.com
Tue Aug 29 07:19:32 CDT 2006
Module: wine
Branch: master
Commit: 2dbaccbe606f7a1ddec13717ccb93f28457d9355
URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=2dbaccbe606f7a1ddec13717ccb93f28457d9355
Author: James Hawkins <truiken at gmail.com>
Date: Mon Aug 28 17:54:18 2006 -0700
msi: Update the PathEdit control in response to the DirectoryListUp event.
---
dlls/msi/dialog.c | 41 ++++++++++++++++++++++++++++++-----------
1 files changed, 30 insertions(+), 11 deletions(-)
diff --git a/dlls/msi/dialog.c b/dlls/msi/dialog.c
index 4ff8632..5fa599f 100644
--- a/dlls/msi/dialog.c
+++ b/dlls/msi/dialog.c
@@ -197,6 +197,17 @@ static LPWSTR msi_get_deformatted_field(
return ret;
}
+static LPWSTR msi_dialog_dup_property( msi_dialog *dialog, LPCWSTR property, BOOL indirect )
+{
+ if (!property)
+ return NULL;
+
+ if (indirect)
+ return msi_dup_property( dialog->package, property );
+
+ return strdupW( property );
+}
+
/*
* msi_dialog_get_style
*
@@ -1411,6 +1422,23 @@ static UINT msi_dialog_pathedit_handler(
return ERROR_SUCCESS;
}
+static void msi_dialog_update_pathedit( msi_dialog *dialog )
+{
+ msi_control *control;
+ LPWSTR prop, path;
+ BOOL indirect;
+
+ control = msi_dialog_find_control( dialog, szPathEdit );
+ indirect = control->attributes & msidbControlAttributesIndirect;
+ prop = msi_dialog_dup_property( dialog, control->property, indirect );
+
+ path = msi_dup_property( dialog->package, prop );
+ SetWindowTextW( control->hwnd, path );
+
+ msi_free( path );
+ msi_free( prop );
+}
+
static UINT msi_dialog_pathedit_control( msi_dialog *dialog, MSIRECORD *rec )
{
msi_control *control;
@@ -1951,17 +1979,6 @@ static UINT msi_dialog_list_box( msi_dia
/******************** Directory Combo ***************************************/
-static LPWSTR msi_dialog_dup_property( msi_dialog *dialog, LPCWSTR property, BOOL indirect )
-{
- if (!property)
- return NULL;
-
- if (indirect)
- return msi_dup_property( dialog->package, property );
-
- return strdupW( property );
-}
-
static UINT msi_dialog_directory_combo( msi_dialog *dialog, MSIRECORD *rec )
{
msi_control *control;
@@ -2018,6 +2035,8 @@ UINT msi_dialog_directorylist_up( msi_di
MSI_SetPropertyW( dialog->package, prop, path );
+ msi_dialog_update_pathedit( dialog );
+
msi_free( path );
msi_free( prop );
More information about the wine-cvs
mailing list