| 
									
										
										
										
											2007-01-20 13:38:58 +01:00
										 |  |  | #!/usr/bin/env python | 
					
						
							| 
									
										
										
										
											2006-10-16 13:35:07 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | # Copyright (C) 2006, Red Hat, Inc. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # This program is free software; you can redistribute it and/or modify | 
					
						
							|  |  |  | # it under the terms of the GNU General Public License as published by | 
					
						
							|  |  |  | # the Free Software Foundation; either version 2 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 General Public License for more details. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # You should have received a copy of the GNU General Public License | 
					
						
							|  |  |  | # along with this program; if not, write to the Free Software | 
					
						
							|  |  |  | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import os | 
					
						
							|  |  |  | import sys | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-02-06 12:01:59 +01:00
										 |  |  | import pygtk | 
					
						
							|  |  |  | pygtk.require('2.0') | 
					
						
							| 
									
										
										
										
											2007-01-16 01:21:15 +01:00
										 |  |  | import gtk | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-01-11 11:20:08 +01:00
										 |  |  | os.environ['SUGAR_EMULATOR'] = 'yes' | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-10-17 10:14:42 +02:00
										 |  |  | sourcedir = os.path.abspath(os.path.dirname(__file__)) | 
					
						
							| 
									
										
										
										
											2006-10-16 13:35:07 +02:00
										 |  |  | if os.path.isfile(os.path.join(sourcedir, 'sugar/__uninstalled__.py')): | 
					
						
							|  |  |  | 	print 'Running sugar from ' + sourcedir + ' ...' | 
					
						
							|  |  |  | 	sys.path.insert(0, sourcedir) | 
					
						
							|  |  |  | else: | 
					
						
							|  |  |  | 	print 'Running the installed sugar...' | 
					
						
							| 
									
										
										
										
											2006-10-17 10:25:47 +02:00
										 |  |  | 	sourcedir = None | 
					
						
							| 
									
										
										
										
											2006-10-16 13:35:07 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | from sugar import env | 
					
						
							| 
									
										
										
										
											2006-12-01 23:23:58 +01:00
										 |  |  | from sugar import util | 
					
						
							| 
									
										
										
										
											2007-01-16 01:21:15 +01:00
										 |  |  | from sugar.emulator import Emulator | 
					
						
							| 
									
										
										
										
											2006-10-16 13:35:07 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-01-16 01:21:15 +01:00
										 |  |  | if len(sys.argv) == 1: | 
					
						
							|  |  |  |     program = 'sugar-shell' | 
					
						
							|  |  |  | else: | 
					
						
							|  |  |  |     program = sys.argv[1] | 
					
						
							| 
									
										
										
										
											2006-10-16 17:22:05 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-02-16 11:39:41 +01:00
										 |  |  | # Various things in sugar currently depend on the screen size being in | 
					
						
							|  |  |  | # a width:height porportion of 4:3. | 
					
						
							| 
									
										
										
										
											2007-01-31 17:49:56 +01:00
										 |  |  | width = height = -1 | 
					
						
							|  |  |  | if gtk.gdk.screen_width() / 4 * 3 == gtk.gdk.screen_height(): | 
					
						
							|  |  |  |     fullscreen = (gtk.gdk.screen_width() <= 1200 or | 
					
						
							|  |  |  |                   gtk.gdk.screen_height() <= 900) | 
					
						
							|  |  |  | else: | 
					
						
							|  |  |  |     fullscreen = False | 
					
						
							| 
									
										
										
										
											2007-02-14 15:35:54 +01:00
										 |  |  |     height = min(900, gtk.gdk.screen_height() - 50) | 
					
						
							| 
									
										
										
										
											2007-01-31 18:04:11 +01:00
										 |  |  |     width = height * 4 / 3 | 
					
						
							| 
									
										
										
										
											2006-10-16 17:22:05 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-01-31 17:49:56 +01:00
										 |  |  | emulator = Emulator(width, height, fullscreen) | 
					
						
							| 
									
										
										
										
											2006-10-16 13:35:07 +02:00
										 |  |  | emulator.start() | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-02-03 19:41:00 +01:00
										 |  |  | if sourcedir: | 
					
						
							|  |  |  |     program = os.path.join(os.path.join(sourcedir, 'shell'), program) | 
					
						
							|  |  |  |     os.execlp('dbus-launch', 'dbus-launch', '--exit-with-session', program, sourcedir) | 
					
						
							|  |  |  | else: | 
					
						
							|  |  |  |     os.execlp('dbus-launch', 'dbus-launch', '--exit-with-session', program) |