Alexandre Julliard : user32: Duplicate DIALOG_Enable/ DisableOwner implementation on the 16-bit side.

Alexandre Julliard julliard at winehq.org
Thu Dec 24 10:27:15 CST 2009


Module: wine
Branch: master
Commit: 7f11441af9ed6b6bfba188a333e10775f6c63fc6
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=7f11441af9ed6b6bfba188a333e10775f6c63fc6

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Tue Dec 22 17:46:25 2009 +0100

user32: Duplicate DIALOG_Enable/DisableOwner implementation on the 16-bit side.

---

 dlls/user32/controls.h |    2 --
 dlls/user32/dialog.c   |    4 ++--
 dlls/user32/dialog16.c |   38 ++++++++++++++++++++++++++++++++++++++
 3 files changed, 40 insertions(+), 4 deletions(-)

diff --git a/dlls/user32/controls.h b/dlls/user32/controls.h
index 8d1869e..279dc4c 100644
--- a/dlls/user32/controls.h
+++ b/dlls/user32/controls.h
@@ -240,8 +240,6 @@ typedef struct tagDIALOGINFO
 #define DF_OWNERENABLED 0x0002
 
 extern DIALOGINFO *DIALOG_get_info( HWND hwnd, BOOL create ) DECLSPEC_HIDDEN;
-extern void DIALOG_EnableOwner( HWND hOwner ) DECLSPEC_HIDDEN;
-extern BOOL DIALOG_DisableOwner( HWND hOwner ) DECLSPEC_HIDDEN;
 extern INT DIALOG_DoDialogBox( HWND hwnd, HWND owner ) DECLSPEC_HIDDEN;
 
 #endif  /* __WINE_CONTROLS_H */
diff --git a/dlls/user32/dialog.c b/dlls/user32/dialog.c
index f0d194d..bce2684 100644
--- a/dlls/user32/dialog.c
+++ b/dlls/user32/dialog.c
@@ -109,7 +109,7 @@ const struct builtin_class_descr DIALOG_builtin_class =
  * Helper function for modal dialogs to enable again the
  * owner of the dialog box.
  */
-void DIALOG_EnableOwner( HWND hOwner )
+static void DIALOG_EnableOwner( HWND hOwner )
 {
     /* Owner must be a top-level window */
     if (hOwner)
@@ -125,7 +125,7 @@ void DIALOG_EnableOwner( HWND hOwner )
  * Helper function for modal dialogs to disable the
  * owner of the dialog box. Returns TRUE if owner was enabled.
  */
-BOOL DIALOG_DisableOwner( HWND hOwner )
+static BOOL DIALOG_DisableOwner( HWND hOwner )
 {
     /* Owner must be a top-level window */
     if (hOwner)
diff --git a/dlls/user32/dialog16.c b/dlls/user32/dialog16.c
index fc6ad1e..95f009f 100644
--- a/dlls/user32/dialog16.c
+++ b/dlls/user32/dialog16.c
@@ -66,6 +66,44 @@ typedef struct
 
 
 /***********************************************************************
+ *           DIALOG_EnableOwner
+ *
+ * Helper function for modal dialogs to enable again the
+ * owner of the dialog box.
+ */
+static void DIALOG_EnableOwner( HWND hOwner )
+{
+    /* Owner must be a top-level window */
+    if (hOwner)
+        hOwner = GetAncestor( hOwner, GA_ROOT );
+    if (!hOwner) return;
+    EnableWindow( hOwner, TRUE );
+}
+
+
+/***********************************************************************
+ *           DIALOG_DisableOwner
+ *
+ * Helper function for modal dialogs to disable the
+ * owner of the dialog box. Returns TRUE if owner was enabled.
+ */
+static BOOL DIALOG_DisableOwner( HWND hOwner )
+{
+    /* Owner must be a top-level window */
+    if (hOwner)
+        hOwner = GetAncestor( hOwner, GA_ROOT );
+    if (!hOwner) return FALSE;
+    if (IsWindowEnabled( hOwner ))
+    {
+        EnableWindow( hOwner, FALSE );
+        return TRUE;
+    }
+    else
+        return FALSE;
+}
+
+
+/***********************************************************************
  *           DIALOG_GetControl16
  *
  * Return the class and text of the control pointed to by ptr,




More information about the wine-cvs mailing list