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