Package ecore ::
Package evas ::
Module utils
|
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 __callbacks = (
19 "resize",
20 "move",
21 "show",
22 "hide",
23 "delete_request",
24 "destroy",
25 "focus_in",
26 "focus_out",
27 "sticky",
28 "unsticky",
29 "mouse_in",
30 "mouse_out",
31 "pre_render",
32 "post_render",
33 )
34
36 try:
37 attr = getattr(observer, "cb_on_%s" % name)
38 if callable(attr):
39 return attr
40 except AttributeError, e:
41 return None
42
44 """Connect methods from observer to Ecore_Evas callbacks.
45
46 Observer must have methods with name scheme: cb_on_<callback>,
47 examples:
48 - cb_on_resize
49 - cb_on_move
50 - cb_on_show
51 """
52 for cb_name in __callbacks:
53 cb = __get_callback(observer, cb_name)
54 if cb:
55 setter = getattr(ecore_evas, "callback_%s_set" % cb_name)
56 setter(cb)
57
58
60 """Connect callbacks specified in mapping to Ecore_Evas callbacks.
61
62 Mapping must be a dict or a list of tuples with callback name and
63 desired function, example:
64 - mapping = (("resize", my_on_resize), ("show", my_on_show))
65 - mapping = {"resize": my_on_resize, "show": my_on_show}
66 """
67 if isinstance(mapping, dict):
68 mapping = mapping.iteritems()
69 for name, func in mapping:
70 try:
71 setter = getattr(ecore_evas, "callback_%s_set" % name)
72 except AttributeError, e:
73 raise ValueError("invalid callback name: %s" % name)
74 setter(func)
75