summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--tests/cursor.test153
-rw-r--r--win/tkWinCursor.c15
3 files changed, 169 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index d670546..d70bea8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2004-01-28 Pat Thoyts <patthoyts@users.sourceforge.net>
+
+ * win/tkWinCursor.c: Backported fix for bug #776646 which makes
+ * tests/cursor.test: hand2 and fleur native on windows.
+
2003-01-27 Daniel Steffen <das@users.sourceforge.net>
* macosx/Wish.pbproj/project.pbxproj: removed erroneous reference
diff --git a/tests/cursor.test b/tests/cursor.test
index 054fb0d..65d9309 100644
--- a/tests/cursor.test
+++ b/tests/cursor.test
@@ -6,7 +6,7 @@
# Copyright (c) 1998-1999 by Scriptics Corporation.
# All rights reserved.
#
-# RCS: @(#) $Id: cursor.test,v 1.8 2002/09/03 00:22:37 hobbs Exp $
+# RCS: @(#) $Id: cursor.test,v 1.8.2.1 2004/01/28 23:37:23 patthoyts Exp $
package require tcltest 2.1
namespace import -force tcltest::configure
@@ -132,6 +132,157 @@ test cursor-4.1 {FreeCursorObjProc} {testcursor} {
set result
} {{{1 3}} {{1 2}} {{1 1}} {}}
+# -------------------------------------------------------------------------
+
+test cursor-5.1 {assert consistent cursor configuration command} \
+ -setup { button .b } \
+ -body {
+ list [catch {.b configure -cursor {watch red black}} msg] $msg
+ } \
+ -cleanup {destroy .b} \
+ -result {0 {}}
+
+# -------------------------------------------------------------------------
+# Check for the standard set of cursors.
+
+set n 0
+foreach cursor {
+ X_cursor
+ arrow
+ based_arrow_down
+ based_arrow_up
+ boat
+ bogosity
+ bottom_left_corner
+ bottom_right_corner
+ bottom_side
+ bottom_tee
+ box_spiral
+ center_ptr
+ circle
+ clock
+ coffee_mug
+ cross
+ cross_reverse
+ crosshair
+ diamond_cross
+ dot
+ dotbox
+ double_arrow
+ draft_large
+ draft_small
+ draped_box
+ exchange
+ fleur
+ gobbler
+ gumby
+ hand1
+ hand2
+ heart
+ icon
+ iron_cross
+ left_ptr
+ left_side
+ left_tee
+ leftbutton
+ ll_angle
+ lr_angle
+ man
+ middlebutton
+ mouse
+ pencil
+ pirate
+ plus
+ question_arrow
+ right_ptr
+ right_side
+ right_tee
+ rightbutton
+ rtl_logo
+ sailboat
+ sb_down_arrow
+ sb_h_double_arrow
+ sb_left_arrow
+ sb_right_arrow
+ sb_up_arrow
+ sb_v_double_arrow
+ shuttle
+ sizing
+ spider
+ spraycan
+ star
+ target
+ tcross
+ top_left_arrow
+ top_left_corner
+ top_right_corner
+ top_side
+ top_tee
+ trek
+ ul_angle
+ umbrella
+ ur_angle
+ watch
+ xterm
+} {
+ test cursor-6.$n {check cursor $cursor} \
+ -setup {button .b -text $cursor} \
+ -body {
+ list [catch {.b configure -cursor $cursor} msg] $msg
+ } \
+ -cleanup {destroy .b} \
+ -result {0 {}}
+ incr n
+}
+unset n
+
+# -------------------------------------------------------------------------
+# Check the Windows specific cursors
+set n 0
+foreach cursor {
+ no
+ starting
+ size
+ size_ne_sw
+ size_ns
+ size_nw_se
+ size_we
+ uparrow
+ wait
+} {
+ test cursor-7.$n {check cursor $cursor} \
+ -constraints {pcOnly} \
+ -setup {button .b -text $cursor} \
+ -body {
+ list [catch {.b configure -cursor $cursor} msg] $msg
+ } \
+ -cleanup {destroy .b} \
+ -result {0 {}}
+ incr n
+}
+unset n
+
+# -------------------------------------------------------------------------
+# Check the Mac specific cursors
+set n 0
+foreach cursor {
+ text
+ cross-hair
+} {
+ test cursor-8.$n {check cursor $cursor} \
+ -constraints {macOnly} \
+ -setup {button .b -text $cursor} \
+ -body {
+ list [catch {.b configure -cursor $cursor} msg] $msg
+ } \
+ -cleanup {destroy .b} \
+ -result {0 {}}
+ incr n
+}
+unset n
+
+# -------------------------------------------------------------------------
+
destroy .t
# cleanup
diff --git a/win/tkWinCursor.c b/win/tkWinCursor.c
index 742bed9..ca5e72e 100644
--- a/win/tkWinCursor.c
+++ b/win/tkWinCursor.c
@@ -8,7 +8,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tkWinCursor.c,v 1.10.2.1 2003/07/19 01:02:51 hobbs Exp $
+ * RCS: @(#) $Id: tkWinCursor.c,v 1.10.2.2 2004/01/28 23:37:28 patthoyts Exp $
*/
#include "tkWinInt.h"
@@ -25,6 +25,14 @@ typedef struct {
} TkWinCursor;
/*
+ * The HAND cursor is only present when WINVER >= 0x0500. If this is
+ * not available at runtime, it will default to the unix-style cursor.
+ */
+#ifndef IDC_HAND
+#define IDC_HAND MAKEINTRESOURCE(32649)
+#endif
+
+/*
* The table below is used to map from the name of a predefined cursor
* to its resource identifier.
*/
@@ -38,7 +46,7 @@ static struct CursorName {
{"ibeam", IDC_IBEAM},
{"icon", IDC_ICON},
{"no", IDC_NO},
- {"size", IDC_SIZE},
+ {"size", IDC_SIZEALL},
{"size_ne_sw", IDC_SIZENESW},
{"size_ns", IDC_SIZENS},
{"size_nw_se", IDC_SIZENWSE},
@@ -46,12 +54,13 @@ static struct CursorName {
{"uparrow", IDC_UPARROW},
{"wait", IDC_WAIT},
{"crosshair", IDC_CROSS},
- {"fleur", IDC_SIZE},
+ {"fleur", IDC_SIZEALL},
{"sb_v_double_arrow", IDC_SIZENS},
{"sb_h_double_arrow", IDC_SIZEWE},
{"center_ptr", IDC_UPARROW},
{"watch", IDC_WAIT},
{"xterm", IDC_IBEAM},
+ {"hand2", IDC_HAND},
{NULL, 0}
};