]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/demo/ActiveXWrapper_IE.py
Updated DrawPolyPolygon note
[wxWidgets.git] / wxPython / demo / ActiveXWrapper_IE.py
index b103d15cf350d59c3a9eecd9e64fbbd4289a3612..02317ac11d1575e002f911c47c77b47d5ef2dbab 100644 (file)
@@ -11,94 +11,124 @@ you can use just like wxWindow, (set the size and position, use in a
 sizer, etc.) except its contents will be the COM control.
 
 <p>
 sizer, etc.) except its contents will be the COM control.
 
 <p>
-This demo embeds the Internet Exploer WebBrowser control, and shows
+This demo embeds the Internet Explorer WebBrowser control, and shows
 how to receive events from the COM control.  (The title bar and status
 bar are updated as pages change, in addition to the log messages being
 shown.)
 </body></html>
 """
 
 how to receive events from the COM control.  (The title bar and status
 bar are updated as pages change, in addition to the log messages being
 shown.)
 </body></html>
 """
 
-from wxPython.wx import *
+import  sys
+import  wx
 
 
-if wxPlatform == '__WXMSW__':
-    from wxPython.lib.activexwrapper import MakeActiveXClass
-    import win32com.client.gencache
+if wx.Platform == '__WXMSW__':
+    import  wx.lib.activexwrapper   as  ax
+    import  win32com.client.gencache
 
     try:
 
     try:
-        browserModule = win32com.client.gencache.EnsureModule("{EAB22AC0-30C1-11CF-A7EB-0000C05BAE0B}", 0, 1, 1)
+        browserModule = win32com.client.gencache.EnsureModule(
+            "{EAB22AC0-30C1-11CF-A7EB-0000C05BAE0B}", 0, 1, 1
+            )
     except:
         raise ImportError("IE4 or greater does not appear to be installed.")
 
 
 #----------------------------------------------------------------------
 
     except:
         raise ImportError("IE4 or greater does not appear to be installed.")
 
 
 #----------------------------------------------------------------------
 
-class TestPanel(wxWindow):
+class TestPanel(wx.Window):
     def __init__(self, parent, log, frame=None):
     def __init__(self, parent, log, frame=None):
-        wxWindow.__init__(self, parent, -1)#, style=wxCLIP_CHILDREN)
+        wx.Window.__init__(
+            self, parent, -1,
+            style=wx.CLIP_CHILDREN|wx.NO_FULL_REPAINT_ON_RESIZE
+            )
+
         self.ie = None
         self.log = log
         self.current = "http://wxPython.org/"
         self.frame = frame
         self.ie = None
         self.log = log
         self.current = "http://wxPython.org/"
         self.frame = frame
+
         if frame:
             self.titleBase = frame.GetTitle()
 
         if frame:
             self.titleBase = frame.GetTitle()
 
-
-        sizer = wxBoxSizer(wxVERTICAL)
-        btnSizer = wxBoxSizer(wxHORIZONTAL)
+        sizer = wx.BoxSizer(wx.VERTICAL)
+        btnSizer = wx.BoxSizer(wx.HORIZONTAL)
 
         # Make a new class that derives from the WebBrowser class in the
         # COM module imported above.  This class also derives from wxWindow and
         # implements the machinery needed to integrate the two worlds.
 
         # Make a new class that derives from the WebBrowser class in the
         # COM module imported above.  This class also derives from wxWindow and
         # implements the machinery needed to integrate the two worlds.
-        theClass = MakeActiveXClass(browserModule.WebBrowser,
-                                    eventObj = self)
+        theClass = ax.MakeActiveXClass(
+                        browserModule.WebBrowser, eventObj = self
+                        )
 
         # Create an instance of that class
 
         # Create an instance of that class
-        self.ie = theClass(self, -1, style=wxSUNKEN_BORDER)
+        self.ie = theClass(self, -1) ##, style=wxSUNKEN_BORDER)
+
 
 
+        btn = wx.Button(self, wx.NewId(), "Open", style=wx.BU_EXACTFIT)
+        self.Bind(wx.EVT_BUTTON, self.OnOpenButton, id=btn.GetId())
+        btnSizer.Add(btn, 0, wx.EXPAND|wx.ALL, 2)
 
 
-        #btn = wxButton(self, wxNewId(), " Open ")
-        #EVT_BUTTON(self, btn.GetId(), self.OnOpenButton)
-        #btnSizer.Add(btn, 0, wxEXPAND|wxALL, 5)
+        btn = wx.Button(self, wx.NewId(), "Home", style=wx.BU_EXACTFIT)
+        self.Bind(wx.EVT_BUTTON, self.OnHomeButton, id=btn.GetId())
+        btnSizer.Add(btn, 0, wx.EXPAND|wx.ALL, 2)
 
 
-        btn = wxButton(self, wxNewId(), " Home ")
-        EVT_BUTTON(self, btn.GetId(), self.OnHomeButton)
-        btnSizer.Add(btn, 0, wxEXPAND|wxALL, 5)
+        btn = wx.Button(self, wx.NewId(), "<--", style=wx.BU_EXACTFIT)
+        self.Bind(wx.EVT_BUTTON, self.OnPrevPageButton, id=btn.GetId())
+        btnSizer.Add(btn, 0, wx.EXPAND|wx.ALL, 2)
 
 
-        btn = wxButton(self, wxNewId(), " <-- ")
-        EVT_BUTTON(self, btn.GetId(), self.OnPrevPageButton)
-        btnSizer.Add(btn, 0, wxEXPAND|wxALL, 5)
+        btn = wx.Button(self, wx.NewId(), "-->", style=wx.BU_EXACTFIT)
+        self.Bind(wx.EVT_BUTTON, self.OnNextPageButton, id=btn.GetId())
+        btnSizer.Add(btn, 0, wx.EXPAND|wx.ALL, 2)
 
 
-        btn = wxButton(self, wxNewId(), " --> ")
-        EVT_BUTTON(self, btn.GetId(), self.OnNextPageButton)
-        btnSizer.Add(btn, 0, wxEXPAND|wxALL, 5)
+        btn = wx.Button(self, wx.NewId(), "Stop", style=wx.BU_EXACTFIT)
+        self.Bind(wx.EVT_BUTTON, self.OnStopButton, id=btn.GetId())
+        btnSizer.Add(btn, 0, wx.EXPAND|wx.ALL, 2)
 
 
-        txt = wxStaticText(self, -1, "Location:")
-        btnSizer.Add(txt, 0, wxCENTER|wxALL, 5)
+        btn = wx.Button(self, wx.NewId(), "Search", style=wx.BU_EXACTFIT)
+        self.Bind(wx.EVT_BUTTON, self.OnSearchPageButton, id=btn.GetId())
+        btnSizer.Add(btn, 0, wx.EXPAND|wx.ALL, 2)
 
 
-        self.location = wxComboBox(self, wxNewId(), "", style=wxCB_DROPDOWN)
-        EVT_COMBOBOX(self, self.location.GetId(), self.OnLocationSelect)
-        EVT_KEY_UP(self.location, self.OnLocationKey)
-        #EVT_CHAR(self.location, self.IgnoreReturn)
-        btnSizer.Add(self.location, 1, wxEXPAND|wxALL, 5)
+        btn = wx.Button(self, wx.NewId(), "Refresh", style=wx.BU_EXACTFIT)
+        self.Bind(wx.EVT_BUTTON, self.OnRefreshPageButton, id=btn.GetId())
+        btnSizer.Add(btn, 0, wx.EXPAND|wx.ALL, 2)
 
 
-        sizer.Add(btnSizer, 0, wxEXPAND)
-        sizer.Add(self.ie, 1, wxEXPAND)
+        txt = wx.StaticText(self, -1, "Location:")
+        btnSizer.Add(txt, 0, wx.CENTER|wx.ALL, 2)
+
+        self.location = wx.ComboBox(self, wx.NewId(), "", style=wx.CB_DROPDOWN)
+        self.Bind(wx.EVT_COMBOBOX, self.OnLocationSelect, id=self.location.GetId())
+        self.Bind(wx.EVT_KEY_UP, self.OnLocationKey, self.location)
+        self.Bind(wx.EVT_CHAR, self.IgnoreReturn, self.location)
+        btnSizer.Add(self.location, 1, wx.EXPAND|wx.ALL, 2)
+
+        sizer.Add(btnSizer, 0, wx.EXPAND)
+        sizer.Add(self.ie, 1, wx.EXPAND)
 
         self.ie.Navigate(self.current)
         self.location.Append(self.current)
 
         self.SetSizer(sizer)
 
         self.ie.Navigate(self.current)
         self.location.Append(self.current)
 
         self.SetSizer(sizer)
-        self.SetAutoLayout(true)
-        EVT_SIZE(self, self.OnSize)
+        self.SetAutoLayout(True)
+        self.Bind(wx.EVT_SIZE, self.OnSize)
+        self.Bind(wx.EVT_WINDOW_DESTROY, self.OnDestroy)
 
 
 
 
-    def OnSize(self, evt):
-        self.Layout()
+    def ShutdownDemo(self):
+        # put the frame title back
+        if self.frame:
+            self.frame.SetTitle(self.titleBase)
+
 
 
-    def __del__(self):
+    def OnDestroy(self, evt):
         if self.ie:
             self.ie.Cleanup()
             self.ie = None
         if self.ie:
             self.ie.Cleanup()
             self.ie = None
+            self.frame = None
+
+
+    def OnSize(self, evt):
+        self.Layout()
+
 
     def OnLocationSelect(self, evt):
         url = self.location.GetStringSelection()
 
     def OnLocationSelect(self, evt):
         url = self.location.GetStringSelection()
@@ -106,7 +136,7 @@ class TestPanel(wxWindow):
         self.ie.Navigate(url)
 
     def OnLocationKey(self, evt):
         self.ie.Navigate(url)
 
     def OnLocationKey(self, evt):
-        if evt.KeyCode() == WXK_RETURN:
+        if evt.KeyCode() == wx.WXK_RETURN:
             URL = self.location.GetValue()
             self.location.Append(URL)
             self.ie.Navigate(URL)
             URL = self.location.GetValue()
             self.location.Append(URL)
             self.ie.Navigate(URL)
@@ -115,17 +145,20 @@ class TestPanel(wxWindow):
 
     def IgnoreReturn(self, evt):
         print 'IgnoreReturn'
 
     def IgnoreReturn(self, evt):
         print 'IgnoreReturn'
-        if evt.KeyCode() != WXK_RETURN:
+        if evt.KeyCode() != wx.WXK_RETURN:
             evt.Skip()
 
     def OnOpenButton(self, event):
             evt.Skip()
 
     def OnOpenButton(self, event):
-        dlg = wxTextEntryDialog(self, "Open Location",
+        dlg = wx.TextEntryDialog(self, "Open Location",
                                 "Enter a full URL or local path",
                                 "Enter a full URL or local path",
-                                self.current, wxOK|wxCANCEL)
+                                self.current, wx.OK|wx.CANCEL)
+
         dlg.CentreOnParent()
         dlg.CentreOnParent()
-        if dlg.ShowModal() == wxID_OK:
+
+        if dlg.ShowModal() == wx.ID_OK:
             self.current = dlg.GetValue()
             self.ie.Navigate(self.current)
             self.current = dlg.GetValue()
             self.ie.Navigate(self.current)
+
         dlg.Destroy()
 
     def OnHomeButton(self, event):
         dlg.Destroy()
 
     def OnHomeButton(self, event):
@@ -134,10 +167,18 @@ class TestPanel(wxWindow):
     def OnPrevPageButton(self, event):
         self.ie.GoBack()
 
     def OnPrevPageButton(self, event):
         self.ie.GoBack()
 
-
     def OnNextPageButton(self, event):
         self.ie.GoForward()
 
     def OnNextPageButton(self, event):
         self.ie.GoForward()
 
+    def OnStopButton(self, evt):
+        self.ie.Stop()
+
+    def OnSearchPageButton(self, evt):
+        self.ie.GoSearch()
+
+    def OnRefreshPageButton(self, evt):
+        self.ie.Refresh2(3)
+
 
     # The following event handlers are called by the web browser COM
     # control since  we passed self to MakeActiveXClass.  It will look
 
     # The following event handlers are called by the web browser COM
     # control since  we passed self to MakeActiveXClass.  It will look
@@ -166,12 +207,12 @@ class TestPanel(wxWindow):
 # for the demo framework...
 
 def runTest(frame, nb, log):
 # for the demo framework...
 
 def runTest(frame, nb, log):
-    if wxPlatform == '__WXMSW__':
+    if wx.Platform == '__WXMSW__':
         win = TestPanel(nb, log, frame)
         return win
     else:
         win = TestPanel(nb, log, frame)
         return win
     else:
-        dlg = wxMessageDialog(frame, 'This demo only works on MSW.',
-                          'Sorry', wxOK | wxICON_INFORMATION)
+        dlg = wx.MessageDialog(frame, 'This demo only works on MSW.',
+                          'Sorry', wx.OK | wx.ICON_INFORMATION)
         dlg.ShowModal()
         dlg.Destroy()
 
         dlg.ShowModal()
         dlg.Destroy()
 
@@ -182,24 +223,24 @@ overview = __doc__
 
 
 if __name__ == '__main__':
 
 
 if __name__ == '__main__':
-    class TestFrame(wxFrame):
+    class TestFrame(wx.Frame):
         def __init__(self):
         def __init__(self):
-            wxFrame.__init__(self, None, -1, "ActiveX test -- Internet Explorer",
-                             size=(640, 480),
-                             style=wxDEFAULT_FRAME_STYLE|wxNO_FULL_REPAINT_ON_RESIZE)
+            wx.Frame.__init__(
+                self, None, -1, "ActiveX test -- Internet Explorer",
+                size=(640, 480),
+                style=wx.DEFAULT_FRAME_STYLE|wx.NO_FULL_REPAINT_ON_RESIZE
+                )
+
             self.CreateStatusBar()
             self.tp = TestPanel(self, sys.stdout, self)
             self.CreateStatusBar()
             self.tp = TestPanel(self, sys.stdout, self)
-            EVT_CLOSE(self, self.OnCloseWindow)
+            self.Bind(wx.EVT_CLOSE, self.OnCloseWindow)
 
 
-        def OnCloseWindow(self, event):
-            self.tp.ie.Cleanup()
+        def OnCloseWindow(self, evt):
+            self.tp.Destroy()
             self.Destroy()
 
             self.Destroy()
 
-
-    app = wxPySimpleApp()
+    app = wx.PySimpleApp()
     frame = TestFrame()
     frame = TestFrame()
-    frame.Show(true)
+    frame.Show(True)
     app.MainLoop()
 
     app.MainLoop()
 
-
-