1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 from elisa.core import common
18 from elisa.core import player
19
20 import gtk.gdk, gobject
21
22 plugin_registry = common.application.plugin_registry
23 PigmentView = plugin_registry.get_component_class('pigment:pigment_view')
24
26
27 supported_controllers = ('raval:elisa_controller',)
28 bindings = {'player': 'player',
29 'dvd_player': 'dvd_player',
30 'slideshow': 'slideshow',
31 'manager': 'manager',
32 'focused_window': 'focused_window'}
33
40
54
65
67 self.debug("new focused window: %s" % focused_window)
68 players = ('player', 'dvd_player', 'slideshow')
69
70
71 slideshow_faded = float(self.slideshow.context_handle.opacity) == 50.
72 player_faded = float(self.player.context_handle.opacity) == 50.
73 self.debug("player_faded: %r, slideshow_faded: %r",
74 player_faded, slideshow_faded)
75
76 try:
77 if self._focused_window == focused_window:
78 return
79
80 old_view = getattr(self, self._focused_window)
81 except AttributeError, e:
82
83 pass
84 else:
85 if self._focused_window in players:
86 self._player_out.apply(old_view)
87 path = 'player_out'
88 else:
89 if slideshow_faded and focused_window != 'slideshow':
90 path = 'pigment:fadeout_transition'
91 fadeout = plugin_registry.create_component(path)
92 view = self.slideshow
93 fadeout.apply(view)
94 self.debug("Faded out slideshow")
95 if player_faded and focused_window != 'player':
96 path = 'pigment:fadeout_transition'
97 fadeout = plugin_registry.create_component(path)
98 view = self.player
99 fadeout.apply(view)
100 self.debug("Faded out player")
101
102 path = 'pigment:fadeout_transition'
103 fadeout = plugin_registry.create_component(path)
104 fadeout.apply(old_view)
105 self.debug("Fade out applied to %r : %r", old_view, path)
106
107 new_view = getattr(self, focused_window)
108
109 if focused_window in players:
110 self._player_in.apply(new_view)
111 path = 'player_in'
112 else:
113 path = 'pigment:fadein_transition'
114 fadein = plugin_registry.create_component(path)
115 fadein.apply(new_view)
116
117 self.debug("Fade in applied to %r : %r", new_view, path)
118
119 self._focused_window = focused_window
120
123