diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2021-09-21 14:59:23 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2021-09-21 14:59:23 (GMT) |
commit | 7ad7d97746b2e5b4c4f8a6b22d7916bf42fa2fbd (patch) | |
tree | a29e96ff57838c5a98576d911537c94e437e18f4 | |
parent | cef404441f9f60077c955c965037f758b97bead6 (diff) | |
parent | 464d689e5ae6cd18016f68b992b3bf03884607d5 (diff) | |
download | tk-7ad7d97746b2e5b4c4f8a6b22d7916bf42fa2fbd.zip tk-7ad7d97746b2e5b4c4f8a6b22d7916bf42fa2fbd.tar.gz tk-7ad7d97746b2e5b4c4f8a6b22d7916bf42fa2fbd.tar.bz2 |
Merge 8.7
-rw-r--r-- | doc/wm.n | 6 | ||||
-rw-r--r-- | generic/nanosvg.h | 37 | ||||
-rw-r--r-- | generic/tkBind.c | 19 | ||||
-rw-r--r-- | library/iconbadges.tcl | 8 | ||||
-rw-r--r-- | macosx/tkMacOSXWm.c | 2 | ||||
-rw-r--r-- | tests/textIndex.test | 12 | ||||
-rw-r--r-- | tests/unixWm.test | 2 | ||||
-rw-r--r-- | tests/winWm.test | 3 | ||||
-rw-r--r-- | tests/wm.test | 10 | ||||
-rwxr-xr-x | unix/configure | 142 | ||||
-rw-r--r-- | unix/tkUnixWm.c | 8 | ||||
-rwxr-xr-x | win/configure | 142 | ||||
-rw-r--r-- | win/tkWin32Dll.c | 4 | ||||
-rw-r--r-- | win/tkWinGDI.c | 1120 | ||||
-rw-r--r-- | win/tkWinWm.c | 29 |
15 files changed, 220 insertions, 1324 deletions
@@ -412,12 +412,12 @@ string if \fIwindow\fR is not part of any group. Sets a badge for the icon of the \fIwindow\fR. The badge can be a positive integer number, for instance the number of new or unread messages, or an exclamation point denoting attention needed. If the badge is an empty -string, the badge image is removed from the application icon. Managing +string, the badge image is removed from the application icon. Managing these changes through bindings, such as <FocusIn>, is the responsibility of the developer. .RS .PP -On X11, for this command to work, +On X11, for this command to work, the variable \fB::tk::icons::base_icon($window)\fR must be set to the image that is being used for the window icon of $window. On Windows and X11, the iconphoto images work best at 32x32 or a similar dimension, as @@ -432,7 +432,7 @@ displayed in the Dock, regardless of how many different icon badges may be assigned to different windows. On Windows, the taskbar display depends on whether the taskbar buttons are combined or not (this is an OS setting available to the user): if combined the behavior is the same as on macOS, -otherwise each button in the taskbar shows the badge it was assigned. +otherwise each button in the taskbar shows the badge it was assigned. Badge display on macOS is configured in the system preferences. App panel display behavior on X11 will depend on the window manager and/or desktop environment. diff --git a/generic/nanosvg.h b/generic/nanosvg.h index 9a6eb3f..bb5ba25 100644 --- a/generic/nanosvg.h +++ b/generic/nanosvg.h @@ -1287,35 +1287,22 @@ static const char* nsvg__getNextPathItem(const char* s, char* it) static unsigned int nsvg__parseColorHex(const char* str) { - unsigned int c = 0, r = 0, g = 0, b = 0; - int n = 0; - str++; /* skip # */ - /* Calculate number of characters. */ - while(str[n] && !nsvg__isspace(str[n])) - n++; - if (n == 6) { - sscanf(str, "%x", &c); - } else if (n == 3) { - sscanf(str, "%x", &c); - c = (c&0xf) | ((c&0xf0) << 4) | ((c&0xf00) << 8); - c |= c<<4; - } - r = (c >> 16) & 0xff; - g = (c >> 8) & 0xff; - b = c & 0xff; - return NSVG_RGB(r,g,b); + unsigned int r=0, g=0, b=0; + if (sscanf(str, "#%2x%2x%2x", &r, &g, &b) == 3 ) /* 2 digit hex */ + return NSVG_RGB(r, g, b); + if (sscanf(str, "#%1x%1x%1x", &r, &g, &b) == 3 ) /* 1 digit hex, e.g. #abc -> 0xccbbaa */ + return NSVG_RGB(r*17, g*17, b*17); /* same effect as (r<<4|r), (g<<4|g), .. */ + return NSVG_RGB(128, 128, 128); } static unsigned int nsvg__parseColorRGB(const char* str) { - int r = -1, g = -1, b = -1; - char s1[32]="", s2[32]=""; - sscanf(str + 4, "%d%[%%, \t]%d%[%%, \t]%d", &r, s1, &g, s2, &b); - if (strchr(s1, '%')) { - return NSVG_RGB((r*255)/100,(g*255)/100,(b*255)/100); - } else { - return NSVG_RGB(r,g,b); - } + unsigned int r=0, g=0, b=0; + if (sscanf(str, "rgb(%u, %u, %u)", &r, &g, &b) == 3) /* decimal integers */ + return NSVG_RGB(r, g, b); + if (sscanf(str, "rgb(%u%%, %u%%, %u%%)", &r, &g, &b) == 3) /* decimal integer percentage */ + return NSVG_RGB(r*255/100, g*255/100, b*255/100); + return NSVG_RGB(128, 128, 128); } typedef struct NSVGNamedColor { diff --git a/generic/tkBind.c b/generic/tkBind.c index 0f885f3..8bf4809 100644 --- a/generic/tkBind.c +++ b/generic/tkBind.c @@ -817,9 +817,22 @@ GetButtonNumber( static Time CurrentTimeInMilliSecs(void) { - Tcl_Time now; - Tcl_GetTime(&now); - return ((Time) now.sec)*1000 + ((Time) now.usec)/1000; + union { + Tcl_Time now; + struct { + long long sec; /* reserve stack space enough for 64-bit fields */ + long long usec; + } lnow; + } t; + t.lnow.usec = -1; /* Invalid usec value, so we can see if Tcl_GetTime overwrites it */ + Tcl_GetTime(&t.now); +#ifdef _WIN64 + if (t.lnow.usec != -1) { + /* Win64 Tk loaded in Cygwin-64: Tcl_GetTime() returns 64-bit fields */ + return ((Time) t.lnow.sec)*1000 + ((Time) t.lnow.usec)/1000; + } +#endif + return ((Time) t.now.sec)*1000 + ((Time) t.now.usec)/1000; } static Info diff --git a/library/iconbadges.tcl b/library/iconbadges.tcl index 820e040..fd249a0 100644 --- a/library/iconbadges.tcl +++ b/library/iconbadges.tcl @@ -197,7 +197,7 @@ if {[tk windowingsystem] eq "x11"} { # ::tk::icons::IconBadge -- # This procedure creates an icon with an overlay badge on systems that - # do not have a native icon/badge API. + # do not have a native icon/badge API. # # Arguments: # win - window name @@ -219,7 +219,7 @@ if {[tk windowingsystem] eq "x11"} { return -code error "can't use \"$::tk::icons::base_icon($win)\" as iconphoto: not a photo image" } - if {!([string is integer $badgenumber] && $badgenumber > 0) + if {!([string is integer $badgenumber] && $badgenumber > 0) && [string match $badgenumber "!"] == 0 && $badgenumber ne ""} { return -code error "can't use \"$badgenumber\" as icon badge" @@ -232,14 +232,14 @@ if {[tk windowingsystem] eq "x11"} { } image create photo overlay - + switch -glob -- $badgenumber { ! { set badge ::tk::icons::!-badge } [1-9] { set badge ::tk::icons::$badgenumber-badge - } + } default { set badge ::tk::icons::9plus-badge } diff --git a/macosx/tkMacOSXWm.c b/macosx/tkMacOSXWm.c index d827552..69d9e70 100644 --- a/macosx/tkMacOSXWm.c +++ b/macosx/tkMacOSXWm.c @@ -1204,7 +1204,7 @@ Tk_WmObjCmd( enum options { WMOPT_ASPECT, WMOPT_ATTRIBUTES, WMOPT_CLIENT, WMOPT_COLORMAPWINDOWS, WMOPT_COMMAND, WMOPT_DEICONIFY, WMOPT_FOCUSMODEL, WMOPT_FORGET, - WMOPT_FRAME, WMOPT_GEOMETRY, WMOPT_GRID, WMOPT_GROUP, WMOPT_ICONBADGE, + WMOPT_FRAME, WMOPT_GEOMETRY, WMOPT_GRID, WMOPT_GROUP, WMOPT_ICONBADGE, WMOPT_ICONBITMAP, WMOPT_ICONIFY, WMOPT_ICONMASK, WMOPT_ICONNAME, WMOPT_ICONPHOTO, WMOPT_ICONPOSITION, WMOPT_ICONWINDOW, WMOPT_MANAGE, WMOPT_MAXSIZE, WMOPT_MINSIZE, WMOPT_OVERRIDEREDIRECT, diff --git a/tests/textIndex.test b/tests/textIndex.test index f2cccac..faddcfa 100644 --- a/tests/textIndex.test +++ b/tests/textIndex.test @@ -834,6 +834,18 @@ test textIndex-19.13 {Display lines} { destroy .txt .sbar } {} +test textIndex-19.14 {Display lines with elided lines} { + catch {destroy .t} + pack [text .t] + for {set n 1} {$n <= 1000} {incr n} { + .t insert end "Line $n\n" + } + .t tag configure Elided -elide 1 + .t tag add Elided 6.0 951.0 + update + set res [.t index "951.0 + 1 displaylines"] +} {952.0} + proc text_test_word {startend chars start} { destroy .t text .t diff --git a/tests/unixWm.test b/tests/unixWm.test index 2adf03f..d67a024 100644 --- a/tests/unixWm.test +++ b/tests/unixWm.test @@ -2504,7 +2504,7 @@ if {[tk windowingsystem] == "aqua"} { -titlepath {} -topmost 0 -transparent 0\ -type unsupported} } else { - set result_60_1 {-alpha 1.0 -topmost 0 -zoomed 0 -fullscreen 0 -type {}} + set result_60_1 {-alpha 1.0 -fullscreen 0 -topmost 0 -type {} -zoomed 0} } test unixWm-60.1 {wm attributes - test} -constraints unix -body { destroy .t diff --git a/tests/winWm.test b/tests/winWm.test index f659a13..35775a2 100644 --- a/tests/winWm.test +++ b/tests/winWm.test @@ -280,12 +280,11 @@ test winWm-6.2 {wm attributes} -constraints win -setup { test winWm-6.3 {wm attributes} -constraints win -setup { destroy .t } -body { - # This isn't quite the correct error message yet, but it works. toplevel .t wm attributes .t -foo } -cleanup { destroy .t -} -returnCodes error -result {wrong # args: should be "wm attributes window ?-alpha ?double?? ?-transparentcolor ?color?? ?-disabled ?bool?? ?-fullscreen ?bool?? ?-toolwindow ?bool?? ?-topmost ?bool??"} +} -returnCodes error -result {bad attribute "-foo": must be -alpha, -disabled, -fullscreen, -toolwindow, -topmost, or -transparentcolor} test winWm-6.4 {wm attributes -alpha} -constraints win -setup { destroy .t diff --git a/tests/wm.test b/tests/wm.test index 73dcbbf..fe58382 100644 --- a/tests/wm.test +++ b/tests/wm.test @@ -193,21 +193,17 @@ test wm-attributes-1.1 {usage} -returnCodes error -body { wm attributes } -result {wrong # args: should be "wm option window ?arg ...?"} test wm-attributes-1.2.1 {usage} -constraints win -returnCodes error -body { - # This is the wrong error to output - unix has it right, but it's - # not critical. wm attributes . _ -} -result {wrong # args: should be "wm attributes window ?-alpha ?double?? ?-transparentcolor ?color?? ?-disabled ?bool?? ?-fullscreen ?bool?? ?-toolwindow ?bool?? ?-topmost ?bool??"} +} -result {bad attribute "_": must be -alpha, -disabled, -fullscreen, -toolwindow, -topmost, or -transparentcolor} test wm-attributes-1.2.2 {usage} -constraints win -returnCodes error -body { wm attributes . -alpha 1.0 -disabled } -result {wrong # args: should be "wm attributes window ?-alpha ?double?? ?-transparentcolor ?color?? ?-disabled ?bool?? ?-fullscreen ?bool?? ?-toolwindow ?bool?? ?-topmost ?bool??"} test wm-attributes-1.2.3 {usage} -constraints win -returnCodes error -body { - # This is the wrong error to output - unix has it right, but it's - # not critical. wm attributes . -to -} -result {wrong # args: should be "wm attributes window ?-alpha ?double?? ?-transparentcolor ?color?? ?-disabled ?bool?? ?-fullscreen ?bool?? ?-toolwindow ?bool?? ?-topmost ?bool??"} +} -result {bad attribute "-to": must be -alpha, -disabled, -fullscreen, -toolwindow, -topmost, or -transparentcolor} test wm-attributes-1.2.4 {usage} -constraints {unix notAqua} -returnCodes error -body { wm attributes . _ -} -result {bad attribute "_": must be -alpha, -topmost, -zoomed, -fullscreen, or -type} +} -result {bad attribute "_": must be -alpha, -fullscreen, -topmost, -type, or -zoomed} test wm-attributes-1.2.5 {usage} -constraints aqua -returnCodes error -body { wm attributes . _ } -result {bad attribute "_": must be -alpha, -fullscreen, -modified, -notify, -titlepath, -topmost, -transparent, or -type} diff --git a/unix/configure b/unix/configure index 34a1968..bd4b7d8 100755 --- a/unix/configure +++ b/unix/configure @@ -1,9 +1,10 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.70 for tk 8.7. +# Generated by GNU Autoconf 2.71 for tk 8.7. # # -# Copyright (C) 1992-1996, 1998-2017, 2020 Free Software Foundation, Inc. +# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, +# Inc. # # # This configure script is free software; the Free Software Foundation @@ -1564,9 +1565,9 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF tk configure 8.7 -generated by GNU Autoconf 2.70 +generated by GNU Autoconf 2.71 -Copyright (C) 2020 Free Software Foundation, Inc. +Copyright (C) 2021 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF @@ -1920,7 +1921,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by tk $as_me 8.7, which was -generated by GNU Autoconf 2.70. Invocation command line was +generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3773,7 +3774,10 @@ else CFLAGS= fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5 +ac_prog_cc_stdc=no +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5 printf %s "checking for $CC option to enable C11 features... " >&6; } if test ${ac_cv_prog_cc_c11+y} then : @@ -3797,28 +3801,28 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam done rm -f conftest.$ac_ext CC=$ac_save_CC - fi -# AC_CACHE_VAL -ac_prog_cc_stdc_options= -case "x$ac_cv_prog_cc_c11" in #( - x) : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -printf "%s\n" "none needed" >&6; } ;; #( - xno) : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -printf "%s\n" "unsupported" >&6; } ;; #( - *) : - ac_prog_cc_stdc_options=" $ac_cv_prog_cc_c11" - CC="$CC$ac_prog_cc_stdc_options" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 -printf "%s\n" "$ac_cv_prog_cc_c11" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c11" != xno + +if test "x$ac_cv_prog_cc_c11" = xno then : - ac_prog_cc_stdc=c11 - ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c11" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 +printf "%s\n" "$ac_cv_prog_cc_c11" >&6; } + CC="$CC $ac_cv_prog_cc_c11" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11 + ac_prog_cc_stdc=c11 +fi +fi +if test x$ac_prog_cc_stdc = xno +then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5 printf %s "checking for $CC option to enable C99 features... " >&6; } if test ${ac_cv_prog_cc_c99+y} @@ -3829,9 +3833,9 @@ else $as_nop ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -$ac_c_conftest_c89_program +$ac_c_conftest_c99_program _ACEOF -for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -D_STDC_C99= -qlanglvl=extc1x -qlanglvl=extc99 +for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99= do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO" @@ -3843,28 +3847,28 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam done rm -f conftest.$ac_ext CC=$ac_save_CC - fi -# AC_CACHE_VAL -ac_prog_cc_stdc_options= -case "x$ac_cv_prog_cc_c99" in #( - x) : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -printf "%s\n" "none needed" >&6; } ;; #( - xno) : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -printf "%s\n" "unsupported" >&6; } ;; #( - *) : - ac_prog_cc_stdc_options=" $ac_cv_prog_cc_c99" - CC="$CC$ac_prog_cc_stdc_options" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 -printf "%s\n" "$ac_cv_prog_cc_c99" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c99" != xno + +if test "x$ac_cv_prog_cc_c99" = xno then : - ac_prog_cc_stdc=c99 - ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c99" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 +printf "%s\n" "$ac_cv_prog_cc_c99" >&6; } + CC="$CC $ac_cv_prog_cc_c99" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 + ac_prog_cc_stdc=c99 +fi +fi +if test x$ac_prog_cc_stdc = xno +then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5 printf %s "checking for $CC option to enable C89 features... " >&6; } if test ${ac_cv_prog_cc_c89+y} @@ -3877,8 +3881,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_c_conftest_c89_program _ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO" @@ -3890,34 +3893,25 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam done rm -f conftest.$ac_ext CC=$ac_save_CC - fi -# AC_CACHE_VAL -ac_prog_cc_stdc_options= -case "x$ac_cv_prog_cc_c89" in #( - x) : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -printf "%s\n" "none needed" >&6; } ;; #( - xno) : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -printf "%s\n" "unsupported" >&6; } ;; #( - *) : - ac_prog_cc_stdc_options=" $ac_cv_prog_cc_c89" - CC="$CC$ac_prog_cc_stdc_options" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -printf "%s\n" "$ac_cv_prog_cc_c89" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c89" != xno + +if test "x$ac_cv_prog_cc_c89" = xno then : - ac_prog_cc_stdc=c89 - ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } else $as_nop - ac_prog_cc_stdc=no - ac_cv_prog_cc_stdc=no + if test "x$ac_cv_prog_cc_c89" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +printf "%s\n" "$ac_cv_prog_cc_c89" >&6; } + CC="$CC $ac_cv_prog_cc_c89" fi - + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 + ac_prog_cc_stdc=c89 fi - fi ac_ext=c @@ -9559,7 +9553,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # values after options handling. ac_log=" This file was extended by tk $as_me 8.7, which was -generated by GNU Autoconf 2.70. Invocation command line was +generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -9618,10 +9612,10 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ tk config.status 8.7 -configured by $0, generated by GNU Autoconf 2.70, +configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" -Copyright (C) 2020 Free Software Foundation, Inc. +Copyright (C) 2021 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." diff --git a/unix/tkUnixWm.c b/unix/tkUnixWm.c index 6463076..7661155 100644 --- a/unix/tkUnixWm.c +++ b/unix/tkUnixWm.c @@ -50,13 +50,13 @@ typedef struct { } WmAttributes; typedef enum { - WMATT_ALPHA, WMATT_TOPMOST, WMATT_ZOOMED, WMATT_FULLSCREEN, - WMATT_TYPE, _WMATT_LAST_ATTRIBUTE + WMATT_ALPHA, WMATT_FULLSCREEN, WMATT_TOPMOST, WMATT_TYPE, + WMATT_ZOOMED, _WMATT_LAST_ATTRIBUTE } WmAttribute; static const char *const WmAttributeNames[] = { - "-alpha", "-topmost", "-zoomed", "-fullscreen", - "-type", NULL + "-alpha", "-fullscreen", "-topmost", "-type", + "-zoomed", NULL }; /* diff --git a/win/configure b/win/configure index 4e212c5..1b38323 100755 --- a/win/configure +++ b/win/configure @@ -1,9 +1,10 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.70 for tk 8.7. +# Generated by GNU Autoconf 2.71 for tk 8.7. # # -# Copyright (C) 1992-1996, 1998-2017, 2020 Free Software Foundation, Inc. +# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, +# Inc. # # # This configure script is free software; the Free Software Foundation @@ -1525,9 +1526,9 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF tk configure 8.7 -generated by GNU Autoconf 2.70 +generated by GNU Autoconf 2.71 -Copyright (C) 2020 Free Software Foundation, Inc. +Copyright (C) 2021 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF @@ -1729,7 +1730,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by tk $as_me 8.7, which was -generated by GNU Autoconf 2.70. Invocation command line was +generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3271,7 +3272,10 @@ else CFLAGS= fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5 +ac_prog_cc_stdc=no +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5 printf %s "checking for $CC option to enable C11 features... " >&6; } if test ${ac_cv_prog_cc_c11+y} then : @@ -3295,28 +3299,28 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam done rm -f conftest.$ac_ext CC=$ac_save_CC - fi -# AC_CACHE_VAL -ac_prog_cc_stdc_options= -case "x$ac_cv_prog_cc_c11" in #( - x) : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -printf "%s\n" "none needed" >&6; } ;; #( - xno) : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -printf "%s\n" "unsupported" >&6; } ;; #( - *) : - ac_prog_cc_stdc_options=" $ac_cv_prog_cc_c11" - CC="$CC$ac_prog_cc_stdc_options" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 -printf "%s\n" "$ac_cv_prog_cc_c11" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c11" != xno + +if test "x$ac_cv_prog_cc_c11" = xno then : - ac_prog_cc_stdc=c11 - ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c11" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 +printf "%s\n" "$ac_cv_prog_cc_c11" >&6; } + CC="$CC $ac_cv_prog_cc_c11" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11 + ac_prog_cc_stdc=c11 +fi +fi +if test x$ac_prog_cc_stdc = xno +then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5 printf %s "checking for $CC option to enable C99 features... " >&6; } if test ${ac_cv_prog_cc_c99+y} @@ -3327,9 +3331,9 @@ else $as_nop ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -$ac_c_conftest_c89_program +$ac_c_conftest_c99_program _ACEOF -for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -D_STDC_C99= -qlanglvl=extc1x -qlanglvl=extc99 +for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99= do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO" @@ -3341,28 +3345,28 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam done rm -f conftest.$ac_ext CC=$ac_save_CC - fi -# AC_CACHE_VAL -ac_prog_cc_stdc_options= -case "x$ac_cv_prog_cc_c99" in #( - x) : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -printf "%s\n" "none needed" >&6; } ;; #( - xno) : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -printf "%s\n" "unsupported" >&6; } ;; #( - *) : - ac_prog_cc_stdc_options=" $ac_cv_prog_cc_c99" - CC="$CC$ac_prog_cc_stdc_options" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 -printf "%s\n" "$ac_cv_prog_cc_c99" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c99" != xno + +if test "x$ac_cv_prog_cc_c99" = xno then : - ac_prog_cc_stdc=c99 - ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c99" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 +printf "%s\n" "$ac_cv_prog_cc_c99" >&6; } + CC="$CC $ac_cv_prog_cc_c99" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 + ac_prog_cc_stdc=c99 +fi +fi +if test x$ac_prog_cc_stdc = xno +then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5 printf %s "checking for $CC option to enable C89 features... " >&6; } if test ${ac_cv_prog_cc_c89+y} @@ -3375,8 +3379,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_c_conftest_c89_program _ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO" @@ -3388,34 +3391,25 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam done rm -f conftest.$ac_ext CC=$ac_save_CC - fi -# AC_CACHE_VAL -ac_prog_cc_stdc_options= -case "x$ac_cv_prog_cc_c89" in #( - x) : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -printf "%s\n" "none needed" >&6; } ;; #( - xno) : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -printf "%s\n" "unsupported" >&6; } ;; #( - *) : - ac_prog_cc_stdc_options=" $ac_cv_prog_cc_c89" - CC="$CC$ac_prog_cc_stdc_options" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -printf "%s\n" "$ac_cv_prog_cc_c89" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c89" != xno + +if test "x$ac_cv_prog_cc_c89" = xno then : - ac_prog_cc_stdc=c89 - ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } else $as_nop - ac_prog_cc_stdc=no - ac_cv_prog_cc_stdc=no + if test "x$ac_cv_prog_cc_c89" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +printf "%s\n" "$ac_cv_prog_cc_c89" >&6; } + CC="$CC $ac_cv_prog_cc_c89" fi - + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 + ac_prog_cc_stdc=c89 fi - fi ac_ext=c @@ -6498,7 +6492,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # values after options handling. ac_log=" This file was extended by tk $as_me 8.7, which was -generated by GNU Autoconf 2.70. Invocation command line was +generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -6553,10 +6547,10 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ tk config.status 8.7 -configured by $0, generated by GNU Autoconf 2.70, +configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" -Copyright (C) 2020 Free Software Foundation, Inc. +Copyright (C) 2021 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." diff --git a/win/tkWin32Dll.c b/win/tkWin32Dll.c index a761ee1..24507bb 100644 --- a/win/tkWin32Dll.c +++ b/win/tkWin32Dll.c @@ -120,11 +120,11 @@ DllMain( case DLL_PROCESS_DETACH: /* * Protect the call to TkFinalize in an SEH block. We can't be - * guarenteed Tk is always being unloaded from a stable condition. + * guaranteed Tk is always being unloaded from a stable condition. */ #ifdef HAVE_NO_SEH -# ifdef __WIN64 +# ifdef _WIN64 __asm__ __volatile__ ( /* diff --git a/win/tkWinGDI.c b/win/tkWinGDI.c index 3f36363..7c6705a 100644 --- a/win/tkWinGDI.c +++ b/win/tkWinGDI.c @@ -63,10 +63,7 @@ static int GdiCopyBits(ClientData clientData, Tcl_Interp *interp, int argc, const char **argv); /* Local copies of similar routines elsewhere in Tcl/Tk. */ -static int GdiParseColor(const char *name, unsigned long *color); -static int GdiGetColor(const char *name, unsigned long *color); -static int TkGdiMakeBezierCurve(Tk_Canvas, double *, int, int, - XPoint[], double[]); +static int GdiGetColor(const char *name, COLORREF *color); /* * Helper functions. @@ -620,7 +617,7 @@ int Bezierize( return 0; } - nbpoints = TkGdiMakeBezierCurve(NULL, inPointList, npoly, nStep, + nbpoints = TkMakeBezierCurve(NULL, inPointList, npoly, nStep, NULL, outPointList); Tcl_Free((void *) inPointList); @@ -2869,7 +2866,6 @@ static int GdiFreeBrush( * Functions have removed reliance on X and Tk libraries, as well as removing * the need for TkWindows. * GdiGetColor is a copy of a TkpGetColor from tkWinColor.c - * GdiParseColor is a copy of XParseColor from xcolors.c */ typedef struct { const char *name; @@ -2906,756 +2902,6 @@ static const SystemColorEntry sysColors[] = { }; static int numsyscolors = 0; - -typedef struct { - const char *name; - unsigned char red; - unsigned char green; - unsigned char blue; -} XColorEntry; - -static const XColorEntry xColors[] = { - {"alice blue", 240, 248, 255}, - {"AliceBlue", 240, 248, 255}, - {"antique white", 250, 235, 215}, - {"AntiqueWhite", 250, 235, 215}, - {"AntiqueWhite1", 255, 239, 219}, - {"AntiqueWhite2", 238, 223, 204}, - {"AntiqueWhite3", 205, 192, 176}, - {"AntiqueWhite4", 139, 131, 120}, - {"aquamarine", 127, 255, 212}, - {"aquamarine1", 127, 255, 212}, - {"aquamarine2", 118, 238, 198}, - {"aquamarine3", 102, 205, 170}, - {"aquamarine4", 69, 139, 116}, - {"azure", 240, 255, 255}, - {"azure1", 240, 255, 255}, - {"azure2", 224, 238, 238}, - {"azure3", 193, 205, 205}, - {"azure4", 131, 139, 139}, - {"beige", 245, 245, 220}, - {"bisque", 255, 228, 196}, - {"bisque1", 255, 228, 196}, - {"bisque2", 238, 213, 183}, - {"bisque3", 205, 183, 158}, - {"bisque4", 139, 125, 107}, - {"black", 0, 0, 0}, - {"blanched almond", 255, 235, 205}, - {"BlanchedAlmond", 255, 235, 205}, - {"blue", 0, 0, 255}, - {"blue violet", 138, 43, 226}, - {"blue1", 0, 0, 255}, - {"blue2", 0, 0, 238}, - {"blue3", 0, 0, 205}, - {"blue4", 0, 0, 139}, - {"BlueViolet", 138, 43, 226}, - {"brown", 165, 42, 42}, - {"brown1", 255, 64, 64}, - {"brown2", 238, 59, 59}, - {"brown3", 205, 51, 51}, - {"brown4", 139, 35, 35}, - {"burlywood", 222, 184, 135}, - {"burlywood1", 255, 211, 155}, - {"burlywood2", 238, 197, 145}, - {"burlywood3", 205, 170, 125}, - {"burlywood4", 139, 115, 85}, - {"cadet blue", 95, 158, 160}, - {"CadetBlue", 95, 158, 160}, - {"CadetBlue1", 152, 245, 255}, - {"CadetBlue2", 142, 229, 238}, - {"CadetBlue3", 122, 197, 205}, - {"CadetBlue4", 83, 134, 139}, - {"chartreuse", 127, 255, 0}, - {"chartreuse1", 127, 255, 0}, - {"chartreuse2", 118, 238, 0}, - {"chartreuse3", 102, 205, 0}, - {"chartreuse4", 69, 139, 0}, - {"chocolate", 210, 105, 30}, - {"chocolate1", 255, 127, 36}, - {"chocolate2", 238, 118, 33}, - {"chocolate3", 205, 102, 29}, - {"chocolate4", 139, 69, 19}, - {"coral", 255, 127, 80}, - {"coral1", 255, 114, 86}, - {"coral2", 238, 106, 80}, - {"coral3", 205, 91, 69}, - {"coral4", 139, 62, 47}, - {"cornflower blue", 100, 149, 237}, - {"CornflowerBlue", 100, 149, 237}, - {"cornsilk", 255, 248, 220}, - {"cornsilk1", 255, 248, 220}, - {"cornsilk2", 238, 232, 205}, - {"cornsilk3", 205, 200, 177}, - {"cornsilk4", 139, 136, 120}, - {"cyan", 0, 255, 255}, - {"cyan1", 0, 255, 255}, - {"cyan2", 0, 238, 238}, - {"cyan3", 0, 205, 205}, - {"cyan4", 0, 139, 139}, - {"dark goldenrod", 184, 134, 11}, - {"dark green", 0, 100, 0}, - {"dark khaki", 189, 183, 107}, - {"dark olive green", 85, 107, 47}, - {"dark orange", 255, 140, 0}, - {"dark orchid", 153, 50, 204}, - {"dark salmon", 233, 150, 122}, - {"dark sea green", 143, 188, 143}, - {"dark slate blue", 72, 61, 139}, - {"dark slate gray", 47, 79, 79}, - {"dark slate grey", 47, 79, 79}, - {"dark turquoise", 0, 206, 209}, - {"dark violet", 148, 0, 211}, - {"DarkGoldenrod", 184, 134, 11}, - {"DarkGoldenrod1", 255, 185, 15}, - {"DarkGoldenrod2", 238, 173, 14}, - {"DarkGoldenrod3", 205, 149, 12}, - {"DarkGoldenrod4", 139, 101, 8}, - {"DarkGreen", 0, 100, 0}, - {"DarkKhaki", 189, 183, 107}, - {"DarkOliveGreen", 85, 107, 47}, - {"DarkOliveGreen1", 202, 255, 112}, - {"DarkOliveGreen2", 188, 238, 104}, - {"DarkOliveGreen3", 162, 205, 90}, - {"DarkOliveGreen4", 110, 139, 61}, - {"DarkOrange", 255, 140, 0}, - {"DarkOrange1", 255, 127, 0}, - {"DarkOrange2", 238, 118, 0}, - {"DarkOrange3", 205, 102, 0}, - {"DarkOrange4", 139, 69, 0}, - {"DarkOrchid", 153, 50, 204}, - {"DarkOrchid1", 191, 62, 255}, - {"DarkOrchid2", 178, 58, 238}, - {"DarkOrchid3", 154, 50, 205}, - {"DarkOrchid4", 104, 34, 139}, - {"DarkSalmon", 233, 150, 122}, - {"DarkSeaGreen", 143, 188, 143}, - {"DarkSeaGreen1", 193, 255, 193}, - {"DarkSeaGreen2", 180, 238, 180}, - {"DarkSeaGreen3", 155, 205, 155}, - {"DarkSeaGreen4", 105, 139, 105}, - {"DarkSlateBlue", 72, 61, 139}, - {"DarkSlateGray", 47, 79, 79}, - {"DarkSlateGray1", 151, 255, 255}, - {"DarkSlateGray2", 141, 238, 238}, - {"DarkSlateGray3", 121, 205, 205}, - {"DarkSlateGray4", 82, 139, 139}, - {"DarkSlateGrey", 47, 79, 79}, - {"DarkTurquoise", 0, 206, 209}, - {"DarkViolet", 148, 0, 211}, - {"deep pink", 255, 20, 147}, - {"deep sky blue", 0, 191, 255}, - {"DeepPink", 255, 20, 147}, - {"DeepPink1", 255, 20, 147}, - {"DeepPink2", 238, 18, 137}, - {"DeepPink3", 205, 16, 118}, - {"DeepPink4", 139, 10, 80}, - {"DeepSkyBlue", 0, 191, 255}, - {"DeepSkyBlue1", 0, 191, 255}, - {"DeepSkyBlue2", 0, 178, 238}, - {"DeepSkyBlue3", 0, 154, 205}, - {"DeepSkyBlue4", 0, 104, 139}, - {"dim gray", 105, 105, 105}, - {"dim grey", 105, 105, 105}, - {"DimGray", 105, 105, 105}, - {"DimGrey", 105, 105, 105}, - {"dodger blue", 30, 144, 255}, - {"DodgerBlue", 30, 144, 255}, - {"DodgerBlue1", 30, 144, 255}, - {"DodgerBlue2", 28, 134, 238}, - {"DodgerBlue3", 24, 116, 205}, - {"DodgerBlue4", 16, 78, 139}, - {"firebrick", 178, 34, 34}, - {"firebrick1", 255, 48, 48}, - {"firebrick2", 238, 44, 44}, - {"firebrick3", 205, 38, 38}, - {"firebrick4", 139, 26, 26}, - {"floral white", 255, 250, 240}, - {"FloralWhite", 255, 250, 240}, - {"forest green", 34, 139, 34}, - {"ForestGreen", 34, 139, 34}, - {"gainsboro", 220, 220, 220}, - {"ghost white", 248, 248, 255}, - {"GhostWhite", 248, 248, 255}, - {"gold", 255, 215, 0}, - {"gold1", 255, 215, 0}, - {"gold2", 238, 201, 0}, - {"gold3", 205, 173, 0}, - {"gold4", 139, 117, 0}, - {"goldenrod", 218, 165, 32}, - {"goldenrod1", 255, 193, 37}, - {"goldenrod2", 238, 180, 34}, - {"goldenrod3", 205, 155, 29}, - {"goldenrod4", 139, 105, 20}, - {"gray", 190, 190, 190}, - {"gray0", 0, 0, 0}, - {"gray1", 3, 3, 3}, - {"gray10", 26, 26, 26}, - {"gray100", 255, 255, 255}, - {"gray11", 28, 28, 28}, - {"gray12", 31, 31, 31}, - {"gray13", 33, 33, 33}, - {"gray14", 36, 36, 36}, - {"gray15", 38, 38, 38}, - {"gray16", 41, 41, 41}, - {"gray17", 43, 43, 43}, - {"gray18", 46, 46, 46}, - {"gray19", 48, 48, 48}, - {"gray2", 5, 5, 5}, - {"gray20", 51, 51, 51}, - {"gray21", 54, 54, 54}, - {"gray22", 56, 56, 56}, - {"gray23", 59, 59, 59}, - {"gray24", 61, 61, 61}, - {"gray25", 64, 64, 64}, - {"gray26", 66, 66, 66}, - {"gray27", 69, 69, 69}, - {"gray28", 71, 71, 71}, - {"gray29", 74, 74, 74}, - {"gray3", 8, 8, 8}, - {"gray30", 77, 77, 77}, - {"gray31", 79, 79, 79}, - {"gray32", 82, 82, 82}, - {"gray33", 84, 84, 84}, - {"gray34", 87, 87, 87}, - {"gray35", 89, 89, 89}, - {"gray36", 92, 92, 92}, - {"gray37", 94, 94, 94}, - {"gray38", 97, 97, 97}, - {"gray39", 99, 99, 99}, - {"gray4", 10, 10, 10}, - {"gray40", 102, 102, 102}, - {"gray41", 105, 105, 105}, - {"gray42", 107, 107, 107}, - {"gray43", 110, 110, 110}, - {"gray44", 112, 112, 112}, - {"gray45", 115, 115, 115}, - {"gray46", 117, 117, 117}, - {"gray47", 120, 120, 120}, - {"gray48", 122, 122, 122}, - {"gray49", 125, 125, 125}, - {"gray5", 13, 13, 13}, - {"gray50", 127, 127, 127}, - {"gray51", 130, 130, 130}, - {"gray52", 133, 133, 133}, - {"gray53", 135, 135, 135}, - {"gray54", 138, 138, 138}, - {"gray55", 140, 140, 140}, - {"gray56", 143, 143, 143}, - {"gray57", 145, 145, 145}, - {"gray58", 148, 148, 148}, - {"gray59", 150, 150, 150}, - {"gray6", 15, 15, 15}, - {"gray60", 153, 153, 153}, - {"gray61", 156, 156, 156}, - {"gray62", 158, 158, 158}, - {"gray63", 161, 161, 161}, - {"gray64", 163, 163, 163}, - {"gray65", 166, 166, 166}, - {"gray66", 168, 168, 168}, - {"gray67", 171, 171, 171}, - {"gray68", 173, 173, 173}, - {"gray69", 176, 176, 176}, - {"gray7", 18, 18, 18}, - {"gray70", 179, 179, 179}, - {"gray71", 181, 181, 181}, - {"gray72", 184, 184, 184}, - {"gray73", 186, 186, 186}, - {"gray74", 189, 189, 189}, - {"gray75", 191, 191, 191}, - {"gray76", 194, 194, 194}, - {"gray77", 196, 196, 196}, - {"gray78", 199, 199, 199}, - {"gray79", 201, 201, 201}, - {"gray8", 20, 20, 20}, - {"gray80", 204, 204, 204}, - {"gray81", 207, 207, 207}, - {"gray82", 209, 209, 209}, - {"gray83", 212, 212, 212}, - {"gray84", 214, 214, 214}, - {"gray85", 217, 217, 217}, - {"gray86", 219, 219, 219}, - {"gray87", 222, 222, 222}, - {"gray88", 224, 224, 224}, - {"gray89", 227, 227, 227}, - {"gray9", 23, 23, 23}, - {"gray90", 229, 229, 229}, - {"gray91", 232, 232, 232}, - {"gray92", 235, 235, 235}, - {"gray93", 237, 237, 237}, - {"gray94", 240, 240, 240}, - {"gray95", 242, 242, 242}, - {"gray96", 245, 245, 245}, - {"gray97", 247, 247, 247}, - {"gray98", 250, 250, 250}, - {"gray99", 252, 252, 252}, - {"green", 0, 255, 0}, - {"green yellow", 173, 255, 47}, - {"green1", 0, 255, 0}, - {"green2", 0, 238, 0}, - {"green3", 0, 205, 0}, - {"green4", 0, 139, 0}, - {"GreenYellow", 173, 255, 47}, - {"grey", 190, 190, 190}, - {"grey0", 0, 0, 0}, - {"grey1", 3, 3, 3}, - {"grey10", 26, 26, 26}, - {"grey100", 255, 255, 255}, - {"grey11", 28, 28, 28}, - {"grey12", 31, 31, 31}, - {"grey13", 33, 33, 33}, - {"grey14", 36, 36, 36}, - {"grey15", 38, 38, 38}, - {"grey16", 41, 41, 41}, - {"grey17", 43, 43, 43}, - {"grey18", 46, 46, 46}, - {"grey19", 48, 48, 48}, - {"grey2", 5, 5, 5}, - {"grey20", 51, 51, 51}, - {"grey21", 54, 54, 54}, - {"grey22", 56, 56, 56}, - {"grey23", 59, 59, 59}, - {"grey24", 61, 61, 61}, - {"grey25", 64, 64, 64}, - {"grey26", 66, 66, 66}, - {"grey27", 69, 69, 69}, - {"grey28", 71, 71, 71}, - {"grey29", 74, 74, 74}, - {"grey3", 8, 8, 8}, - {"grey30", 77, 77, 77}, - {"grey31", 79, 79, 79}, - {"grey32", 82, 82, 82}, - {"grey33", 84, 84, 84}, - {"grey34", 87, 87, 87}, - {"grey35", 89, 89, 89}, - {"grey36", 92, 92, 92}, - {"grey37", 94, 94, 94}, - {"grey38", 97, 97, 97}, - {"grey39", 99, 99, 99}, - {"grey4", 10, 10, 10}, - {"grey40", 102, 102, 102}, - {"grey41", 105, 105, 105}, - {"grey42", 107, 107, 107}, - {"grey43", 110, 110, 110}, - {"grey44", 112, 112, 112}, - {"grey45", 115, 115, 115}, - {"grey46", 117, 117, 117}, - {"grey47", 120, 120, 120}, - {"grey48", 122, 122, 122}, - {"grey49", 125, 125, 125}, - {"grey5", 13, 13, 13}, - {"grey50", 127, 127, 127}, - {"grey51", 130, 130, 130}, - {"grey52", 133, 133, 133}, - {"grey53", 135, 135, 135}, - {"grey54", 138, 138, 138}, - {"grey55", 140, 140, 140}, - {"grey56", 143, 143, 143}, - {"grey57", 145, 145, 145}, - {"grey58", 148, 148, 148}, - {"grey59", 150, 150, 150}, - {"grey6", 15, 15, 15}, - {"grey60", 153, 153, 153}, - {"grey61", 156, 156, 156}, - {"grey62", 158, 158, 158}, - {"grey63", 161, 161, 161}, - {"grey64", 163, 163, 163}, - {"grey65", 166, 166, 166}, - {"grey66", 168, 168, 168}, - {"grey67", 171, 171, 171}, - {"grey68", 173, 173, 173}, - {"grey69", 176, 176, 176}, - {"grey7", 18, 18, 18}, - {"grey70", 179, 179, 179}, - {"grey71", 181, 181, 181}, - {"grey72", 184, 184, 184}, - {"grey73", 186, 186, 186}, - {"grey74", 189, 189, 189}, - {"grey75", 191, 191, 191}, - {"grey76", 194, 194, 194}, - {"grey77", 196, 196, 196}, - {"grey78", 199, 199, 199}, - {"grey79", 201, 201, 201}, - {"grey8", 20, 20, 20}, - {"grey80", 204, 204, 204}, - {"grey81", 207, 207, 207}, - {"grey82", 209, 209, 209}, - {"grey83", 212, 212, 212}, - {"grey84", 214, 214, 214}, - {"grey85", 217, 217, 217}, - {"grey86", 219, 219, 219}, - {"grey87", 222, 222, 222}, - {"grey88", 224, 224, 224}, - {"grey89", 227, 227, 227}, - {"grey9", 23, 23, 23}, - {"grey90", 229, 229, 229}, - {"grey91", 232, 232, 232}, - {"grey92", 235, 235, 235}, - {"grey93", 237, 237, 237}, - {"grey94", 240, 240, 240}, - {"grey95", 242, 242, 242}, - {"grey96", 245, 245, 245}, - {"grey97", 247, 247, 247}, - {"grey98", 250, 250, 250}, - {"grey99", 252, 252, 252}, - {"honeydew", 240, 255, 240}, - {"honeydew1", 240, 255, 240}, - {"honeydew2", 224, 238, 224}, - {"honeydew3", 193, 205, 193}, - {"honeydew4", 131, 139, 131}, - {"hot pink", 255, 105, 180}, - {"HotPink", 255, 105, 180}, - {"HotPink1", 255, 110, 180}, - {"HotPink2", 238, 106, 167}, - {"HotPink3", 205, 96, 144}, - {"HotPink4", 139, 58, 98}, - {"indian red", 205, 92, 92}, - {"IndianRed", 205, 92, 92}, - {"IndianRed1", 255, 106, 106}, - {"IndianRed2", 238, 99, 99}, - {"IndianRed3", 205, 85, 85}, - {"IndianRed4", 139, 58, 58}, - {"ivory", 255, 255, 240}, - {"ivory1", 255, 255, 240}, - {"ivory2", 238, 238, 224}, - {"ivory3", 205, 205, 193}, - {"ivory4", 139, 139, 131}, - {"khaki", 240, 230, 140}, - {"khaki1", 255, 246, 143}, - {"khaki2", 238, 230, 133}, - {"khaki3", 205, 198, 115}, - {"khaki4", 139, 134, 78}, - {"lavender", 230, 230, 250}, - {"lavender blush", 255, 240, 245}, - {"LavenderBlush", 255, 240, 245}, - {"LavenderBlush1", 255, 240, 245}, - {"LavenderBlush2", 238, 224, 229}, - {"LavenderBlush3", 205, 193, 197}, - {"LavenderBlush4", 139, 131, 134}, - {"lawn green", 124, 252, 0}, - {"LawnGreen", 124, 252, 0}, - {"lemon chiffon", 255, 250, 205}, - {"LemonChiffon", 255, 250, 205}, - {"LemonChiffon1", 255, 250, 205}, - {"LemonChiffon2", 238, 233, 191}, - {"LemonChiffon3", 205, 201, 165}, - {"LemonChiffon4", 139, 137, 112}, - {"light blue", 173, 216, 230}, - {"light coral", 240, 128, 128}, - {"light cyan", 224, 255, 255}, - {"light goldenrod", 238, 221, 130}, - {"light goldenrod yellow", 250, 250, 210}, - {"light gray", 211, 211, 211}, - {"light grey", 211, 211, 211}, - {"light pink", 255, 182, 193}, - {"light salmon", 255, 160, 122}, - {"light sea green", 32, 178, 170}, - {"light sky blue", 135, 206, 250}, - {"light slate blue", 132, 112, 255}, - {"light slate gray", 119, 136, 153}, - {"light slate grey", 119, 136, 153}, - {"light steel blue", 176, 196, 222}, - {"light yellow", 255, 255, 224}, - {"LightBlue", 173, 216, 230}, - {"LightBlue1", 191, 239, 255}, - {"LightBlue2", 178, 223, 238}, - {"LightBlue3", 154, 192, 205}, - {"LightBlue4", 104, 131, 139}, - {"LightCoral", 240, 128, 128}, - {"LightCyan", 224, 255, 255}, - {"LightCyan1", 224, 255, 255}, - {"LightCyan2", 209, 238, 238}, - {"LightCyan3", 180, 205, 205}, - {"LightCyan4", 122, 139, 139}, - {"LightGoldenrod", 238, 221, 130}, - {"LightGoldenrod1", 255, 236, 139}, - {"LightGoldenrod2", 238, 220, 130}, - {"LightGoldenrod3", 205, 190, 112}, - {"LightGoldenrod4", 139, 129, 76}, - {"LightGoldenrodYellow", 250, 250, 210}, - {"LightGray", 211, 211, 211}, - {"LightGrey", 211, 211, 211}, - {"LightPink", 255, 182, 193}, - {"LightPink1", 255, 174, 185}, - {"LightPink2", 238, 162, 173}, - {"LightPink3", 205, 140, 149}, - {"LightPink4", 139, 95, 101}, - {"LightSalmon", 255, 160, 122}, - {"LightSalmon1", 255, 160, 122}, - {"LightSalmon2", 238, 149, 114}, - {"LightSalmon3", 205, 129, 98}, - {"LightSalmon4", 139, 87, 66}, - {"LightSeaGreen", 32, 178, 170}, - {"LightSkyBlue", 135, 206, 250}, - {"LightSkyBlue1", 176, 226, 255}, - {"LightSkyBlue2", 164, 211, 238}, - {"LightSkyBlue3", 141, 182, 205}, - {"LightSkyBlue4", 96, 123, 139}, - {"LightSlateBlue", 132, 112, 255}, - {"LightSlateGray", 119, 136, 153}, - {"LightSlateGrey", 119, 136, 153}, - {"LightSteelBlue", 176, 196, 222}, - {"LightSteelBlue1", 202, 225, 255}, - {"LightSteelBlue2", 188, 210, 238}, - {"LightSteelBlue3", 162, 181, 205}, - {"LightSteelBlue4", 110, 123, 139}, - {"LightYellow", 255, 255, 224}, - {"LightYellow1", 255, 255, 224}, - {"LightYellow2", 238, 238, 209}, - {"LightYellow3", 205, 205, 180}, - {"LightYellow4", 139, 139, 122}, - {"lime green", 50, 205, 50}, - {"LimeGreen", 50, 205, 50}, - {"linen", 250, 240, 230}, - {"magenta", 255, 0, 255}, - {"magenta1", 255, 0, 255}, - {"magenta2", 238, 0, 238}, - {"magenta3", 205, 0, 205}, - {"magenta4", 139, 0, 139}, - {"maroon", 176, 48, 96}, - {"maroon1", 255, 52, 179}, - {"maroon2", 238, 48, 167}, - {"maroon3", 205, 41, 144}, - {"maroon4", 139, 28, 98}, - {"medium aquamarine", 102, 205, 170}, - {"medium blue", 0, 0, 205}, - {"medium orchid", 186, 85, 211}, - {"medium purple", 147, 112, 219}, - {"medium sea green", 60, 179, 113}, - {"medium slate blue", 123, 104, 238}, - {"medium spring green", 0, 250, 154}, - {"medium turquoise", 72, 209, 204}, - {"medium violet red", 199, 21, 133}, - {"MediumAquamarine", 102, 205, 170}, - {"MediumBlue", 0, 0, 205}, - {"MediumOrchid", 186, 85, 211}, - {"MediumOrchid1", 224, 102, 255}, - {"MediumOrchid2", 209, 95, 238}, - {"MediumOrchid3", 180, 82, 205}, - {"MediumOrchid4", 122, 55, 139}, - {"MediumPurple", 147, 112, 219}, - {"MediumPurple1", 171, 130, 255}, - {"MediumPurple2", 159, 121, 238}, - {"MediumPurple3", 137, 104, 205}, - {"MediumPurple4", 93, 71, 139}, - {"MediumSeaGreen", 60, 179, 113}, - {"MediumSlateBlue", 123, 104, 238}, - {"MediumSpringGreen", 0, 250, 154}, - {"MediumTurquoise", 72, 209, 204}, - {"MediumVioletRed", 199, 21, 133}, - {"midnight blue", 25, 25, 112}, - {"MidnightBlue", 25, 25, 112}, - {"mint cream", 245, 255, 250}, - {"MintCream", 245, 255, 250}, - {"misty rose", 255, 228, 225}, - {"MistyRose", 255, 228, 225}, - {"MistyRose1", 255, 228, 225}, - {"MistyRose2", 238, 213, 210}, - {"MistyRose3", 205, 183, 181}, - {"MistyRose4", 139, 125, 123}, - {"moccasin", 255, 228, 181}, - {"navajo white", 255, 222, 173}, - {"NavajoWhite", 255, 222, 173}, - {"NavajoWhite1", 255, 222, 173}, - {"NavajoWhite2", 238, 207, 161}, - {"NavajoWhite3", 205, 179, 139}, - {"NavajoWhite4", 139, 121, 94}, - {"navy", 0, 0, 128}, - {"navy blue", 0, 0, 128}, - {"NavyBlue", 0, 0, 128}, - {"old lace", 253, 245, 230}, - {"OldLace", 253, 245, 230}, - {"olive drab", 107, 142, 35}, - {"OliveDrab", 107, 142, 35}, - {"OliveDrab1", 192, 255, 62}, - {"OliveDrab2", 179, 238, 58}, - {"OliveDrab3", 154, 205, 50}, - {"OliveDrab4", 105, 139, 34}, - {"orange", 255, 165, 0}, - {"orange red", 255, 69, 0}, - {"orange1", 255, 165, 0}, - {"orange2", 238, 154, 0}, - {"orange3", 205, 133, 0}, - {"orange4", 139, 90, 0}, - {"OrangeRed", 255, 69, 0}, - {"OrangeRed1", 255, 69, 0}, - {"OrangeRed2", 238, 64, 0}, - {"OrangeRed3", 205, 55, 0}, - {"OrangeRed4", 139, 37, 0}, - {"orchid", 218, 112, 214}, - {"orchid1", 255, 131, 250}, - {"orchid2", 238, 122, 233}, - {"orchid3", 205, 105, 201}, - {"orchid4", 139, 71, 137}, - {"pale goldenrod", 238, 232, 170}, - {"pale green", 152, 251, 152}, - {"pale turquoise", 175, 238, 238}, - {"pale violet red", 219, 112, 147}, - {"PaleGoldenrod", 238, 232, 170}, - {"PaleGreen", 152, 251, 152}, - {"PaleGreen1", 154, 255, 154}, - {"PaleGreen2", 144, 238, 144}, - {"PaleGreen3", 124, 205, 124}, - {"PaleGreen4", 84, 139, 84}, - {"PaleTurquoise", 175, 238, 238}, - {"PaleTurquoise1", 187, 255, 255}, - {"PaleTurquoise2", 174, 238, 238}, - {"PaleTurquoise3", 150, 205, 205}, - {"PaleTurquoise4", 102, 139, 139}, - {"PaleVioletRed", 219, 112, 147}, - {"PaleVioletRed1", 255, 130, 171}, - {"PaleVioletRed2", 238, 121, 159}, - {"PaleVioletRed3", 205, 104, 137}, - {"PaleVioletRed4", 139, 71, 93}, - {"papaya whip", 255, 239, 213}, - {"PapayaWhip", 255, 239, 213}, - {"peach puff", 255, 218, 185}, - {"PeachPuff", 255, 218, 185}, - {"PeachPuff1", 255, 218, 185}, - {"PeachPuff2", 238, 203, 173}, - {"PeachPuff3", 205, 175, 149}, - {"PeachPuff4", 139, 119, 101}, - {"peru", 205, 133, 63}, - {"pink", 255, 192, 203}, - {"pink1", 255, 181, 197}, - {"pink2", 238, 169, 184}, - {"pink3", 205, 145, 158}, - {"pink4", 139, 99, 108}, - {"plum", 221, 160, 221}, - {"plum1", 255, 187, 255}, - {"plum2", 238, 174, 238}, - {"plum3", 205, 150, 205}, - {"plum4", 139, 102, 139}, - {"powder blue", 176, 224, 230}, - {"PowderBlue", 176, 224, 230}, - {"purple", 160, 32, 240}, - {"purple1", 155, 48, 255}, - {"purple2", 145, 44, 238}, - {"purple3", 125, 38, 205}, - {"purple4", 85, 26, 139}, - {"red", 255, 0, 0}, - {"red1", 255, 0, 0}, - {"red2", 238, 0, 0}, - {"red3", 205, 0, 0}, - {"red4", 139, 0, 0}, - {"rosy brown", 188, 143, 143}, - {"RosyBrown", 188, 143, 143}, - {"RosyBrown1", 255, 193, 193}, - {"RosyBrown2", 238, 180, 180}, - {"RosyBrown3", 205, 155, 155}, - {"RosyBrown4", 139, 105, 105}, - {"royal blue", 65, 105, 225}, - {"RoyalBlue", 65, 105, 225}, - {"RoyalBlue1", 72, 118, 255}, - {"RoyalBlue2", 67, 110, 238}, - {"RoyalBlue3", 58, 95, 205}, - {"RoyalBlue4", 39, 64, 139}, - {"saddle brown", 139, 69, 19}, - {"SaddleBrown", 139, 69, 19}, - {"salmon", 250, 128, 114}, - {"salmon1", 255, 140, 105}, - {"salmon2", 238, 130, 98}, - {"salmon3", 205, 112, 84}, - {"salmon4", 139, 76, 57}, - {"sandy brown", 244, 164, 96}, - {"SandyBrown", 244, 164, 96}, - {"sea green", 46, 139, 87}, - {"SeaGreen", 46, 139, 87}, - {"SeaGreen1", 84, 255, 159}, - {"SeaGreen2", 78, 238, 148}, - {"SeaGreen3", 67, 205, 128}, - {"SeaGreen4", 46, 139, 87}, - {"seashell", 255, 245, 238}, - {"seashell1", 255, 245, 238}, - {"seashell2", 238, 229, 222}, - {"seashell3", 205, 197, 191}, - {"seashell4", 139, 134, 130}, - {"sienna", 160, 82, 45}, - {"sienna1", 255, 130, 71}, - {"sienna2", 238, 121, 66}, - {"sienna3", 205, 104, 57}, - {"sienna4", 139, 71, 38}, - {"sky blue", 135, 206, 235}, - {"SkyBlue", 135, 206, 235}, - {"SkyBlue1", 135, 206, 255}, - {"SkyBlue2", 126, 192, 238}, - {"SkyBlue3", 108, 166, 205}, - {"SkyBlue4", 74, 112, 139}, - {"slate blue", 106, 90, 205}, - {"slate gray", 112, 128, 144}, - {"slate grey", 112, 128, 144}, - {"SlateBlue", 106, 90, 205}, - {"SlateBlue1", 131, 111, 255}, - {"SlateBlue2", 122, 103, 238}, - {"SlateBlue3", 105, 89, 205}, - {"SlateBlue4", 71, 60, 139}, - {"SlateGray", 112, 128, 144}, - {"SlateGray1", 198, 226, 255}, - {"SlateGray2", 185, 211, 238}, - {"SlateGray3", 159, 182, 205}, - {"SlateGray4", 108, 123, 139}, - {"SlateGrey", 112, 128, 144}, - {"snow", 255, 250, 250}, - {"snow1", 255, 250, 250}, - {"snow2", 238, 233, 233}, - {"snow3", 205, 201, 201}, - {"snow4", 139, 137, 137}, - {"spring green", 0, 255, 127}, - {"SpringGreen", 0, 255, 127}, - {"SpringGreen1", 0, 255, 127}, - {"SpringGreen2", 0, 238, 118}, - {"SpringGreen3", 0, 205, 102}, - {"SpringGreen4", 0, 139, 69}, - {"steel blue", 70, 130, 180}, - {"SteelBlue", 70, 130, 180}, - {"SteelBlue1", 99, 184, 255}, - {"SteelBlue2", 92, 172, 238}, - {"SteelBlue3", 79, 148, 205}, - {"SteelBlue4", 54, 100, 139}, - {"tan", 210, 180, 140}, - {"tan1", 255, 165, 79}, - {"tan2", 238, 154, 73}, - {"tan3", 205, 133, 63}, - {"tan4", 139, 90, 43}, - {"thistle", 216, 191, 216}, - {"thistle1", 255, 225, 255}, - {"thistle2", 238, 210, 238}, - {"thistle3", 205, 181, 205}, - {"thistle4", 139, 123, 139}, - {"tomato", 255, 99, 71}, - {"tomato1", 255, 99, 71}, - {"tomato2", 238, 92, 66}, - {"tomato3", 205, 79, 57}, - {"tomato4", 139, 54, 38}, - {"turquoise", 64, 224, 208}, - {"turquoise1", 0, 245, 255}, - {"turquoise2", 0, 229, 238}, - {"turquoise3", 0, 197, 205}, - {"turquoise4", 0, 134, 139}, - {"violet", 238, 130, 238}, - {"violet red", 208, 32, 144}, - {"VioletRed", 208, 32, 144}, - {"VioletRed1", 255, 62, 150}, - {"VioletRed2", 238, 58, 140}, - {"VioletRed3", 205, 50, 120}, - {"VioletRed4", 139, 34, 82}, - {"wheat", 245, 222, 179}, - {"wheat1", 255, 231, 186}, - {"wheat2", 238, 216, 174}, - {"wheat3", 205, 186, 150}, - {"wheat4", 139, 126, 102}, - {"white", 255, 255, 255}, - {"white smoke", 245, 245, 245}, - {"WhiteSmoke", 245, 245, 245}, - {"yellow", 255, 255, 0}, - {"yellow green", 154, 205, 50}, - {"yellow1", 255, 255, 0}, - {"yellow2", 238, 238, 0}, - {"yellow3", 205, 205, 0}, - {"yellow4", 139, 139, 0}, - {"YellowGreen", 154, 205, 50}, -}; - -static int numxcolors = 0; /* *---------------------------------------------------------------------- @@ -3672,7 +2918,7 @@ static int numxcolors = 0; static int GdiGetColor( const char *name, - unsigned long *color) + COLORREF *color) { if (numsyscolors == 0) { numsyscolors = sizeof(sysColors) / sizeof(SystemColorEntry); @@ -3699,89 +2945,12 @@ static int GdiGetColor( *color = GetSysColor(sysColors[i].index); return 1; } else { - return GdiParseColor(name, color); - } -} - -/* - *---------------------------------------------------------------------- - * - * GdiParseColor -- - * - * Convert color specification string (which could be an RGB string) - * to a color RGB triple. - * - * Results: - * Color specification converted. - * - *---------------------------------------------------------------------- - */ - -static int GdiParseColor( - const char *name, - unsigned long *color) -{ - /* TODO: replace with XParseColor, used by rest of Tk */ - if (name[0] == '#') { - char fmt[40]; - int i; - unsigned red, green, blue; - - if ((i = strlen(name+1))%3 != 0 || i > 12 || i < 3) { - return 0; - } - i /= 3; - sprintf(fmt, "%%%dx%%%dx%%%dx", i, i, i); - if (sscanf(name+1, fmt, &red, &green, &blue) != 3) { - return 0; - } - /* Now this is Windows-specific -- each component is at most 8 bits. */ - switch (i) { - case 1: - red <<= 4; - green <<= 4; - blue <<= 4; - break; - case 2: - break; - case 3: - red >>= 4; - green >>= 4; - blue >>= 4; - break; - case 4: - red >>= 8; - green >>= 8; - blue >>= 8; - break; - } - *color = RGB(red, green, blue); - return 1; - } else { - int i, u, r, l; - - if (numxcolors == 0) { - numxcolors = sizeof(xColors) / sizeof(XColorEntry); - } - l = 0; - u = numxcolors; - - while (l <= u) { - i = (l + u) / 2; - if ((r = _strcmpi(name, xColors[i].name)) == 0) { - break; - } - if (r < 0) { - u = i - 1; - } else { - l = i + 1; - } - } - if (l > u) { - return 0; - } - *color = RGB(xColors[i].red, xColors[i].green, xColors[i].blue); - return 1; + int result; + XColor xcolor; + result = XParseColor(NULL, 0, name, &xcolor); + *color = ((xcolor.red & 0xFF00)>>8) | (xcolor.green & 0xFF00) + | ((xcolor.blue & 0xFF00)<<8); + return result; } } @@ -4401,277 +3570,6 @@ int Winprint_Init( return TCL_OK; } -/* - * The following functions are adapted from tkTrig.c. - */ - -/* - *-------------------------------------------------------------- - * - * TkGdiBezierScreenPoints -- - * - * Given four control points, create a larger set of XPoints for a Bezier - * spline based on the points. - * - * Results: - * The array at *xPointPtr gets filled in with numSteps XPoints - * corresponding to the Bezier spline defined by the four control points. - * - * Note: no output point is generated for the first input point, but an - * output point *is* generated for the last input point. - * - * Side effects: - * None. - * - *-------------------------------------------------------------- - */ - -static void -TkGdiBezierScreenPoints( - Tk_Canvas canvas, /* Canvas in which curve is to be drawn.. */ - double control[], /* Array of coordinates for four control - * points: x0, y0, x1, y1, ... x3 y3.. */ - int numSteps, /* Number of curve points to generate. */ - register XPoint *xPointPtr) /* Where to put new points.. */ -{ - int i; - double u, u2, u3, t, t2, t3; - - for (i = 1; i <= numSteps; i++, xPointPtr++) { - t = ((double) i)/((double) numSteps); - t2 = t*t; - t3 = t2*t; - u = 1.0 - t; - u2 = u*u; - u3 = u2*u; - Tk_CanvasDrawableCoords(canvas, - (control[0]*u3 + 3.0 * (control[2]*t*u2 + control[4]*t2*u) - + control[6]*t3), - (control[1]*u3 + 3.0 * (control[3]*t*u2 + control[5]*t2*u) - + control[7]*t3), - &xPointPtr->x, &xPointPtr->y); - } -} - -/* - *-------------------------------------------------------------- - * - * TkGdiBezierPoints -- - * - * Given four control points, create a larger set of points for a Bezier - * spline based on the points. - * - * Results: - * The array at *coordPtr gets filled in with 2*numSteps coordinates, - * which correspond to the Bezier spline defined by the four control - * points. - * - * Note: no output point is generated for the first input point, but an - * output point *is* generated for the last input point. - * - * Side effects: - * None. - * - *-------------------------------------------------------------- - */ - -static void -TkGdiBezierPoints( - double control[], /* Array of coordinates for four control - * points: x0, y0, x1, y1, ... x3 y3.. */ - int numSteps, /* Number of curve points to generate. */ - register double *coordPtr) /* Where to put new points.. */ -{ - int i; - double u, u2, u3, t, t2, t3; - - for (i = 1; i <= numSteps; i++, coordPtr += 2) { - t = ((double) i)/((double) numSteps); - t2 = t*t; - t3 = t2*t; - u = 1.0 - t; - u2 = u*u; - u3 = u2*u; - coordPtr[0] = control[0]*u3 - + 3.0 * (control[2]*t*u2 + control[4]*t2*u) + control[6]*t3; - coordPtr[1] = control[1]*u3 - + 3.0 * (control[3]*t*u2 + control[5]*t2*u) + control[7]*t3; - } -} - -/* - *-------------------------------------------------------------- - * - * TkGdiMakeBezierCurve -- - * - * Given a set of points, create a new set of points that fit parabolic - * splines to the line segments connecting the original points. Produces - * output points in either of two forms. - * - * Note: in spite of this procedure's name, it does *not* generate Bezier - * curves. Since only three control points are used for each curve - * segment, not four, the curves are actually just parabolic. - * - * Results: - * - * Either or both of the xPoints or dblPoints arrays are filled in. The - * return value is the number of points placed in the arrays. - * - * Note: if the first and last points are the same, then a closed curve - * is generated. - * - * Side effects: - * None. - * - *-------------------------------------------------------------- - */ -static int -TkGdiMakeBezierCurve( - Tk_Canvas canvas, /* Canvas in which curve is to be drawn.*/ - double *pointPtr, /* Array of input coordinates: - * x0, y0, x1, y1, etc... */ - int numPoints, /* Number of points at pointPtr.. */ - int numSteps, /* Number of steps to use for each spline - * segments. */ - XPoint xPoints[], /* Array of XPoints to fill in. */ - double dblPoints[]) /* Array of points to fill in as doubles, in - * the form x0, y0, x1, y1. */ - -{ - int closed, outputPoints, i; - int numCoords = numPoints*2; - double control[8]; - - /* - * If the curve is a closed one then generate a special spline that spans - * the last points and the first ones. Otherwise just put the first point - * into the output. - */ - - if (!pointPtr) { - /* - * Of pointPtr == NULL, this function returns an upper limit of the - * array size to store the coordinates. This can be used to allocate - * storage, before the actual coordinates are calculated. - */ - return 1 + numPoints * numSteps; - } - - outputPoints = 0; - if ((pointPtr[0] == pointPtr[numCoords-2]) - && (pointPtr[1] == pointPtr[numCoords-1])) { - closed = 1; - control[0] = 0.5*pointPtr[numCoords-4] + 0.5*pointPtr[0]; - control[1] = 0.5*pointPtr[numCoords-3] + 0.5*pointPtr[1]; - control[2] = 0.167*pointPtr[numCoords-4] + 0.833*pointPtr[0]; - control[3] = 0.167*pointPtr[numCoords-3] + 0.833*pointPtr[1]; - control[4] = 0.833*pointPtr[0] + 0.167*pointPtr[2]; - control[5] = 0.833*pointPtr[1] + 0.167*pointPtr[3]; - control[6] = 0.5*pointPtr[0] + 0.5*pointPtr[2]; - control[7] = 0.5*pointPtr[1] + 0.5*pointPtr[3]; - if (xPoints != NULL) { - Tk_CanvasDrawableCoords(canvas, control[0], control[1], - &xPoints->x, &xPoints->y); - TkGdiBezierScreenPoints(canvas, control, numSteps, xPoints+1); - xPoints += numSteps+1; - } - if (dblPoints != NULL) { - dblPoints[0] = control[0]; - dblPoints[1] = control[1]; - TkGdiBezierPoints(control, numSteps, dblPoints+2); - dblPoints += 2*(numSteps+1); - } - outputPoints += numSteps+1; - } else { - closed = 0; - if (xPoints != NULL) { - Tk_CanvasDrawableCoords(canvas, pointPtr[0], pointPtr[1], - &xPoints->x, &xPoints->y); - xPoints += 1; - } - if (dblPoints != NULL) { - dblPoints[0] = pointPtr[0]; - dblPoints[1] = pointPtr[1]; - dblPoints += 2; - } - outputPoints += 1; - } - - for (i = 2; i < numPoints; i++, pointPtr += 2) { - /* - * Set up the first two control points. This is done differently for - * the first spline of an open curve than for other cases. - */ - - if ((i == 2) && !closed) { - control[0] = pointPtr[0]; - control[1] = pointPtr[1]; - control[2] = 0.333*pointPtr[0] + 0.667*pointPtr[2]; - control[3] = 0.333*pointPtr[1] + 0.667*pointPtr[3]; - } else { - control[0] = 0.5*pointPtr[0] + 0.5*pointPtr[2]; - control[1] = 0.5*pointPtr[1] + 0.5*pointPtr[3]; - control[2] = 0.167*pointPtr[0] + 0.833*pointPtr[2]; - control[3] = 0.167*pointPtr[1] + 0.833*pointPtr[3]; - } - - /* - * Set up the last two control points. This is done differently for - * the last spline of an open curve than for other cases. - */ - - if ((i == (numPoints-1)) && !closed) { - control[4] = .667*pointPtr[2] + .333*pointPtr[4]; - control[5] = .667*pointPtr[3] + .333*pointPtr[5]; - control[6] = pointPtr[4]; - control[7] = pointPtr[5]; - } else { - control[4] = .833*pointPtr[2] + .167*pointPtr[4]; - control[5] = .833*pointPtr[3] + .167*pointPtr[5]; - control[6] = 0.5*pointPtr[2] + 0.5*pointPtr[4]; - control[7] = 0.5*pointPtr[3] + 0.5*pointPtr[5]; - } - - /* - * If the first two points coincide, or if the last two points - * coincide, then generate a single straight-line segment by - * outputting the last control point. - */ - - if (((pointPtr[0] == pointPtr[2]) && (pointPtr[1] == pointPtr[3])) - || ((pointPtr[2] == pointPtr[4]) - && (pointPtr[3] == pointPtr[5]))) { - if (xPoints != NULL) { - Tk_CanvasDrawableCoords(canvas, control[6], control[7], - &xPoints[0].x, &xPoints[0].y); - xPoints++; - } - if (dblPoints != NULL) { - dblPoints[0] = control[6]; - dblPoints[1] = control[7]; - dblPoints += 2; - } - outputPoints += 1; - continue; - } - - /* - * Generate a Bezier spline using the control points. - */ - - if (xPoints != NULL) { - TkGdiBezierScreenPoints(canvas, control, numSteps, xPoints); - xPoints += numSteps; - } - if (dblPoints != NULL) { - TkGdiBezierPoints(control, numSteps, dblPoints); - dblPoints += 2*numSteps; - } - outputPoints += numSteps; - } - return outputPoints; -} - /* Print API functions. */ /*---------------------------------------------------------------------- diff --git a/win/tkWinWm.c b/win/tkWinWm.c index 68b44a8..fc62bf6 100644 --- a/win/tkWinWm.c +++ b/win/tkWinWm.c @@ -349,14 +349,14 @@ static int initialized; /* Flag indicating whether module has been TCL_DECLARE_MUTEX(winWmMutex) -/* - * The following records the "TaskbarButtonCreated" message ID +/* + * The following records the "TaskbarButtonCreated" message ID * for overlay icons. */ static UINT TaskbarButtonCreatedMessageId = WM_NULL; -/* Reference to taskbarlist API for overlay icons. */ +/* Reference to taskbarlist API for overlay icons. */ ITaskbarList3 *ptbl; /* @@ -447,7 +447,7 @@ static int WmGroupCmd(Tk_Window tkwin, Tcl_Obj *const objv[]); static int WmIconbadgeCmd(Tk_Window tkwin, TkWindow *winPtr, Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); + Tcl_Obj *const objv[]); static int WmIconbitmapCmd(Tk_Window tkwin, TkWindow *winPtr, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); @@ -1733,7 +1733,7 @@ TkWinWmCleanup( return; } tsdPtr->initialized = 0; - + /* * COM library cleanup. */ @@ -2186,11 +2186,11 @@ UpdateWrapper( SetFocus(focusHWND); } - /* - * Initialize hooks for overlay icon. + /* + * Initialize hooks for overlay icon. * Start with TaskbarButtonCreated message. */ - + TaskbarButtonCreatedMessageId = RegisterWindowMessage(TEXT("TaskbarButtonCreated")); /* @@ -2199,7 +2199,7 @@ UpdateWrapper( */ ChangeWindowMessageFilter(TaskbarButtonCreatedMessageId, MSGFLT_ADD); - + /* * Load COM library for icon overlay. */ @@ -2965,9 +2965,6 @@ WmAttributesCmd( } for (i = 3; i < objc; i += 2) { string = Tcl_GetStringFromObj(objv[i], &length); - if ((length < 2) || (string[0] != '-')) { - goto configArgs; - } if (strncmp(string, "-disabled", length) == 0) { stylePtr = &style; styleBit = WS_DISABLED; @@ -3000,6 +2997,12 @@ WmAttributesCmd( Tcl_SetErrorCode(interp, "TK", "WM", "ATTR", "TOPMOST", NULL); return TCL_ERROR; } + } else if (i == 3) { + Tcl_SetObjResult(interp, Tcl_ObjPrintf( + "bad attribute \"%s\": must be -alpha, -disabled, -fullscreen, -toolwindow, -topmost, or -transparentcolor", + string)); + Tcl_SetErrorCode(interp, "TK", "WM", "ATTR", "UNRECOGNIZED", NULL); + return TCL_ERROR; } else { goto configArgs; } @@ -3941,7 +3944,7 @@ WmIconbadgeCmd( "can't use \"%s\" as icon badge", badgestring)); return TCL_ERROR; } - + /* * We have found the image. Convert to icon. */ |