From ad7c272f4309c90332e9358f16904f2d135cd18b Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Sat, 21 Jul 2007 13:38:03 +0000 Subject: Add basic link support --- diff --git a/NEWS b/NEWS index dad2ded..92ba576 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,5 @@ +* #2356 Basic link support. (marco) + 10 * Adapt to sugar API change (marco) diff --git a/chat.py b/chat.py index 1307414..4421a81 100644 --- a/chat.py +++ b/chat.py @@ -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)) -- cgit v0.9.1