Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAgustin Zubiaga <aguz@sugarlabs.org>2012-05-26 00:38:36 (GMT)
committer Agustin Zubiaga <aguz@sugarlabs.org>2012-05-26 00:38:36 (GMT)
commitc3736630f7cd295b8b4fbeb22cc87ba352a39aa2 (patch)
tree3956bac42a29860ec0b112edf0f6a279e0333584
parent28866a64a1d245554f825708fb447fb78de49648 (diff)
add_image button added
-rw-r--r--activity.py41
-rw-r--r--frames_list.py2
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")