diff options
author | Tomeu Vizoso <tomeu@tomeuvizoso.net> | 2007-01-11 22:57:06 (GMT) |
---|---|---|
committer | Tomeu Vizoso <tomeu@tomeuvizoso.net> | 2007-01-11 22:57:06 (GMT) |
commit | 334be3331bf967d9b6c60f9d55e27d2374ecc94e (patch) | |
tree | 30e9686f6210f2bfdf3eb7029921bab484f7551c /sugar | |
parent | d0ce5a07d548643074081c3b451ac42f39f96027 (diff) |
Some more usability fixes for the clipboard.
Diffstat (limited to 'sugar')
-rw-r--r-- | sugar/clipboard/clipboardservice.py | 8 | ||||
-rw-r--r-- | sugar/graphics/ClipboardBubble.py | 59 | ||||
-rw-r--r-- | sugar/graphics/canvasicon.py | 8 | ||||
-rw-r--r-- | sugar/graphics/menu.py | 2 |
4 files changed, 40 insertions, 37 deletions
diff --git a/sugar/clipboard/clipboardservice.py b/sugar/clipboard/clipboardservice.py index 8455751..7809c07 100644 --- a/sugar/clipboard/clipboardservice.py +++ b/sugar/clipboard/clipboardservice.py @@ -6,6 +6,7 @@ NAME_KEY = 'NAME' PERCENT_KEY = 'PERCENT' ICON_KEY = 'ICON' PREVIEW_KEY = 'PREVIEW' +ACTIVITY_KEY = 'ACTIVITY' FORMATS_KEY = 'FORMATS' DBUS_SERVICE = "org.laptop.Clipboard" @@ -20,7 +21,7 @@ class ClipboardService(gobject.GObject): 'object-deleted': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([str])), 'object-state-changed': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, - ([str, str, int, str, str])), + ([str, str, int, str, str, str])), } def __init__(self): @@ -64,7 +65,8 @@ class ClipboardService(gobject.GObject): def _object_state_changed_cb(self, object_id, values): self.emit('object-state-changed', object_id, values[NAME_KEY], - values[PERCENT_KEY], values[ICON_KEY], values[PREVIEW_KEY]) + values[PERCENT_KEY], values[ICON_KEY], values[PREVIEW_KEY], + values[ACTIVITY_KEY]) def add_object(self, object_id, name): self._dbus_service.add_object(object_id, name) @@ -86,7 +88,7 @@ class ClipboardService(gobject.GObject): return (result_dict[NAME_KEY], result_dict[PERCENT_KEY], result_dict[ICON_KEY], result_dict[PREVIEW_KEY], - result_dict[FORMATS_KEY]) + result_dict[ACTIVITY_KEY], result_dict[FORMATS_KEY]) def get_object_data(self, object_id, formatType): return self._dbus_service.get_object_data(object_id, formatType, diff --git a/sugar/graphics/ClipboardBubble.py b/sugar/graphics/ClipboardBubble.py index 1947fd5..acabb15 100644 --- a/sugar/graphics/ClipboardBubble.py +++ b/sugar/graphics/ClipboardBubble.py @@ -86,14 +86,27 @@ class ClipboardBubble(hippo.CanvasBox, hippo.CanvasItem): width -= line_width * 2 height -= line_width * 2 - self._paint_ellipse(cr, x, y, width, height, self._fill_color) + cr.move_to(x + self._radius, y); + cr.arc(x + width - self._radius, y + self._radius, + self._radius, math.pi * 1.5, math.pi * 2); + cr.arc(x + width - self._radius, x + height - self._radius, + self._radius, 0, math.pi * 0.5); + cr.arc(x + self._radius, y + height - self._radius, + self._radius, math.pi * 0.5, math.pi); + cr.arc(x + self._radius, y + self._radius, self._radius, + math.pi, math.pi * 1.5); + + color = self._int_to_rgb(self._fill_color) + cr.set_source_rgb(*color) + cr.fill_preserve(); color = self._int_to_rgb(self._stroke_color) cr.set_source_rgb(*color) cr.set_line_width(line_width) cr.stroke(); - self._paint_progress_bar(cr, x, y, width, height, line_width) + if self._percent > 0: + self._paint_progress_bar(cr, x, y, width, height, line_width) def _paint_progress_bar(self, cr, x, y, width, height, line_width): prog_x = x + line_width @@ -101,31 +114,21 @@ class ClipboardBubble(hippo.CanvasBox, hippo.CanvasItem): prog_width = (width - (line_width * 2)) * (self._percent / 100.0) prog_height = (height - (line_width * 2)) - self._paint_ellipse(cr, prog_x, prog_y, width, height, self._progress_color) - - def _paint_ellipse(self, cr, x, y, width, height, fill_color): - cr.move_to(x + self._radius, y) - cr.arc(x + width - self._radius, - y + self._radius, - self._radius, - math.pi * 1.5, - math.pi * 2) - cr.arc(x + width - self._radius, - x + height - self._radius, - self._radius, - 0, - math.pi * 0.5) - cr.arc(x + self._radius, - y + height - self._radius, - self._radius, - math.pi * 0.5, - math.pi) - cr.arc(x + self._radius, - y + self._radius, - self._radius, - math.pi, - math.pi * 1.5); - - color = self._int_to_rgb(fill_color) + x = prog_x + y = prog_y + width = prog_width + height = prog_height + + cr.move_to(x + self._radius, y); + cr.arc(x + width - self._radius, y + self._radius, + self._radius, math.pi * 1.5, math.pi * 2); + cr.arc(x + width - self._radius, x + height - self._radius, + self._radius, 0, math.pi * 0.5); + cr.arc(x + self._radius, y + height - self._radius, + self._radius, math.pi * 0.5, math.pi); + cr.arc(x + self._radius, y + self._radius, self._radius, + math.pi, math.pi * 1.5); + + color = self._int_to_rgb(self._progress_color) cr.set_source_rgb(*color) cr.fill_preserve(); diff --git a/sugar/graphics/canvasicon.py b/sugar/graphics/canvasicon.py index 071a745..125ddf9 100644 --- a/sugar/graphics/canvasicon.py +++ b/sugar/graphics/canvasicon.py @@ -54,6 +54,9 @@ class _IconCache: def get_handle(self, name, color, size): info = self._theme.lookup_icon(name, int(size), 0) + if not info: + raise "Icon '" + name + "' not found." + if color: key = (info.get_filename(), color.to_string()) else: @@ -160,8 +163,3 @@ class CanvasIcon(hippo.CanvasBox, hippo.CanvasItem): def _button_press_event_cb(self, item, event): item.emit_activated() - - def set_icon_name(self, icon_name): - self._icon_name = icon_name - self._buffer = None - self.emit_paint_needed(0, 0, -1, -1) diff --git a/sugar/graphics/menu.py b/sugar/graphics/menu.py index f453b16..2cc892a 100644 --- a/sugar/graphics/menu.py +++ b/sugar/graphics/menu.py @@ -110,4 +110,4 @@ class Menu(gtk.Window): self.emit('action', action) def set_title(self, title): - self._title_item.set_text(title) + self._title_item.set_property('text', title) |