summaryrefslogtreecommitdiffstats
path: root/win
diff options
context:
space:
mode:
authorhobbs <hobbs>2001-11-10 00:58:51 (GMT)
committerhobbs <hobbs>2001-11-10 00:58:51 (GMT)
commitb51d845c8c00482fe7ff37f355f1f0e4a9ba2216 (patch)
treec9f7b72e38056d27ab878e183527d70a558529f5 /win
parent96699e4b5b024115ef0b4516ad79cb2e8af9bb4c (diff)
downloadtk-b51d845c8c00482fe7ff37f355f1f0e4a9ba2216.zip
tk-b51d845c8c00482fe7ff37f355f1f0e4a9ba2216.tar.gz
tk-b51d845c8c00482fe7ff37f355f1f0e4a9ba2216.tar.bz2
* win/tkWinX.c (TkWinXInit): added InitCommonControlsEx call.
* win/rc/tk.rc: * win/rc/wish.rc: * win/rc/wish.exe.manifest: added resources that specify using v6 of the MS Common Controls library when available (WinXP+). This enables use of the themeable widgets (like scrollbars) to be used in Tk. [Patch #478933]
Diffstat (limited to 'win')
-rw-r--r--win/rc/tk.rc14
-rw-r--r--win/rc/wish.exe.manifest22
-rw-r--r--win/rc/wish.rc14
-rw-r--r--win/tkWinX.c14
4 files changed, 61 insertions, 3 deletions
diff --git a/win/rc/tk.rc b/win/rc/tk.rc
index cdc1e6d..bdca9cd 100644
--- a/win/rc/tk.rc
+++ b/win/rc/tk.rc
@@ -1,4 +1,4 @@
-// RCS: @(#) $Id: tk.rc,v 1.7 2001/10/01 21:04:07 hobbs Exp $
+// RCS: @(#) $Id: tk.rc,v 1.8 2001/11/10 00:58:51 hobbs Exp $
//
// Version Resource Script
//
@@ -67,3 +67,15 @@ END
//
#include "tk_base.rc"
+
+//
+// This enables themed scrollbars in XP by trying to use comctl32 v6.
+//
+
+#ifndef RT_MANIFEST
+#define RT_MANIFEST 24
+#endif
+#ifndef CREATEPROCESS_MANIFEST_RESOURCE_ID
+#define CREATEPROCESS_MANIFEST_RESOURCE_ID 1
+#endif
+CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "wish.exe.manifest"
diff --git a/win/rc/wish.exe.manifest b/win/rc/wish.exe.manifest
new file mode 100644
index 0000000..424000f
--- /dev/null
+++ b/win/rc/wish.exe.manifest
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
+<assemblyIdentity
+ version="8.4.0.4"
+ processorArchitecture="X86"
+ name="Tcl.Tk.wish"
+ type="win32"
+/>
+<description>Tcl/Tk windowing shell (wish)</description>
+<dependency>
+<dependentAssembly>
+<assemblyIdentity
+ type="win32"
+ name="Microsoft.Windows.Common-Controls"
+ version="6.0.0.0"
+ processorArchitecture="X86"
+ publicKeyToken="6595b64144ccf1df"
+ language="*"
+/>
+</dependentAssembly>
+</dependency>
+</assembly>
diff --git a/win/rc/wish.rc b/win/rc/wish.rc
index 7d6ce2c..d10a200 100644
--- a/win/rc/wish.rc
+++ b/win/rc/wish.rc
@@ -1,4 +1,4 @@
-// RCS: @(#) $Id: wish.rc,v 1.6 2001/10/01 21:04:07 hobbs Exp $
+// RCS: @(#) $Id: wish.rc,v 1.7 2001/11/10 00:58:51 hobbs Exp $
//
// Version Resource Script
//
@@ -79,3 +79,15 @@ app ICON DISCARDABLE "wish.ico"
#ifdef STATIC_BUILD
#include "tk_base.rc"
#endif
+
+//
+// This enables themed scrollbars in XP by trying to use comctl32 v6.
+//
+
+#ifndef RT_MANIFEST
+#define RT_MANIFEST 24
+#endif
+#ifndef CREATEPROCESS_MANIFEST_RESOURCE_ID
+#define CREATEPROCESS_MANIFEST_RESOURCE_ID 1
+#endif
+CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "wish.exe.manifest"
diff --git a/win/tkWinX.c b/win/tkWinX.c
index 3599bd0..e7ec13d 100644
--- a/win/tkWinX.c
+++ b/win/tkWinX.c
@@ -10,10 +10,11 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tkWinX.c,v 1.15 2001/09/21 21:26:09 hobbs Exp $
+ * RCS: @(#) $Id: tkWinX.c,v 1.16 2001/11/10 00:58:51 hobbs Exp $
*/
#include "tkWinInt.h"
+#include <commctrl.h>
/*
* The zmouse.h file includes the definition for WM_MOUSEWHEEL.
@@ -154,6 +155,17 @@ TkWinXInit(hInstance)
}
childClassInitialized = 1;
+ if (TkWinGetPlatformId() == VER_PLATFORM_WIN32_NT) {
+ /*
+ * This is necessary to enable the use of themeable elements on XP,
+ * so we don't even try and call it for Win9*.
+ */
+
+ INITCOMMONCONTROLSEX comctl;
+ ZeroMemory(&comctl, sizeof(comctl));
+ (void) InitCommonControlsEx(&comctl);
+ }
+
tkInstance = hInstance;
/*