~osomon/moovida/plugin_dependencies_graph

« back to all changes in this revision

Viewing changes to elisa-plugins/elisa/plugins/pigment/widgets/list_carrousel.py

  • Committer: Olivier Tilloy
  • Date: 2009-06-04 10:32:06 UTC
  • mfrom: (1074.1.315 relook)
  • Revision ID: olivier@fluendo.com-20090604103206-6ql519mywkfcog6z
Merged the latest moovida.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
# -*- coding: utf-8 -*-
2
 
# Elisa - Home multimedia server
3
 
# Copyright (C) 2006-2008 Fluendo Embedded S.L. (www.fluendo.com).
 
2
# Moovida - Home multimedia server
 
3
# Copyright (C) 2006-2009 Fluendo Embedded S.L. (www.fluendo.com).
4
4
# All rights reserved.
5
5
#
6
6
# This file is available under one of two license agreements.
7
7
#
8
8
# This file is licensed under the GPL version 3.
9
9
# See "LICENSE.GPL" in the root of this distribution including a special
10
 
# exception to use Elisa with Fluendo's plugins.
 
10
# exception to use Moovida with Fluendo's plugins.
11
11
#
12
 
# The GPL part of Elisa is also available under a commercial licensing
 
12
# The GPL part of Moovida is also available under a commercial licensing
13
13
# agreement from Fluendo.
14
 
# See "LICENSE.Elisa" in the root directory of this distribution package
 
14
# See "LICENSE.Moovida" in the root directory of this distribution package
15
15
# for details on that license.
16
16
 
17
17
import pgm
 
18
 
 
19
from elisa.core.input_event import EventValue
 
20
 
18
21
from elisa.plugins.pigment.widgets.list import List
19
22
 
20
23
from pgm.utils import maths
148
151
        self._selected_item_index = positive_equivalent(index)
149
152
 
150
153
        # saving the target of the animation and stopping it
151
 
        previous_target = self._animated.visible_range_start
152
 
        self._animated.stop_animations()
 
154
        previous_target = self.animated.visible_range_start
 
155
        self.animated.stop_animations()
153
156
 
154
157
        # previous animation delta
155
158
        previous_delta = previous_target - self.visible_range_start
163
166
 
164
167
        visible_range_start = self.visible_range_start + new_delta
165
168
 
166
 
        if self.animated:
167
 
            self._animated.visible_range_start = visible_range_start
 
169
        if self.animation_enabled:
 
170
            self.animated.visible_range_start = visible_range_start
168
171
        else:
169
172
            self.visible_range_start = visible_range_start
170
173
 
186
189
 
187
190
    def _prepare_widget(self, widget):
188
191
        widget.size = (self._item_width, self._item_height)
189
 
        widget.position = (0.0, 0.0, 0.0)
190
192
 
191
193
    def _layout_widget(self, widget, position):
192
194
        # angle from position
232
234
        widget_index = item_index
233
235
        return widget_index
234
236
 
 
237
    def handle_input(self, manager, event):
 
238
        if event.value == EventValue.KEY_GO_LEFT:
 
239
            self.selected_item_index -= 1
 
240
            return True
 
241
        elif event.value == EventValue.KEY_GO_RIGHT:
 
242
            self.selected_item_index += 1
 
243
            return True
 
244
 
 
245
        return super(ListCarrousel, self).handle_input(manager, event)
 
246
 
235
247
    # Signals support methods
236
248
 
237
 
    def do_key_press_event(self, viewport, event, widget):
238
 
        if event.keyval == pgm.keysyms.Left:
239
 
            self.selected_item_index -= 1
240
 
        elif event.keyval == pgm.keysyms.Right:
241
 
            self.selected_item_index += 1
242
 
        elif event.keyval == pgm.keysyms.Home:
243
 
            self.selected_item_index = 0
244
 
        elif event.keyval == pgm.keysyms.End:
245
 
            self.selected_item_index = len(self.model) - 1
246
 
 
247
249
    def do_scrolled(self, x, y, z, direction, time):
248
250
        if direction == pgm.SCROLL_UP:
249
251
            self.selected_item_index -= 1
261
263
            item = self.model[item_index]
262
264
        except IndexError:
263
265
            return True
264
 
        self.emit('item-clicked', item)
 
266
        self.emit('item-activated', item)
265
267
        return True
266
268
 
267
269
    def do_clicked(self, x, y, z, button, time, pressure):
340
342
        def item_clicked_cb(self, widget):
341
343
            print "item clicked", widget
342
344
 
343
 
        widget.connect('item-clicked', item_clicked_cb)
 
345
        widget.connect('item-activated', item_clicked_cb)
344
346
 
345
347
        return widget
346
348