Spelling correction.
[adesklets.git] / test / bumpmap.py
blob995122c5993989099c30e79a6746c4e36e4584b4
1 """
2 bumpmap.py - S.Fourmanoit <syfou@users.sourceforge.net>, 2005
4 Short, but more involved adesklets test script. It demonstrates
5 Imlib2 dynamic filtering capabilities and how you can modify
6 a background image dynamically.
8 Note: I strongly advise against using an effect that CPU intensive
9 in real life desklets - remember adesklets was made to be 'light'.
11 To try it:
12 - Install adesklets with python support enabled (default)
13 - Run python bumpmap.py from this directory.
14 """
15 import adesklets
17 class My_Events(adesklets.Events_handler):
18 x = 100 # Initial spot position
19 y = 100
21 def __init__(self):
22 adesklets.Events_handler.__init__(self)
24 def __del__(self):
25 adesklets.Events_handler.__del__(self)
27 def ready(self):
28 adesklets.window_resize(200,200)
29 adesklets.window_set_background_image(adesklets.clone_image())
30 adesklets.window_set_transparency(True)
31 adesklets.window_reset(adesklets.WINDOW_MANAGED)
33 # Now, let us set a 'Test!' text on foreground image:
34 # we will not modify it any more
36 adesklets.context_set_image(0)
37 adesklets.context_set_font(adesklets.load_font('Vera/60'))
38 adesklets.context_set_color(255,0,0,200)
39 adesklets.context_set_direction(adesklets.TEXT_TO_ANGLE)
40 adesklets.context_set_angle(45)
41 adesklets.text_draw(20,0,'Test!')
42 adesklets.free_font(0)
44 adesklets.window_show()
46 def background_grab(self,delayed):
47 self._display()
49 def motion_notify(self, delayed, x, y):
50 if not delayed:
51 self.x = x
52 self.y = y
53 self._display()
55 def _display(self):
56 """
57 The drawing method. Please remember this nomenclature:
59 image 0: foreground image, left untouched here
60 image 1: original background, automatically kept up to date
61 by adesklets - hence we keep ourselves from modify it.
62 image 2: Our displayed background - set My_Events::ready() for
63 initialisation details
64 image 3: transient image on which we operate the
65 current transformation, before updating image 2
66 and destroying it.
67 """
68 adesklets.context_set_image(1)
69 adesklets.context_set_image(adesklets.clone_image())
70 adesklets.apply_filter("bump_map_point(x=%d,y=%d);" % (self.x, self.y))
71 adesklets.context_set_image(2)
72 adesklets.blend_image_onto_image(3,0,0,0,200,200,0,0,200,200)
73 adesklets.free_image(3)
75 My_Events().pause()