summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog10
-rw-r--r--generic/tkBind.c151
-rw-r--r--generic/tkText.c34
-rw-r--r--generic/tkUtil.c20
-rw-r--r--generic/ttk/ttkInit.c20
-rwxr-xr-xwin/configure57
-rw-r--r--win/configure.in5
-rw-r--r--win/ttkWinXPTheme.c4
8 files changed, 185 insertions, 116 deletions
diff --git a/ChangeLog b/ChangeLog
index 6d6755e..b7499b7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2009-08-09 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/ttk/ttkInit.c Eliminate gcc warning
+ * generic/tkBind.c
+ * generic/tkText.c
+ * generic/tkUtil.c
+ * win/ttkWinXPTheme.c: include <vssym32.h> only when available
+ * win/configure.in: check for vssym32.h, available in newer SDK's
+ * win/configure (regenerated)
+
2009-08-08 Donal K. Fellows <dkf@users.sf.net>
* library/demos/pendulum.tcl: Make the display handle being resized
diff --git a/generic/tkBind.c b/generic/tkBind.c
index 0213111..395fca3 100644
--- a/generic/tkBind.c
+++ b/generic/tkBind.c
@@ -11,7 +11,7 @@
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tkBind.c,v 1.55 2009/07/23 22:21:35 dkf Exp $
+ * RCS: @(#) $Id: tkBind.c,v 1.56 2009/08/09 21:20:33 nijtmans Exp $
*/
#include "tkInt.h"
@@ -3253,7 +3253,7 @@ HandleEventGenerate(
int objc, /* Number of arguments. */
Tcl_Obj *const objv[]) /* Argument objects. */
{
- XEvent event;
+ union {XEvent general; XVirtualEvent virtual;} event;
const char *p;
const char *name, *windowName;
int count, flags, synch, i, number, warp;
@@ -3321,18 +3321,18 @@ HandleEventGenerate(
}
memset(&event, 0, sizeof(event));
- event.xany.type = pat.eventType;
- event.xany.serial = NextRequest(Tk_Display(tkwin));
- event.xany.send_event = False;
+ event.general.xany.type = pat.eventType;
+ event.general.xany.serial = NextRequest(Tk_Display(tkwin));
+ event.general.xany.send_event = False;
if (windowName[0]) {
- event.xany.window = Tk_WindowId(tkwin);
+ event.general.xany.window = Tk_WindowId(tkwin);
} else {
- event.xany.window =
+ event.general.xany.window =
RootWindow(Tk_Display(tkwin), Tk_ScreenNumber(tkwin));
}
- event.xany.display = Tk_Display(tkwin);
+ event.general.xany.display = Tk_Display(tkwin);
- flags = flagArray[event.xany.type];
+ flags = flagArray[event.general.xany.type];
if (flags & DESTROY) {
/*
* Event DesotryNotify should be generated by destroying the window.
@@ -3342,26 +3342,26 @@ HandleEventGenerate(
return TCL_OK;
}
if (flags & KEY_BUTTON_MOTION_VIRTUAL) {
- event.xkey.state = pat.needMods;
- if ((flags & KEY) && (event.xany.type != MouseWheelEvent)) {
- TkpSetKeycodeAndState(tkwin, pat.detail.keySym, &event);
+ event.general.xkey.state = pat.needMods;
+ if ((flags & KEY) && (event.general.xany.type != MouseWheelEvent)) {
+ TkpSetKeycodeAndState(tkwin, pat.detail.keySym, &event.general);
} else if (flags & BUTTON) {
- event.xbutton.button = pat.detail.button;
+ event.general.xbutton.button = pat.detail.button;
} else if (flags & VIRTUAL) {
- ((XVirtualEvent *) &event)->name = pat.detail.name;
+ event.virtual.name = pat.detail.name;
}
}
if (flags & (CREATE|UNMAP|MAP|REPARENT|CONFIG|GRAVITY|CIRC)) {
- event.xcreatewindow.window = event.xany.window;
+ event.general.xcreatewindow.window = event.general.xany.window;
}
if (flags & KEY_BUTTON_MOTION_CROSSING) {
- event.xkey.x_root = -1;
- event.xkey.y_root = -1;
+ event.general.xkey.x_root = -1;
+ event.general.xkey.y_root = -1;
}
- if (event.xany.type == FocusIn || event.xany.type == FocusOut) {
- event.xany.send_event = GENERATED_FOCUS_EVENT_MAGIC;
+ if (event.general.xany.type == FocusIn || event.general.xany.type == FocusOut) {
+ event.general.xany.send_event = GENERATED_FOCUS_EVENT_MAGIC;
}
/*
@@ -3421,7 +3421,7 @@ HandleEventGenerate(
return TCL_ERROR;
}
if (flags & CONFIG) {
- event.xconfigure.above = Tk_WindowId(tkwin2);
+ event.general.xconfigure.above = Tk_WindowId(tkwin2);
} else {
goto badopt;
}
@@ -3431,7 +3431,7 @@ HandleEventGenerate(
return TCL_ERROR;
}
if (flags & (CREATE|CONFIG)) {
- event.xcreatewindow.border_width = number;
+ event.general.xcreatewindow.border_width = number;
} else {
goto badopt;
}
@@ -3441,7 +3441,7 @@ HandleEventGenerate(
return TCL_ERROR;
}
if (flags & BUTTON) {
- event.xbutton.button = number;
+ event.general.xbutton.button = number;
} else {
goto badopt;
}
@@ -3451,7 +3451,7 @@ HandleEventGenerate(
return TCL_ERROR;
}
if (flags & EXPOSE) {
- event.xexpose.count = number;
+ event.general.xexpose.count = number;
} else {
goto badopt;
}
@@ -3473,8 +3473,8 @@ HandleEventGenerate(
if (Tcl_GetIntFromObj(interp, valuePtr, &number) != TCL_OK) {
return TCL_ERROR;
}
- if ((flags & KEY) && (event.xkey.type == MouseWheelEvent)) {
- event.xkey.keycode = number;
+ if ((flags & KEY) && (event.general.xkey.type == MouseWheelEvent)) {
+ event.general.xkey.keycode = number;
} else {
goto badopt;
}
@@ -3486,9 +3486,9 @@ HandleEventGenerate(
return TCL_ERROR;
}
if (flags & FOCUS) {
- event.xfocus.detail = number;
+ event.general.xfocus.detail = number;
} else if (flags & CROSSING) {
- event.xcrossing.detail = number;
+ event.general.xcrossing.detail = number;
} else {
goto badopt;
}
@@ -3498,7 +3498,7 @@ HandleEventGenerate(
return TCL_ERROR;
}
if (flags & CROSSING) {
- event.xcrossing.focus = number;
+ event.general.xcrossing.focus = number;
} else {
goto badopt;
}
@@ -3509,9 +3509,9 @@ HandleEventGenerate(
return TCL_ERROR;
}
if (flags & EXPOSE) {
- event.xexpose.height = number;
+ event.general.xexpose.height = number;
} else if (flags & CONFIG) {
- event.xconfigure.height = number;
+ event.general.xconfigure.height = number;
} else {
goto badopt;
}
@@ -3520,8 +3520,8 @@ HandleEventGenerate(
if (Tcl_GetIntFromObj(interp, valuePtr, &number) != TCL_OK) {
return TCL_ERROR;
}
- if ((flags & KEY) && (event.xkey.type != MouseWheelEvent)) {
- event.xkey.keycode = number;
+ if ((flags & KEY) && (event.general.xkey.type != MouseWheelEvent)) {
+ event.general.xkey.keycode = number;
} else {
goto badopt;
}
@@ -3538,13 +3538,13 @@ HandleEventGenerate(
return TCL_ERROR;
}
- TkpSetKeycodeAndState(tkwin, keysym, &event);
- if (event.xkey.keycode == 0) {
+ TkpSetKeycodeAndState(tkwin, keysym, &event.general);
+ if (event.general.xkey.keycode == 0) {
Tcl_AppendResult(interp, "no keycode for keysym \"", value,
"\"", NULL);
return TCL_ERROR;
}
- if (!(flags & KEY) || (event.xkey.type == MouseWheelEvent)) {
+ if (!(flags & KEY) || (event.general.xkey.type == MouseWheelEvent)) {
goto badopt;
}
break;
@@ -3555,9 +3555,9 @@ HandleEventGenerate(
return TCL_ERROR;
}
if (flags & CROSSING) {
- event.xcrossing.mode = number;
+ event.general.xcrossing.mode = number;
} else if (flags & FOCUS) {
- event.xfocus.mode = number;
+ event.general.xfocus.mode = number;
} else {
goto badopt;
}
@@ -3567,13 +3567,13 @@ HandleEventGenerate(
return TCL_ERROR;
}
if (flags & CREATE) {
- event.xcreatewindow.override_redirect = number;
+ event.general.xcreatewindow.override_redirect = number;
} else if (flags & MAP) {
- event.xmap.override_redirect = number;
+ event.general.xmap.override_redirect = number;
} else if (flags & REPARENT) {
- event.xreparent.override_redirect = number;
+ event.general.xreparent.override_redirect = number;
} else if (flags & CONFIG) {
- event.xconfigure.override_redirect = number;
+ event.general.xconfigure.override_redirect = number;
} else {
goto badopt;
}
@@ -3584,7 +3584,7 @@ HandleEventGenerate(
return TCL_ERROR;
}
if (flags & CIRC) {
- event.xcirculate.place = number;
+ event.general.xcirculate.place = number;
} else {
goto badopt;
}
@@ -3594,7 +3594,7 @@ HandleEventGenerate(
return TCL_ERROR;
}
if (flags & KEY_BUTTON_MOTION_CROSSING) {
- event.xkey.root = Tk_WindowId(tkwin2);
+ event.general.xkey.root = Tk_WindowId(tkwin2);
} else {
goto badopt;
}
@@ -3604,7 +3604,7 @@ HandleEventGenerate(
return TCL_ERROR;
}
if (flags & KEY_BUTTON_MOTION_CROSSING) {
- event.xkey.x_root = number;
+ event.general.xkey.x_root = number;
} else {
goto badopt;
}
@@ -3614,7 +3614,7 @@ HandleEventGenerate(
return TCL_ERROR;
}
if (flags & KEY_BUTTON_MOTION_CROSSING) {
- event.xkey.y_root = number;
+ event.general.xkey.y_root = number;
} else {
goto badopt;
}
@@ -3637,14 +3637,14 @@ HandleEventGenerate(
return TCL_ERROR;
}
}
- event.xany.send_event = number;
+ event.general.xany.send_event = number;
break;
}
case EVENT_SERIAL:
if (Tcl_GetIntFromObj(interp, valuePtr, &number) != TCL_OK) {
return TCL_ERROR;
}
- event.xany.serial = number;
+ event.general.xany.serial = number;
break;
case EVENT_STATE:
if (flags & KEY_BUTTON_MOTION_CROSSING) {
@@ -3652,9 +3652,9 @@ HandleEventGenerate(
return TCL_ERROR;
}
if (flags & KEY_BUTTON_MOTION_VIRTUAL) {
- event.xkey.state = number;
+ event.general.xkey.state = number;
} else {
- event.xcrossing.state = number;
+ event.general.xcrossing.state = number;
}
} else if (flags & VISIBILITY) {
number = TkFindStateNumObj(interp, optionPtr, visNotify,
@@ -3662,7 +3662,7 @@ HandleEventGenerate(
if (number < 0) {
return TCL_ERROR;
}
- event.xvisibility.state = number;
+ event.general.xvisibility.state = number;
} else {
goto badopt;
}
@@ -3672,7 +3672,7 @@ HandleEventGenerate(
return TCL_ERROR;
}
if (flags & KEY_BUTTON_MOTION_CROSSING) {
- event.xkey.subwindow = Tk_WindowId(tkwin2);
+ event.general.xkey.subwindow = Tk_WindowId(tkwin2);
} else {
goto badopt;
}
@@ -3682,9 +3682,9 @@ HandleEventGenerate(
return TCL_ERROR;
}
if (flags & KEY_BUTTON_MOTION_CROSSING) {
- event.xkey.time = (Time) number;
+ event.general.xkey.time = (Time) number;
} else if (flags & PROP) {
- event.xproperty.time = (Time) number;
+ event.general.xproperty.time = (Time) number;
} else {
goto badopt;
}
@@ -3694,9 +3694,9 @@ HandleEventGenerate(
return TCL_ERROR;
}
if (flags & EXPOSE) {
- event.xexpose.width = number;
+ event.general.xexpose.width = number;
} else if (flags & (CREATE|CONFIG)) {
- event.xcreatewindow.width = number;
+ event.general.xcreatewindow.width = number;
} else {
goto badopt;
}
@@ -3706,7 +3706,7 @@ HandleEventGenerate(
return TCL_ERROR;
}
if (flags & (CREATE|UNMAP|MAP|REPARENT|CONFIG|GRAVITY|CIRC)) {
- event.xcreatewindow.window = Tk_WindowId(tkwin2);
+ event.general.xcreatewindow.window = Tk_WindowId(tkwin2);
} else {
goto badopt;
}
@@ -3716,24 +3716,24 @@ HandleEventGenerate(
return TCL_ERROR;
}
if (flags & KEY_BUTTON_MOTION_CROSSING) {
- event.xkey.x = number;
+ event.general.xkey.x = number;
/*
* Only modify rootx as well if it hasn't been changed.
*/
- if (event.xkey.x_root == -1) {
+ if (event.general.xkey.x_root == -1) {
int rootX, rootY;
Tk_GetRootCoords(tkwin, &rootX, &rootY);
- event.xkey.x_root = rootX + number;
+ event.general.xkey.x_root = rootX + number;
}
} else if (flags & EXPOSE) {
- event.xexpose.x = number;
+ event.general.xexpose.x = number;
} else if (flags & (CREATE|CONFIG|GRAVITY)) {
- event.xcreatewindow.x = number;
+ event.general.xcreatewindow.x = number;
} else if (flags & REPARENT) {
- event.xreparent.x = number;
+ event.general.xreparent.x = number;
} else {
goto badopt;
}
@@ -3743,24 +3743,24 @@ HandleEventGenerate(
return TCL_ERROR;
}
if (flags & KEY_BUTTON_MOTION_CROSSING) {
- event.xkey.y = number;
+ event.general.xkey.y = number;
/*
* Only modify rooty as well if it hasn't been changed.
*/
- if (event.xkey.y_root == -1) {
+ if (event.general.xkey.y_root == -1) {
int rootX, rootY;
Tk_GetRootCoords(tkwin, &rootX, &rootY);
- event.xkey.y_root = rootY + number;
+ event.general.xkey.y_root = rootY + number;
}
} else if (flags & EXPOSE) {
- event.xexpose.y = number;
+ event.general.xexpose.y = number;
} else if (flags & (CREATE|CONFIG|GRAVITY)) {
- event.xcreatewindow.y = number;
+ event.general.xcreatewindow.y = number;
} else if (flags & REPARENT) {
- event.xreparent.y = number;
+ event.general.xreparent.y = number;
} else {
goto badopt;
}
@@ -3774,7 +3774,6 @@ HandleEventGenerate(
return TCL_ERROR;
}
if (userDataObj != NULL) {
- XVirtualEvent *vePtr = (XVirtualEvent *) &event;
/*
* Must be virtual event to set that variable to non-NULL. Now we want
@@ -3783,7 +3782,7 @@ HandleEventGenerate(
* refcount will be decremented once the event has been processed.
*/
- vePtr->user_data = userDataObj;
+ event.virtual.user_data = userDataObj;
Tcl_IncrRefCount(userDataObj);
}
@@ -3793,9 +3792,9 @@ HandleEventGenerate(
*/
if (synch != 0) {
- Tk_HandleEvent(&event);
+ Tk_HandleEvent(&event.general);
} else {
- Tk_QueueWindowEvent(&event, pos);
+ Tk_QueueWindowEvent(&event.general, pos);
}
/*
@@ -3803,15 +3802,15 @@ HandleEventGenerate(
*/
if ((warp != 0) && Tk_IsMapped(tkwin)) {
- TkDisplay *dispPtr = TkGetDisplay(event.xmotion.display);
+ TkDisplay *dispPtr = TkGetDisplay(event.general.xmotion.display);
if (!(dispPtr->flags & TK_DISPLAY_IN_WARP)) {
Tcl_DoWhenIdle(DoWarp, dispPtr);
dispPtr->flags |= TK_DISPLAY_IN_WARP;
}
- dispPtr->warpWindow = event.xany.window;
- dispPtr->warpX = event.xkey.x;
- dispPtr->warpY = event.xkey.y;
+ dispPtr->warpWindow = event.general.xany.window;
+ dispPtr->warpX = event.general.xkey.x;
+ dispPtr->warpY = event.general.xkey.y;
}
Tcl_ResetResult(interp);
return TCL_OK;
diff --git a/generic/tkText.c b/generic/tkText.c
index 4e605ce..7a5fa46 100644
--- a/generic/tkText.c
+++ b/generic/tkText.c
@@ -13,7 +13,7 @@
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tkText.c,v 1.89 2009/02/06 08:12:07 das Exp $
+ * RCS: @(#) $Id: tkText.c,v 1.90 2009/08/09 21:20:33 nijtmans Exp $
*/
#include "default.h"
@@ -3402,16 +3402,16 @@ TkTextSelectionEvent(
* event generate $textWidget <<Selection>>
*/
- XEvent event;
+ union {XEvent general; XVirtualEvent virtual;} event;
memset(&event, 0, sizeof(event));
- event.xany.type = VirtualEvent;
- event.xany.serial = NextRequest(Tk_Display(textPtr->tkwin));
- event.xany.send_event = False;
- event.xany.window = Tk_WindowId(textPtr->tkwin);
- event.xany.display = Tk_Display(textPtr->tkwin);
- ((XVirtualEvent *) &event)->name = Tk_GetUid("Selection");
- Tk_HandleEvent(&event);
+ event.general.xany.type = VirtualEvent;
+ event.general.xany.serial = NextRequest(Tk_Display(textPtr->tkwin));
+ event.general.xany.send_event = False;
+ event.general.xany.window = Tk_WindowId(textPtr->tkwin);
+ event.general.xany.display = Tk_Display(textPtr->tkwin);
+ event.virtual.name = Tk_GetUid("Selection");
+ Tk_HandleEvent(&event.general);
}
/*
@@ -5173,18 +5173,18 @@ static void
GenerateModifiedEvent(
TkText *textPtr) /* Information about text widget. */
{
- XEvent event;
+ union {XEvent general; XVirtualEvent virtual;} event;
Tk_MakeWindowExist(textPtr->tkwin);
memset(&event, 0, sizeof(event));
- event.xany.type = VirtualEvent;
- event.xany.serial = NextRequest(Tk_Display(textPtr->tkwin));
- event.xany.send_event = False;
- event.xany.window = Tk_WindowId(textPtr->tkwin);
- event.xany.display = Tk_Display(textPtr->tkwin);
- ((XVirtualEvent *) &event)->name = Tk_GetUid("Modified");
- Tk_HandleEvent(&event);
+ event.general.xany.type = VirtualEvent;
+ event.general.xany.serial = NextRequest(Tk_Display(textPtr->tkwin));
+ event.general.xany.send_event = False;
+ event.general.xany.window = Tk_WindowId(textPtr->tkwin);
+ event.general.xany.display = Tk_Display(textPtr->tkwin);
+ event.virtual.name = Tk_GetUid("Modified");
+ Tk_HandleEvent(&event.general);
}
/*
diff --git a/generic/tkUtil.c b/generic/tkUtil.c
index ffa392f..342020c 100644
--- a/generic/tkUtil.c
+++ b/generic/tkUtil.c
@@ -10,7 +10,7 @@
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tkUtil.c,v 1.29 2009/04/10 16:00:12 das Exp $
+ * RCS: @(#) $Id: tkUtil.c,v 1.30 2009/08/09 21:20:33 nijtmans Exp $
*/
#include "tkInt.h"
@@ -1163,17 +1163,17 @@ TkMakeEnsemble(
void
TkSendVirtualEvent(Tk_Window target, const char *eventName)
{
- XEvent event;
+ union {XEvent general; XVirtualEvent virtual;} event;
memset(&event, 0, sizeof(event));
- event.xany.type = VirtualEvent;
- event.xany.serial = NextRequest(Tk_Display(target));
- event.xany.send_event = False;
- event.xany.window = Tk_WindowId(target);
- event.xany.display = Tk_Display(target);
- ((XVirtualEvent *) &event)->name = Tk_GetUid(eventName);
-
- Tk_QueueWindowEvent(&event, TCL_QUEUE_TAIL);
+ event.general.xany.type = VirtualEvent;
+ event.general.xany.serial = NextRequest(Tk_Display(target));
+ event.general.xany.send_event = False;
+ event.general.xany.window = Tk_WindowId(target);
+ event.general.xany.display = Tk_Display(target);
+ event.virtual.name = Tk_GetUid(eventName);
+
+ Tk_QueueWindowEvent(&event.general, TCL_QUEUE_TAIL);
}
/*
* Local Variables:
diff --git a/generic/ttk/ttkInit.c b/generic/ttk/ttkInit.c
index 76d1768..4294a9e 100644
--- a/generic/ttk/ttkInit.c
+++ b/generic/ttk/ttkInit.c
@@ -1,4 +1,4 @@
-/* $Id: ttkInit.c,v 1.8 2008/04/27 22:41:12 dkf Exp $
+/* $Id: ttkInit.c,v 1.9 2009/08/09 21:20:34 nijtmans Exp $
* Copyright (c) 2003, Joe English
*
* Ttk package: initialization routine and miscellaneous utilities.
@@ -114,17 +114,17 @@ void TtkCheckStateOption(WidgetCore *corePtr, Tcl_Obj *objPtr)
*/
void TtkSendVirtualEvent(Tk_Window tgtWin, const char *eventName)
{
- XEvent event;
+ union {XEvent general; XVirtualEvent virtual;} event;
memset(&event, 0, sizeof(event));
- event.xany.type = VirtualEvent;
- event.xany.serial = NextRequest(Tk_Display(tgtWin));
- event.xany.send_event = False;
- event.xany.window = Tk_WindowId(tgtWin);
- event.xany.display = Tk_Display(tgtWin);
- ((XVirtualEvent *) &event)->name = Tk_GetUid(eventName);
-
- Tk_QueueWindowEvent(&event, TCL_QUEUE_TAIL);
+ event.general.xany.type = VirtualEvent;
+ event.general.xany.serial = NextRequest(Tk_Display(tgtWin));
+ event.general.xany.send_event = False;
+ event.general.xany.window = Tk_WindowId(tgtWin);
+ event.general.xany.display = Tk_Display(tgtWin);
+ event.virtual.name = Tk_GetUid(eventName);
+
+ Tk_QueueWindowEvent(&event.general, TCL_QUEUE_TAIL);
}
/* TtkEnumerateOptions, TtkGetOptionValue --
diff --git a/win/configure b/win/configure
index 41a6ef0..6747d73 100755
--- a/win/configure
+++ b/win/configure
@@ -3925,6 +3925,63 @@ echo "$as_me: xpnative theme will be unavailable" >&6;}
fi
+echo "$as_me:$LINENO: checking for vssym32.h" >&5
+echo $ECHO_N "checking for vssym32.h... $ECHO_C" >&6
+if test "${ac_cv_header_vssym32_h+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <windows.h>
+#include <uxtheme.h>
+
+#include <vssym32.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_header_vssym32_h=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_header_vssym32_h=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_vssym32_h" >&5
+echo "${ECHO_T}$ac_cv_header_vssym32_h" >&6
+if test $ac_cv_header_vssym32_h = yes; then
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_VSSYM32_H 1
+_ACEOF
+
+fi
+
+
#--------------------------------------------------------------------
# Set the default compiler switches based on the --enable-symbols
diff --git a/win/configure.in b/win/configure.in
index 250040e..f29e05e 100644
--- a/win/configure.in
+++ b/win/configure.in
@@ -3,7 +3,7 @@
# generate the file "configure", which is run during Tk installation
# to configure the system for the local environment.
#
-# RCS: @(#) $Id: configure.in,v 1.86 2009/02/16 18:14:47 hobbs Exp $
+# RCS: @(#) $Id: configure.in,v 1.87 2009/08/09 21:20:34 nijtmans Exp $
AC_INIT(../generic/tk.h)
AC_PREREQ(2.59)
@@ -146,6 +146,9 @@ AC_SUBST(MAN2TCLFLAGS)
AC_CHECK_HEADER([uxtheme.h], [AC_DEFINE(HAVE_UXTHEME_H)],
[AC_MSG_NOTICE([xpnative theme will be unavailable])],
[#include <windows.h>])
+AC_CHECK_HEADER([vssym32.h], [AC_DEFINE(HAVE_VSSYM32_H)], [],
+ [#include <windows.h>
+#include <uxtheme.h>])
#--------------------------------------------------------------------
# Set the default compiler switches based on the --enable-symbols
diff --git a/win/ttkWinXPTheme.c b/win/ttkWinXPTheme.c
index d4cb16c..42e1e0e 100644
--- a/win/ttkWinXPTheme.c
+++ b/win/ttkWinXPTheme.c
@@ -1,5 +1,5 @@
/*
- * $Id: ttkWinXPTheme.c,v 1.25 2009/08/02 21:40:17 nijtmans Exp $
+ * $Id: ttkWinXPTheme.c,v 1.26 2009/08/09 21:20:34 nijtmans Exp $
*
* Tk theme engine which uses the Windows XP "Visual Styles" API
* Adapted from Georgios Petasis' XP theme patch.
@@ -27,7 +27,7 @@ int TtkXPTheme_Init(Tcl_Interp *interp, HWND hwnd) { return TCL_OK; }
#include <windows.h>
#include <uxtheme.h>
-#if defined(_MSC_VER) && (NTDDI_VERSION >= NTDDI_LONGHORN)
+#ifdef HAVE_VSSYM32_H
# include <vssym32.h>
#else
# include <tmschema.h>