appwiz.cpl: Add Wine Mono to addons.

Vincent Povirk madewokherd at gmail.com
Mon May 21 08:39:46 CDT 2012


This will make it possible to install wine mono using: wine control
appwiz.cpl install_mono

I think I will wait until after 1.5.5 to add the logic to mscoree to
trigger the install, and remove the .NET registry keys and files from
wine.inf.in.
-------------- next part --------------
From ede939346ddef9dde22bbe7b611fc77bc86c9900 Mon Sep 17 00:00:00 2001
From: Vincent Povirk <vincent at codeweavers.com>
Date: Mon, 21 May 2012 07:46:03 -0500
Subject: [PATCH] appwiz.cpl: Add Wine Mono to addons.

---
 dlls/appwiz.cpl/addons.c  |   11 +++++++++++
 dlls/appwiz.cpl/appwiz.c  |    6 ++++++
 dlls/appwiz.cpl/appwiz.h  |    3 ++-
 dlls/appwiz.cpl/appwiz.rc |   15 +++++++++++++++
 dlls/appwiz.cpl/res.h     |    1 +
 tools/wine.inf.in         |    2 ++
 6 files changed, 37 insertions(+), 1 deletion(-)

diff --git a/dlls/appwiz.cpl/addons.c b/dlls/appwiz.cpl/addons.c
index ab70ed1..4a5acba 100644
--- a/dlls/appwiz.cpl/addons.c
+++ b/dlls/appwiz.cpl/addons.c
@@ -64,6 +64,9 @@ WINE_DEFAULT_DEBUG_CHANNEL(appwizcpl);
 #define GECKO_SHA "???"
 #endif
 
+#define MONO_VERSION "0.0.4"
+#define MONO_SHA "7d827f7d28a88ae0da95a136573783124ffce4b1"
+
 typedef struct {
     const char *version;
     const char *file_name;
@@ -83,6 +86,14 @@ static const addon_info_t addons_info[] = {
         GECKO_SHA,
         "MSHTML", "GeckoUrl", "GeckoCabDir",
         MAKEINTRESOURCEW(ID_DWL_GECKO_DIALOG)
+    },
+    {
+        MONO_VERSION,
+        "wine-mono-" MONO_VERSION ".msi",
+        "mono",
+        MONO_SHA,
+        "Dotnet", "MonoUrl", "MonoCabDir",
+        MAKEINTRESOURCEW(ID_DWL_MONO_DIALOG)
     }
 };
 
diff --git a/dlls/appwiz.cpl/appwiz.c b/dlls/appwiz.cpl/appwiz.c
index 14ace66..c50adf7 100644
--- a/dlls/appwiz.cpl/appwiz.c
+++ b/dlls/appwiz.cpl/appwiz.c
@@ -970,6 +970,7 @@ static void StartApplet(HWND hWnd)
 static LONG start_params(const WCHAR *params)
 {
     static const WCHAR install_geckoW[] = {'i','n','s','t','a','l','l','_','g','e','c','k','o',0};
+    static const WCHAR install_monoW[] = {'i','n','s','t','a','l','l','_','m','o','n','o',0};
 
     if(!params)
         return FALSE;
@@ -979,6 +980,11 @@ static LONG start_params(const WCHAR *params)
         return TRUE;
     }
 
+    if(!strcmpW(params, install_monoW)) {
+        install_addon(ADDON_MONO);
+        return TRUE;
+    }
+
     WARN("unknown param %s\n", debugstr_w(params));
     return FALSE;
 }
diff --git a/dlls/appwiz.cpl/appwiz.h b/dlls/appwiz.cpl/appwiz.h
index 6e189fa..12c2126 100644
--- a/dlls/appwiz.cpl/appwiz.h
+++ b/dlls/appwiz.cpl/appwiz.h
@@ -17,7 +17,8 @@
  */
 
 typedef enum {
-    ADDON_GECKO
+    ADDON_GECKO,
+    ADDON_MONO
 } addon_t;
 
 BOOL install_addon(addon_t) DECLSPEC_HIDDEN;
diff --git a/dlls/appwiz.cpl/appwiz.rc b/dlls/appwiz.cpl/appwiz.rc
index af41d6a..bd9e15d 100644
--- a/dlls/appwiz.cpl/appwiz.rc
+++ b/dlls/appwiz.cpl/appwiz.rc
@@ -107,6 +107,21 @@ FONT 8, "MS Shell Dlg"
     PUSHBUTTON "Cancel", IDCANCEL, 144, 76, 50, 14, WS_GROUP | WS_TABSTOP
 }
 
+ID_DWL_MONO_DIALOG DIALOG  0, 0, 260, 95
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+CAPTION "Wine Mono Installer"
+FONT 8, "MS Shell Dlg"
+{
+    CONTROL "Wine could not find a Mono package which is needed for .NET applications " \
+          "to work correctly. Wine can automatically download and install it for you.\n\n" \
+          "Note: it is recommended to use your distribution's packages instead. " \
+          "See <a href=\"http://wiki.winehq.org/Mono\">http://wiki.winehq.org/Mono</a> for details.",
+          ID_DWL_STATUS, "SysLink", 0, 10, 10, 240, 65
+    CONTROL "", ID_DWL_PROGRESS, PROGRESS_CLASSA, WS_BORDER|PBS_SMOOTH, 10, 40, 240, 12
+    DEFPUSHBUTTON "&Install", ID_DWL_INSTALL, 200, 76, 50, 14, WS_GROUP | WS_TABSTOP
+    PUSHBUTTON "Cancel", IDCANCEL, 144, 76, 50, 14, WS_GROUP | WS_TABSTOP
+}
+
 LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
 
 /* @makedep: appwiz.ico */
diff --git a/dlls/appwiz.cpl/res.h b/dlls/appwiz.cpl/res.h
index 96cd62d..22fd03c 100644
--- a/dlls/appwiz.cpl/res.h
+++ b/dlls/appwiz.cpl/res.h
@@ -49,6 +49,7 @@
 #define ID_DWL_PROGRESS     1201
 #define ID_DWL_INSTALL      1202
 #define ID_DWL_STATUS       1203
+#define ID_DWL_MONO_DIALOG  1204
 
 /* Icons */
 
diff --git a/tools/wine.inf.in b/tools/wine.inf.in
index 1b8e56d..abd5307 100644
--- a/tools/wine.inf.in
+++ b/tools/wine.inf.in
@@ -712,6 +712,8 @@ HKLM,SOFTWARE\Microsoft\Active Setup\Installed Components\{de5aed00-a4bf-11d1-99
 HKLM,SOFTWARE\Microsoft\Active Setup\Installed Components\{de5aed00-a4bf-11d1-9948-00c04f98bbc9},"Locale",2,"*"
 HKLM,SOFTWARE\Microsoft\Active Setup\Installed Components\{de5aed00-a4bf-11d1-9948-00c04f98bbc9},"Version",2,"4,74,9273,0"
 
+HKCU,SOFTWARE\Wine\Dotnet,"MonoUrl",,"http://source.winehq.org/winemono.php"
+
 [Nls]
 HKLM,System\CurrentControlSet\Control\Nls\Codepage,"37",,""
 HKLM,System\CurrentControlSet\Control\Nls\Language,"0401",,""
-- 
1.7.9.5


More information about the wine-patches mailing list