sugar-toolkit-gtk3/examples/scene/scene.py
2006-07-24 12:15:52 +02:00

58 lines
1.2 KiB
Python
Executable File

#!/usr/bin/python
import math
import pygtk
pygtk.require('2.0')
import gtk
from sugar.scene.Stage import Stage
from sugar.scene.Group import Group
from sugar.scene.View import View
from sugar.scene.PixbufActor import PixbufActor
from sugar.scene.CircleLayout import CircleLayout
from sugar.scene.Timeline import Timeline
def __next_frame_cb(timeline, frame_num, group):
angle = math.pi * 2 * frame_num / timeline.get_n_frames()
group.get_layout().set_angle(angle)
group.do_layout()
def __completed_cb(timeline, group):
group.get_layout().set_angle(0)
group.do_layout()
stage = Stage()
pixbuf = gtk.gdk.pixbuf_new_from_file('background.png')
stage.add(PixbufActor(pixbuf))
icons_group = Group()
icons_group.set_position(100, 100)
i = 1
while i <= 5:
pixbuf = gtk.gdk.pixbuf_new_from_file('activity%d.png' % i)
icons_group.add(PixbufActor(pixbuf))
i += 1
layout = CircleLayout(100)
icons_group.set_layout(layout)
stage.add(icons_group)
window = gtk.Window()
window.set_default_size(640, 480)
view = View(stage)
window.add(view)
view.show()
window.show()
timeline = Timeline(stage, 200)
timeline.connect('next-frame', __next_frame_cb, icons_group)
timeline.connect('completed', __completed_cb, icons_group)
timeline.start()
gtk.main()