diff options
author | Agustin Zubiaga <aguz@sugarlabs.org> | 2012-05-26 00:38:36 (GMT) |
---|---|---|
committer | Agustin Zubiaga <aguz@sugarlabs.org> | 2012-05-26 00:38:36 (GMT) |
commit | c3736630f7cd295b8b4fbeb22cc87ba352a39aa2 (patch) | |
tree | 3956bac42a29860ec0b112edf0f6a279e0333584 | |
parent | 28866a64a1d245554f825708fb447fb78de49648 (diff) |
add_image button added
-rw-r--r-- | activity.py | 41 | ||||
-rw-r--r-- | frames_list.py | 2 |
2 files changed, 37 insertions, 6 deletions
diff --git a/activity.py b/activity.py index 6c6fdbc..1bb0774 100644 --- a/activity.py +++ b/activity.py @@ -26,9 +26,14 @@ import gtk from sugar.activity import activity from sugar.activity.widgets import StopButton from sugar.activity.widgets import ActivityToolbarButton +from sugar.graphics.objectchooser import ObjectChooser from sugar.graphics.toolbarbox import ToolbarBox +from sugar.graphics.toolbutton import ToolButton -from images_list import ImagesList +from sugar import mime +from gettext import gettext as _ + +from frames_list import FramesList from animation import Animation @@ -45,6 +50,16 @@ class AnimateActivity(activity.Activity): toolbarbox.toolbar.insert(activity_button, 0) separator = gtk.SeparatorToolItem() + separator.set_expand(False) + separator.set_draw(True) + toolbarbox.toolbar.insert(separator, -1) + + add_image = ToolButton('insert-image') + add_image.set_tooltip(_('Add a frame')) + add_image.connect('clicked', self._add_frame) + toolbarbox.toolbar.insert(add_image, -1) + + separator = gtk.SeparatorToolItem() separator.set_expand(True) separator.set_draw(False) toolbarbox.toolbar.insert(separator, -1) @@ -57,9 +72,9 @@ class AnimateActivity(activity.Activity): canvas = gtk.HBox() - self._images_list = ImagesList() - self._images_list.show() - canvas.pack_end(self._images_list, False, True, 0) + self._frames_list = FramesList() + self._frames_list.show() + canvas.pack_end(self._frames_list, False, True, 0) canvas.connect("expose-event", self.__canvas_expose_cb) canvas.show() @@ -67,12 +82,28 @@ class AnimateActivity(activity.Activity): self.show() + def _add_frame(self, widget): + chooser = ObjectChooser(parent=self, + what_filter=mime.GENERIC_TYPE_IMAGE) + result = chooser.run() + if result == gtk.RESPONSE_ACCEPT: + jobject = chooser.get_selected_object() + preview_pixbuf = \ + gtk.gdk.pixbuf_new_from_file_at_size(jobject.get_file_path(), + 25, 25) + self._frames_list.add_frame(preview_pixbuf) + self._animation.add_image(jobject.get_file_path()) + + else: + return + def __canvas_expose_cb(self, canvas, event): canvas_allocation = canvas.get_allocation() - treeview_allocation = self._images_list.get_allocation() + treeview_allocation = self._frames_list.get_allocation() width = canvas_allocation[-2] - treeview_allocation[-2] height = canvas_allocation[-1] self._animation = Animation(width, height) + self._animation.show_all() canvas.pack_start(self._animation, True, True, 0) diff --git a/frames_list.py b/frames_list.py index fddd008..778e107 100644 --- a/frames_list.py +++ b/frames_list.py @@ -28,7 +28,7 @@ class FramesList(gtk.ScrolledWindow): def __init__(self): super(FramesList, self).__init__() self.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC) - self.store = gtk.ListStore(int, gtk.gdk.Pixbuf, gtk.gdk.Pixbuf) + self.store = gtk.ListStore(int, gtk.gdk.Pixbuf) self.treeview = gtk.TreeView(self.store) self.set_vadjustment(self.treeview.get_vadjustment()) column = gtk.TreeViewColumn("Frame") |