~rockstar/entertainer/package-structure-apocalypse

« back to all changes in this revision

Viewing changes to entertainerlib/gui/user_interface.py

  • Committer: Paul Hummer
  • Date: 2009-05-10 17:36:49 UTC
  • mfrom: (360.1.3 entertainer-future)
  • Revision ID: paul@eventuallyanyway.com-20090510173649-0odjpoqifn303t46
Merged from entertainer-future

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# Copyright (c) 2009 Entertainer Developers - See COPYING - GPLv2
1
2
'''UserInterface - Main window of the Entertainer client'''
2
3
 
3
4
# Clutter uses _1 to represent the 1 key and pylint complains about it
4
5
# pylint: disable-msg=W0212
5
6
 
6
 
__licence__ = "GPLv2"
7
 
__copyright__ = "2007, Lauri Taimila, 2009, Matt Layman"
8
 
__author__ = ("Lauri Taimila <lauri@taimila.com>",
9
 
              'Matt Layman <laymansterms.dev@gmail.com>')
10
 
 
11
7
from collections import defaultdict
12
8
import os
13
9
 
76
72
        #problem
77
73
        clutter.set_use_mipmapped_text(False)
78
74
 
 
75
        self._hide_cursor_timeout_key = None
 
76
 
79
77
        self.stage.connect('key-press-event', self.handle_keyboard_event)
 
78
        self.stage.connect('motion-event', self._handle_motion_event)
80
79
        self.stage.set_color(self.config.theme.get_color("background"))
81
80
        self.stage.set_size(
82
81
            self.config.get_stage_width(), self.config.get_stage_height())
177
176
 
178
177
    def _fullscreen(self):
179
178
        '''Set the window, stage, and config to fullscreen dimensions.'''
180
 
        self.stage.hide_cursor()
181
179
        self.window.fullscreen()
182
180
        self.stage.fullscreen()
183
181
        width, height = self.stage.get_size()
204
202
    def start_up(self):
205
203
        '''Start the user interface and make it visible.'''
206
204
        self.show()
 
205
        self.stage.hide_cursor()
207
206
        self.current = self.create_screen("main")
208
207
        self.transition.forward_effect(None, self.current)
209
208
        self.enable_menu_overlay()
217
216
        if self.is_fullscreen:
218
217
            self.stage.unfullscreen()
219
218
            self.window.unfullscreen()
220
 
            self.stage.show_cursor()
221
219
            self.config.set_stage_width(self.old_width)
222
220
            self.config.set_stage_height(self.old_height)
223
221
            self.is_fullscreen = False
301
299
        elif direction == Transition.BACKWARD:
302
300
            self.transition.backward_effect(from_screen, screen)
303
301
 
 
302
    def _hide_cursor_timeout_callback(self):
 
303
        '''Hide the cursor'''
 
304
        self.stage.hide_cursor()
 
305
        return True
 
306
 
 
307
    def _handle_motion_event(self, stage, clutter_event):
 
308
        '''Show the cursor and start a timeout to hide it after 4 seconds.'''
 
309
        self.stage.show_cursor()
 
310
        if self._hide_cursor_timeout_key is not None:
 
311
            gobject.source_remove(self._hide_cursor_timeout_key)
 
312
        self._hide_cursor_timeout_key = gobject.timeout_add(4000,
 
313
            self._hide_cursor_timeout_callback)
 
314
 
304
315
    def handle_keyboard_event(self, stage, clutter_event, event_handler=None):
305
316
        '''Translate all received keyboard events to UserEvents.'''
306
317
        if event_handler is None: