Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/examples/scene/scene.py
blob: 4d5942d6f99807ca9ed5aef8b63c11399727dd58 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#!/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.SceneView import SceneView
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 = SceneView(stage)
window.add(view)
view.show()

button = gtk.Button('Hello')
view.put(button, 10, 10)
button.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()