RE: text in a widget, text-widget @ 1146167556

"Van Nieuwenhuize, Mike" <[email protected]> Thu, 27 Apr 2006 15:06:09 -0700
Newsgroups gmane.comp.lang.perl.tk
Message-ID <[email protected]>
Not sure exactly what you are trying to do but it sounds like you want
word that is clicked on.

Quick and dirty way would be:

$scrolled->selectWord();
my $word = $scrolled->getSelected();

The above will only get a single word, so would be a challenge if you
have a link with multiple words.

Lame way:

create a separate tag for each word and bind that to a sub for that
particular word. These seems like
a lot of overhead and I would imagine Text widget would have better
feature you can leverage on.

Efficient way:

? I will leave that up to you ;) or someone else more Text widget savvy
then myself.

Like I mentioned before I had never tried the link thing, just gave it a
quick try yesterday as a
proof that it could be done. Maybe some one else on the list could
provide a better solution. You should
be able figure out where your cursor is and then determine from there. I
don't use Text widgets very often 
in my UI's, only occasionally to display output from child processes
that I am running via some IPC. 
So I have limited knowledge of the feature set of the Text widget. You
may want to check the documentation.

Regards,

Mike

 


-----Original Message-----
From: [email protected] [mailto:[email protected]]
On Behalf Of Johan Meskens CS3 jmcs3
Sent: Thursday, April 27, 2006 12:59 PM
To: [email protected]
Subject: Re: text in a widget, text-widget @ 1146167556



 Intrah onat Diria .. Tue, 25 Apr 2006 13:55:44 -0700
  ,Van Nieuwenhuize, Mike wrote  "Noalim y": 


> 
> Johan,
> 
> Here this will give you an idea how to create a link in a text widget 
> as well as some other tags.
> 
> HTH
> 
> Mike
> 
> use strict;
> use Tk;
> use Tk::Dialog;
> 
> my $mainWindow = MainWindow->new(-title => "Test Tags");
> 
> my $sc_width  = 100;
> my $sc_height = 15;
> 
> my $scrolled =  $mainWindow->Scrolled(
>                                         "Text",
>                                         -scrollbars => 'se',
>                                         -background => 'white',
>                                         -wrap       => 'none',
>                                         -width      => $sc_width,
>                                         -height     => $sc_height,
> 
> 
>                                         )->pack(
>                                                     -fill   => 'both',
>                                                     -expand => '0',
> 
>                                                     );
> 
> #lets set up some color tags for text
> $scrolled->tagConfigure('BLUE',-foreground => 'blue'); 
> $scrolled->tagConfigure('LINK',-underline => 1); 
> $scrolled->tagConfigure('RED',-background => 'red'); 
> $scrolled->tagBind('LINK',"<Button-1>",sub { $scrolled->Dialog(-text 
> => "Hey you pushed the link")->Show()});


i have a textfield where i have multiple pieces of text tagged with
'LINK'



 $scrolled->tagBind('LINK',"<Button-1>",sub { print
$scrolled->GetTextTaggedWith( 'LINK' ) } );

thus the above line prints all LINK-tagged texts how do i get to the
text of the specific link i klik on ?

thanks for your help
kind regards
jmcs3

> 
> my $frame = $mainWindow->Frame( -relief => 'ridge',-borderwidth => 
> 3,);
> 
> my $exitB  = $frame->Button(
>                             -text    => 'EXIT',
>                             -width   => 5,
>                             -command => sub { exit 0},
> 
>                             )->pack(
>                                         -side   => 'left',
>                                         -anchor => 'n',
> 
>                                         );
> 
> $frame->pack(
>                 -expand => 1,
>                 -fill   => 'x',
> 
>                 );
> 
> 
> $scrolled->insert('end',"Here is a green text\n",['GREEN']); 
> $scrolled->insert('end',"Here is a blue link\n",['BLUE','LINK']); 
> $scrolled->insert('end',"Here is a blue text with red 
> background",['BLUE','RED']);
> 
> 
> MainLoop();
> 
> -----Original Message-----
> From: [email protected] 
> [mailto:[email protected]]
> On Behalf Of Johan Meskens CS3 jmcs3
> Sent: Tuesday, April 25, 2006 11:12 AM
> To: [email protected]
> Subject: text in a widget, text-widget
> 
> 
> hello
> 
> 
> i have an application with a couple of text widgets but i would like 
> to add some functionalities that at first and second sight are not 
> directly supported by the plain text widget itself
>  - ?
> 
> for example i would like certain lines of text within the textwidget 
> to take  different background colors according to certain parameters
> 
> also i would like to be able to detect certain sentences or words that

> would become 'links' and by clicking them i would open up different 
> windows
> 
> any suggestions to solutions and widgets for the above problems ?
> 
>  - i probably could use the canvas for the color-thing .. as i write 
> this ..
> 
> kind regards
> jmcs3
> 
> 
> 
> 
> 
> 
> 
> 
> --------the following could be unreadable @ 1145988711   ::: 
> --a-=-t-g-i-
>  , Bottom:
>  , particular
>  , ||
>  , |2
>  , },
>  , oo,loent,uaha
>  , ::::::opthe
>  , lead
>  , |
>  , |---|
>  , _________________
>  ,
> 
> 
> 
> 
> -++**==--++**==--++**==--++**==--++**==--++**==--++**==
> This message was posted through the Stanford campus mailing list
server.
> If you wish to unsubscribe from this mailing list, send the message 
> body of "unsubscribe ptk" to [email protected]
> 
> -++**==--++**==--++**==--++**==--++**==--++**==--++**==
> This message was posted through the Stanford campus mailing list 
> server.  If you wish to unsubscribe from this mailing list, send the 
> message body of "unsubscribe ptk" to [email protected]







--------the following could be unreadable @ 1146167912   ::: 
?
 , >
 , =>
 , paars
 , doubling
 , ,
 ,
670670670670670670670670670670670670e670e670i670iaiiaii670670i2670ei670i
2670670e670fagi670670ga670670ib670PLETATOANITAPLEe
 , |
 , o::m
 , takened
 , t,
 , |
 , 




-++**==--++**==--++**==--++**==--++**==--++**==--++**==
This message was posted through the Stanford campus mailing list server.
If you wish to unsubscribe from this mailing list, send the message body
of "unsubscribe ptk" to [email protected]

-++**==--++**==--++**==--++**==--++**==--++**==--++**==
This message was posted through the Stanford campus mailing list
server.  If you wish to unsubscribe from this mailing list, send the
message body of "unsubscribe ptk" to [email protected]