in reply to Re: Coloring text using TK?
in thread Coloring text using TK?

Yes that appears to be what I am looking for. Here is some code I will be applying this to:
sub open { my $browse = $t->getOpenFile(-title => "Browse For A File!"); if ($browse ne "") { $t->delete("1.0", "end"); if (!open(TARGET, "$browse")) { $info = "Error!"; $t->insert("end", "ERROR: Could not open $browse\n"); return; } #$line_count = 1; $filename = $browse; $info = "Loading file '$filename'..."; while (<TARGET>) { #$t->insert("end", "$line_count "); $t->insert("end", $_); $line_count++; } close(TARGET); $info = "File '$filename' loaded"; }else{ if (!$filename) { $info = "Error!"; $t->delete("1.0", "end"); $t->insert("end", "ERROR: Could not open $browse\n"); return; }else{ return; } } }
I want to incorporate the coloring of the text while the file is being parsed during opening. As of now I am using $_ to insert each line while traversing the while loop. If I wanted to color specific words ine ach line would I have to parse each line further into each word? From what I read on your link from CPAN was that you have to designate certain words to certain colors.
use Term::ANSIColor; $red = color('red'); # Retrieve color codes $bold = color('bold'); $wid->insert('end', "$red red text $bold with bold\n");
Here I would designate "red text" as being red by assigning $red to it in front of the target text. In my implementation now I would have to use something like:
$wid->insert("end", $red $_);
which would color the entire line. ANy suggestion on how to parse the file down to word level and still insert correctly?

Replies are listed 'Best First'.
Re: Coloring text using TK?
by b10m (Vicar) on Dec 01, 2003 at 18:18 UTC
    Not sure what your $wid exactly is, but this might help you (works for me with Tk::ROText as $wid):
    $wid->tag('bind', "black"); $wid->tag('bind', "red"); $wid->tag('bind', "green"); $wid->tag('configure', "black", -foreground=>"black"); $wid->tag('configure', "red", -foreground=>"red"); $wid->tag('configure', "green", -foreground=>"darkgreen"); $wid->insert("end",$_,$color); # where $color can be "black", "red", o +r "green"
    HTH
    --
    B10m