X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=pcremote-client-n8x0-60%2Fdebian%2Fpcremote-client%2Fusr%2Fshare%2Fpcremote-client%2Fscreenmanager.py;fp=pcremote-client-n8x0-60%2Fdebian%2Fpcremote-client%2Fusr%2Fshare%2Fpcremote-client%2Fscreenmanager.py;h=367f17b4e20c2bbb2d0b051c0c205fe576eb3547;hb=8eeea3225c010dea378cdc71c4e91294e04a6e9c;hp=0000000000000000000000000000000000000000;hpb=e8447209e336f2a6845027f50b84cc914fa2c796;p=remotepc diff --git a/pcremote-client-n8x0-60/debian/pcremote-client/usr/share/pcremote-client/screenmanager.py b/pcremote-client-n8x0-60/debian/pcremote-client/usr/share/pcremote-client/screenmanager.py new file mode 100755 index 0000000..367f17b --- /dev/null +++ b/pcremote-client-n8x0-60/debian/pcremote-client/usr/share/pcremote-client/screenmanager.py @@ -0,0 +1,111 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# **************************************************************************** +# Copyright (c) 2008 INdT/Fucapi. +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. + +# You should have received a copy of the GNU Lesser General Public License +# along with this program. If not, see . + +# ============================================================================ +# Project Name :PC Remote +# Author :André Portela +# Email :andre_portela_@hotmail.com +# Version :1.0 +# Module :main +# Class :PCRemote ScreenManager handles the finite state machine which +# controls the navigation between screens. +# ============================================================================ + +from edje_objects import * +import os +import sys + +class ScreenManager(object): + ''' + classdocs + ''' + def __init__(self, main, tablet, slide, player, torrent,socket): + ''' + Constructor + ''' + self.main = main + self.tablet = tablet + self.slide = slide + self.player = player + self.torrent = torrent + self.sock = socket + main.signal_callback_add("mouse,up,1", "Tablet",self.run_tablet) + main.signal_callback_add("mouse,up,1", "Slideshow",self.run_slide) + main.signal_callback_add("mouse,up,1", "Player",self.run_player) + main.signal_callback_add("mouse,up,1", "Torrent",self.run_torrent) + + def run_tablet(self, edje, emission, source): + self.sock.send_message(source+":#start") + print 'entrou no tablet' + #main edje object + edje.focus_set(False) + edje.hide() + if self.tablet is None: + edje_file = os.path.join(os.path.dirname(sys.argv[0]), "tablet.edj") + self.tablet = TabletScreen(edje.canvas_class, edje_file, 'main', 'tablet', self.sock) + self.tablet.signal_callback_add("mouse,up,1","tablet_bt-voltar_area",self.tablet_back) + self.tablet.part_text_set('pc_name',edje.sock_address) + self.tablet.show() + self.tablet.focus_set(True) + + def tablet_back(self, edje, emission, source): + #tablet edje object + edje.focus_set(False) + edje.hide() + self.sock.send_message("Tablet:#stop") + self.main.show() + self.main.focus_set(True) + + def run_slide(self, edje, emission, source): + self.sock.send_message(source+":#start") + print 'entrou no slide' + #main edje object + edje.focus_set(False) + edje.hide() + if self.slide is None: + edje_file = os.path.join(os.path.dirname(sys.argv[0]), "slide.edj") + self.slide = SlideScreen(edje.canvas_class, edje_file, 'main', 'slide', self.sock) + self.slide.signal_callback_add("unselected","slide_bt-voltar",self.slide_back) + #self.slide.part_text_set('pc_name',edje.sock_address) + #this rotates the screen 90 degrees (to fit text in vertical orientation) + #self.slide.x11.rotation_set(90) + self.slide.show() + self.slide.focus_set(True) + + def slide_back(self, edje, emission, source): + #slide edje object + edje.focus_set(False) + edje.hide() + self.sock.send_message("Slideshow:#stop") + #this rotates the screen from 90 to 0 degrees (to fit text in horizontal orientation again) + #self.main.x11.rotation_set(0) + self.main.show() + self.main.focus_set(True) + + def run_player(self, edje, emission, source): + print 'not implemented yet' + + def player_back(self, edje, emission, source): + print 'not implemented yet' + + def run_torrent(self, edje, emission, source): + print 'not implemented yet' + + def torrent_back(self, edje, emission, source): + print 'not implemented yet' +