gloss-mc/gloss.py

118 lines
3.3 KiB
Python
Raw Normal View History

2007-08-14 18:10:53 -07:00
import sys
import clutter
#import gobject
import pygtk
import gtk
2007-11-13 05:15:47 -08:00
import gobject
import os.path
2007-11-13 05:15:47 -08:00
#import threading
from SplashScr import SplashScr
2007-12-11 02:50:45 -08:00
from themeMgr import ThemeMgr
#Import all the modules
mod_dir = "modules"
module_list = os.listdir(mod_dir)
modules = []
for fs_object in module_list:
path = mod_dir + "/" + fs_object
if os.path.isdir(path) and (not fs_object[0] == "."):
tmp_dir = mod_dir+"/"+fs_object+"/"+fs_object
print "Found Module: " + fs_object
modules.append(__import__(tmp_dir))
2007-08-14 18:10:53 -07:00
from Menu import Menu
2007-12-21 03:39:50 -08:00
from GlossMgr import GlossMgr
from myth.MythMySQL import mythDB
2007-08-14 18:10:53 -07:00
class MainApp:
def __init__ (self):
gtk.gdk.threads_init()
clutter.threads_init()
2007-08-14 18:10:53 -07:00
self.stage = clutter.stage_get_default()
self.stage.set_color(clutter.color_parse('Black'))
#self.stage.set_size(800, 600)
self.stage.set_property("fullscreen", True)
self.stage.connect('button-press-event', self.on_button_press_event)
self.stage.show_all()
#clutter.main()
#hide the cursor
self.stage.hide_cursor()
#Display a loading / splash screen
self.splashScreen = SplashScr(self.stage)
self.splashScreen.display()
#clutter.threads_enter()
2007-11-13 05:15:47 -08:00
gobject.timeout_add(500, self.loadGloss)
#clutter.threads_leave()
#clutter.threads_add_timeout(500, self.loadGloss())
def loadGloss(self):
2007-12-21 03:39:50 -08:00
self.glossMgr = GlossMgr(self.stage)
#Update splash status msg
self.splashScreen.set_msg("Creating menus")
2007-12-21 03:39:50 -08:00
MainMenu = Menu(self.glossMgr)
2007-11-19 03:38:15 -08:00
#menu1.addItem("nothing", "ui/dvd.png")
#menu1.addItem("nothing", "ui/dvd.png")
#menu1.addItem("nothing", "ui/dvd.png")
2007-08-14 18:10:53 -07:00
#menu1.setListFont('Tahoma 42')
2007-11-19 03:38:15 -08:00
MainMenu.setMenuPositionByName("center")
#self.MainMenu = menu
#Update splash status msg
self.splashScreen.set_msg("Connecting to MythTV server")
#Create a master mySQL connection
self.dbMgr = mythDB()
#Update splash status msg
2007-11-19 03:38:15 -08:00
for mods in modules:
#print "Loading mod..."
2007-12-21 03:39:50 -08:00
tempMod = mods.Module(self.glossMgr, self.dbMgr)
2008-01-06 04:11:17 -08:00
title = tempMod.title
#print title
2008-01-06 04:11:17 -08:00
self.splashScreen.set_msg("Loading "+title)
temp_menu_item = MainMenu.addItem(title)
temp_menu_item.add_image_from_texture(tempMod.menu_image)
2007-11-19 03:38:15 -08:00
temp_menu_item.setAction(tempMod.action())
2007-08-14 18:10:53 -07:00
self.splashScreen.remove()
2007-12-21 03:39:50 -08:00
self.stage.connect('key-press-event', self.glossMgr.on_key_press_event)
2007-11-19 03:38:15 -08:00
MainMenu.display()
MainMenu.selectFirst(True)
2007-11-13 05:15:47 -08:00
2007-11-13 05:15:47 -08:00
return False
#print self.menuMgr.get_selector_bar().get_abs_position()
#self.menuMgr.get_selector_bar().set_spinner(True)
2007-08-14 18:10:53 -07:00
def on_button_press_event (self, stage, event):
print "mouse button %d pressed at (%d, %d)" % \
(event.button, event.x, event.y)
if event.button == 1:
pass
def run (self):
self.stage.show()
#self.timeline.start()
clutter.main()
def main (args):
app = MainApp()
2007-11-13 05:15:47 -08:00
#app.loadGloss()
2007-08-14 18:10:53 -07:00
app.run()
2007-08-14 18:10:53 -07:00
return 0
if __name__ == '__main__':
sys.exit(main(sys.argv[1:]))