[Newbies] How to create a TextMorph with Text containing links

Ben Coman btc at openinworld.com
Sat Sep 15 00:45:53 UTC 2018


On Fri, 14 Sep 2018 at 22:56, Christian Kellermann <ckeen at pestilenz.org>
wrote:

> Hi List!
>
> I want to program a gopher client in squeak and I am a bit stuck
> on how to do the rendering.  I got the hint that I could use a
> TextMorph since there links are a text attribute.
>
> However I am a bit clueless on how this is supposed to fit together.
>
> What I did atm was that for gopher menus I have an OrderedCollection of
> MenuItems.
> Those in turn have implemented their #asText methods. For links I
> am returning TextURL objects there.
>
> This is all collected in a GopherPage's #asText method where said
> orderedCollection is #join'ed together.
>
> As it turns out though, the TextMorph will render my URL as if the
> #printOn: message has been sent to it.  TextURLs will show up in
> the TextMorph as 'a TextURL'. My guess is that the #join is responsible
> for this.
>
> How am I supposed to add URLs into Text?
>

Here is something I recently did in Pharo.  I expect these parts of the
systems are very similar.

url := 'https://google.com'.
linkText := url asText
addAttribute: (TextAction new actOnClickBlock: [ExternalWebBrowser new
open: url]);
addAttribute: TextColor blue;
addAttribute: TextEmphasis underlined.
tm := TextMorph new.
tm contents:  linkText.
tm openInWindow

You'll need to find an appropriate "ExternalWebBrowser" library for your
Squeak version.

cheers -ben
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/beginners/attachments/20180915/db7cbdee/attachment.html>


More information about the Beginners mailing list