Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Simple sample ilustrating the usage of CEFWindow class.
- # On Mac the cefpython library must be imported the very first,
- # before any other libraries (Issue 155).
- import cefpython3.wx.chromectrl as chrome
- import os
- import wx
- import platform
- class MyBindings:
- def __init__(self, mainBrowser):
- self.mainBrowser = mainBrowser
- def sendmsgnow(self, message):
- print("[app-testing.py] sendmsgnow: "+message)
- self.sendmsgback(message)
- def sendmsgback(self, message):
- print(message)
- #self.mainBrowser.GetMainFrame().ExecuteFunction("getmsg",message)
- #chrome.ChromeWindow.GetBrowser.GetMainFrame().ExecuteFunction("getmsg",message)
- self.cefWindow.GetBrowser.GetMainFrame().ExecuteFunction("getmsg",message)
- class MainFrame(wx.Frame):
- def __init__(self):
- wx.Frame.__init__(self, parent=None, id=wx.ID_ANY,
- title='Test Window', size=(800,600))
- self.cefWindow = chrome.ChromeWindow(self,
- url=os.path.join(os.path.dirname(os.path.abspath(__file__)),
- "testapp.html"))
- sizer = wx.BoxSizer()
- sizer.Add(self.cefWindow, 1, wx.EXPAND, 0)
- self.SetSizer(sizer)
- bindings = chrome.cefpython.JavascriptBindings(bindToFrames=False, bindToPopups=True)
- self.MyBindingsObject = MyBindings(self.cefWindow)
- bindings.SetObject("external", self.MyBindingsObject)
- self.cefWindow.browser.SetJavascriptBindings(bindings)
- self.Bind(wx.EVT_CLOSE, self.OnClose)
- def OnClose(self, event):
- # Remember to destroy all CEF browser references before calling
- # Destroy(), so that browser closes cleanly. In this specific
- # example there are no references kept, but keep this in mind
- # for the future.
- self.Destroy()
- # On Mac the code after app.MainLoop() never executes, so
- # need to call CEF shutdown here.
- if platform.system() == "Darwin":
- chrome.Shutdown()
- wx.GetApp().Exit()
- class MyApp(wx.App):
- def OnInit(self):
- frame = MainFrame()
- self.SetTopWindow(frame)
- frame.Show()
- return True
- if __name__ == '__main__':
- chrome.Initialize({
- "debug": True,
- "log_file": "debug.log",
- "log_severity": chrome.cefpython.LOGSEVERITY_INFO,
- "release_dcheck_enabled": True,
- # "cache_path": "webcache/",
- })
- print('[app-custom.py] wx.version=%s' % wx.version())
- app = MyApp(False)
- app.MainLoop()
- # Important: do the wx cleanup before calling Shutdown
- del app
- # On Mac Shutdown is called in OnClose
- if platform.system() in ["Linux", "Windows"]:
- chrome.Shutdown()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement