From 9b95eacd124700b0b7bf9a0a1e69bb1fb7e079c5 Mon Sep 17 00:00:00 2001 From: patthoyts Date: Wed, 28 Jan 2004 23:36:55 +0000 Subject: Backported fix for bug #776646 which makes hand2 and fleur native on windows. --- ChangeLog | 5 ++ tests/cursor.test | 153 +++++++++++++++++++++++++++++++++++++++++++++++++++++- win/tkWinCursor.c | 15 ++++-- 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 + + * win/tkWinCursor.c: Backported fix for bug #776646 which makes + * tests/cursor.test: hand2 and fleur native on windows. + 2003-01-27 Daniel Steffen * 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} }; -- cgit v0.12