OctoPrint/Cura/gui/splashScreen.py

40 lines
1.1 KiB
Python

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()