in reply to Coloring text using TK?

Without understanding anything about your code, I can only direct you to this Tk-TextANSIColor-0.15 module. This may well get you on the right track to accomplishing your goal. From the looks of it you would have to parse the contents of the file and insert the ANSI color codes around the words of interest....I don't know for sure, just throwing out an idea from what I read. Also, it says that the module is mainly used in conjuction w/ a tied filehandle

Hope some of that helps,

Grygonos

Replies are listed 'Best First'.
Re: Re: Coloring text using TK?
by Elijah (Hermit) on Dec 01, 2003 at 18:00 UTC
    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?
      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