From 6ae5e4111a76f9cb8f59ae6dfc9123365df39467 Mon Sep 17 00:00:00 2001 From: Simon Schampijer Date: Sat, 01 Sep 2007 09:11:36 +0000 Subject: Merge branch 'master' into json Conflicts: model.py webactivity.py --- (limited to 'linkbutton.py') diff --git a/linkbutton.py b/linkbutton.py index 5d6fb65..f5ad9cc 100644 --- a/linkbutton.py +++ b/linkbutton.py @@ -17,20 +17,31 @@ import gtk import os - +import gobject +from gettext import gettext as _ import rsvg import re -from sugar.graphics.palette import Palette, WidgetInvoker +from sugar.graphics.palette import Palette +from sugar.graphics.palette import WidgetInvoker +from sugar.graphics.tray import TrayButton +from sugar.graphics.icon import Icon from sugar.graphics import style -class LinkButton(gtk.RadioToolButton): - def __init__(self, buffer, color, pos, group=None): - gtk.RadioToolButton.__init__(self, group=group) - self._palette = None +class LinkButton(TrayButton, gobject.GObject): + __gtype_name__ = 'LinkButton' + __gsignals__ = { + 'remove_link': (gobject.SIGNAL_RUN_FIRST, + gobject.TYPE_NONE, ([int])) + } + def __init__(self, url, buffer, color, title, owner, index): + TrayButton.__init__(self) self.set_image(buffer, color.split(',')[1], color.split(',')[0]) - self.pos = pos + + self.index = index + info = title +'\n'+ owner + self.setup_rollover_options(info) def set_image(self, buffer, fill='#0000ff', stroke='#4d4c4f'): img = gtk.Image() @@ -54,7 +65,6 @@ class LinkButton(gtk.RadioToolButton): pixbuf.composite(pixbuf_bg, dest_x, dest_y, w, h, dest_x, dest_y, scale_x, scale_y, gtk.gdk.INTERP_BILINEAR, 255) - img.set_from_pixbuf(pixbuf_bg) self.set_icon_widget(img) img.show() @@ -75,15 +85,15 @@ class LinkButton(gtk.RadioToolButton): data_size = len(data) return rsvg.Handle(data=data).get_pixbuf() - def get_palette(self): - return self._palette - - def set_palette(self, palette): - self._palette = palette - self._palette.props.invoker = WidgetInvoker(self.child) + def setup_rollover_options(self, info): + palette = Palette(info) + self.set_palette(palette) + palette.props.invoker = WidgetInvoker(self) - def set_tooltip(self, text): - self._palette = Palette(text) - self._palette.props.invoker = WidgetInvoker(self.child) - - palette = property(get_palette, set_palette) + menu_item = gtk.MenuItem(_('Remove')) + menu_item.connect('activate', self.item_remove_cb) + palette.menu.append(menu_item) + menu_item.show() + + def item_remove_cb(self, widget): + self.emit('remove_link', self.index) -- cgit v0.9.1