diff options
author | Marco Pesenti Gritti <marco@localhost.localdomain> | 2007-07-21 13:38:03 (GMT) |
---|---|---|
committer | Marco Pesenti Gritti <marco@localhost.localdomain> | 2007-07-21 13:38:03 (GMT) |
commit | ad7c272f4309c90332e9358f16904f2d135cd18b (patch) | |
tree | c9807c0ccd7cb44dc05090a07e6c25284f29fedc | |
parent | b3552d27216eefd1a33f95e00f9f5872f1dc4df3 (diff) |
Add basic link support
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | chat.py | 19 |
2 files changed, 17 insertions, 4 deletions
@@ -1,3 +1,5 @@ +* #2356 Basic link support. (marco) + 10 * Adapt to sugar API change (marco) @@ -23,6 +23,7 @@ from datetime import datetime from sugar import profile from sugar.activity.activity import Activity, ActivityToolbox +from sugar.activity import activityfactory from sugar.graphics.canvasicon import CanvasIcon from sugar.graphics.roundbox import RoundBox from sugar.graphics.xocolor import XoColor @@ -205,6 +206,10 @@ class Chat(Activity): def rescroll(self, adj, scroll=None): """Scroll the chat window to the bottom""" adj.set_value(adj.upper-adj.page_size) + + def _link_activated_cb(self, link): + activityfactory.create_with_uri( + 'org.laptop.WebActivity', link.props.text) def add_text(self, name, icon, text, status_message=False): """Display text on screen, with name and icon. @@ -220,10 +225,16 @@ class Chat(Activity): self._add_log('*', '%s %s' % (name, text)) else: self._add_log(name, text) - text = hippo.CanvasText( - text=text, - size_mode=hippo.CANVAS_SIZE_WRAP_WORD, - xalign=hippo.ALIGNMENT_START) + + if text.startswith('http://'): + text = hippo.CanvasLink(text=text) + text.connect('activated', self._link_activated_cb) + else: + text = hippo.CanvasText( + text=text, + size_mode=hippo.CANVAS_SIZE_WRAP_WORD, + xalign=hippo.ALIGNMENT_START) + name = hippo.CanvasText(text=name) vbox = hippo.CanvasBox(padding=px(5)) |