import sys, os
#We only need the core here, which speeds up the import. As we want to show the splashscreen ASAP.
import wx._core

def getBitmapImage(filename):
	#The frozen executable has the script files in a zip, so we need to exit another level to get to our images.
	if hasattr(sys, 'frozen'):
		return wx.Bitmap(os.path.normpath(os.path.join(os.path.split(__file__)[0], "../../images", filename)))
	else:
		return wx.Bitmap(os.path.normpath(os.path.join(os.path.split(__file__)[0], "../images", filename)))

class splashScreen(wx.SplashScreen):
	def __init__(self, callback):
		self.callback = callback
		bitmap = getBitmapImage("splash.png")
		super(splashScreen, self).__init__(bitmap, wx.SPLASH_CENTRE_ON_SCREEN, 0, None)
		wx.CallAfter(self.DoCallback)
	
	def DoCallback(self):
		self.callback(self)
		self.Destroy()

def showSplash(callback):
	app = wx.App(False)
	splashScreen(callback)
	app.MainLoop()

def testCallback(splashscreen):
	print "Callback!"
	import time
	time.sleep(2)
	print "!Callback"

def main():
	showSplash(testCallback)

if __name__ == u'__main__':
	main()

