in reply to Viewing Tk Colours (Colors) by name


very nice albeit I cannot install Tk::TabFrame via ppm (ActivePerl): I commented out use Tk::TabFrame; and it runs fine..

I seems possible to add localized list of color name? it will be very nice.

Lor*
there are no rules, there are no thumbs..

Replies are listed 'Best First'.
Re^2: Viewing Tk Colours (Colors) by name
by merrymonk (Hermit) on Jun 13, 2011 at 12:47 UTC
    Good to hear it worked for you even though you had to remove the TabFrame.
    I am not absolutely sure what you meant by "I seems possible to add localized list of color name?"
    However, if you replaced the values in the @colours array it should give you a screen of these values.
    Just send more details if this is not what you were aiming at.
      I am not absolutely sure what you meant by "I seems possible to add localized list of color name?"

      The X11 RGB defintions are found in the xorg.conf file, whose location may be different for different linux distributions, and I don't know where MSWindows puts it.

      On my Slackware system, it is in /etc/X11/xorg.conf, and there is an entry in xorg.conf for the RGB definitions

      Section "Files" # The location of the RGB database. Note, this is the name of the # file minus the extension (like ".txt" or ".db"). There is normally # no need to change the default. RgbPath "/usr/share/X11/rgb"

      And my /usr/share/X11/rgb.txt file looks like this:

      255 250 250 snow 248 248 255 ghost white 248 248 255 GhostWhite 245 245 245 white smoke 245 245 245 WhiteSmoke 220 220 220 gainsboro 255 250 240 floral white 255 250 240 FloralWhite 253 245 230 old lace 253 245 230 OldLace 250 240 230 linen 250 235 215 antique white 250 235 215 AntiqueWhite 255 239 213 papaya whip 255 239 213 PapayaWhip 255 235 205 blanched almond 255 235 205 BlanchedAlmond 255 228 196 bisque 255 218 185 peach puff 255 218 185 PeachPuff 255 222 173 navajo white 255 222 173 NavajoWhite 255 228 181 moccasin 255 248 220 cornsilk 255 255 240 ivory 255 250 205 lemon chiffon 255 250 205 LemonChiffon 255 245 238 seashell 240 255 240 honeydew 245 255 250 mint cream 245 255 250 MintCream 240 255 255 azure 240 248 255 alice blue 240 248 255 AliceBlue 230 230 250 lavender 255 240 245 lavender blush 255 240 245 LavenderBlush 255 228 225 misty rose 255 228 225 MistyRose 255 255 255 white 0 0 0 black 47 79 79 dark slate gray 47 79 79 DarkSlateGray 47 79 79 dark slate grey 47 79 79 DarkSlateGrey 105 105 105 dim gray 105 105 105 DimGray 105 105 105 dim grey 105 105 105 DimGrey 112 128 144 slate gray 112 128 144 SlateGray 112 128 144 slate grey 112 128 144 SlateGrey 119 136 153 light slate gray 119 136 153 LightSlateGray ... etc etc etc .... etc etc etc
      As you can probably see, if you change those defintions, you can change the way your named colors appear. :-)

      I'm not really a human, but I play one on earth.
      Old Perl Programmer Haiku ................... flash japh

        Somewhere the xorg.conf file got lost. I'm running Debian 6 which does have an rgb.txt file in /etc/X11.

        That's not where Tk finds color names. There is a color named DebianRed in that file (215,7,81). Tk quits with:

        unknown color name "DebianRed" at /usr/lib/perl5/Tk.pm line 250

        The following code:

        #!/usr/bin/perl use strict; use Tk; my $mw = MainWindow->new; my @colors = `cat /etc/X11/rgb.txt`; my %colorValues; my ($colorName, $red, $green, $blue, ); shift @colors; #skip first line my $colorsRead = 0; foreach my $colorLine (@colors) { chomp $colorLine; $colorsRead++; if ($colorLine =~ m/(\d+)\s+(\d+)\s+(\d+)\s+(.+)$/) { $red = $1; $green = $2; $blue = $3; $colorName = $4; } else { die "Couldn't parse '$colorLine'\n"; } eval { ($red,$green,$blue) = $mw->rgb($colorName); }; if ($@) { print "Color named $colorName not found by Tk\n"; } } print "$colorsRead colors read\n";

        Outputs:

        Color named DebianRed not found by Tk 753 colors read