MCPcopy Create free account
hub / github.com/cztomczak/cefpython / MainFrame

Class MainFrame

src/cefpython3.wx/examples/sample2.py:30–94  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

28
29
30class MainFrame(wx.Frame):
31 def __init__(self):
32 wx.Frame.__init__(self, parent=None, id=wx.ID_ANY,
33 title='cefwx example2', size=(800, 600))
34
35 self.initComponents()
36 self.layoutComponents()
37 self.initEventHandlers()
38 if len(sys.argv) == 2 and sys.argv[1] == "test-launch":
39 wx.CallLater(500, self.testLaunch)
40
41 def testLaunch(self):
42 # This hash is checked by /tests/test-launch.sh script
43 # to detect whether CEF initialized successfully.
44 print("b8ba7d9945c22425328df2e21fbb64cd")
45 self.Close()
46
47 def initComponents(self):
48 self.tree = wx.TreeCtrl(self, id=-1, size=(200, -1))
49 self.root = self.tree.AddRoot(ROOT_NAME)
50 for url in URLS:
51 self.tree.AppendItem(self.root, url)
52 self.tree.Expand(self.root)
53
54 self.tabs = fnb.FlatNotebook(self, wx.ID_ANY,
55 agwStyle=fnb.FNB_NODRAG | fnb.FNB_X_ON_TAB)
56 # You also have to set the wx.WANTS_CHARS style for
57 # all parent panels/controls, if it's deeply embedded.
58 self.tabs.SetWindowStyleFlag(wx.WANTS_CHARS)
59
60 def layoutComponents(self):
61 sizer = wx.BoxSizer(wx.HORIZONTAL)
62 sizer.Add(self.tree, 0, wx.EXPAND)
63 sizer.Add(self.tabs, 1, wx.EXPAND)
64 self.SetSizer(sizer)
65
66 def initEventHandlers(self):
67 self.Bind(wx.EVT_TREE_SEL_CHANGED, self.OnSelChanged, self.tree)
68 self.Bind(fnb.EVT_FLATNOTEBOOK_PAGE_CLOSING, self.OnPageClosing)
69 self.Bind(wx.EVT_CLOSE, self.OnClose)
70
71 def OnSelChanged(self, event):
72 self.item = event.GetItem()
73 url = self.tree.GetItemText(self.item)
74 if url and url != ROOT_NAME:
75 cefPanel = chrome.ChromeCtrl(self.tabs, useTimer=True, url=str(url))
76 self.tabs.AddPage(cefPanel, url)
77 self.tabs.SetSelection(self.tabs.GetPageCount()-1)
78 event.Skip()
79
80 def OnPageClosing(self, event):
81 print("sample2.py: One could place some extra closing stuff here")
82 event.Skip()
83
84 def OnClose(self, event):
85 # Remember to destroy all CEF browser references before calling
86 # Destroy(), so that browser closes cleanly. In this specific
87 # example there are no references kept, but keep this in mind

Callers 1

OnInitMethod · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected