X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/299647acac7960652aadb008775429c1f8ea9b8d..16cfbafc6a80aef131ab2634fa64e9748632c591:/wxPython/demo/PopupWindow.py diff --git a/wxPython/demo/PopupWindow.py b/wxPython/demo/PopupWindow.py index cc4d71b83f..b04ab04093 100644 --- a/wxPython/demo/PopupWindow.py +++ b/wxPython/demo/PopupWindow.py @@ -1,29 +1,22 @@ -# 11/20/2003 - Jeff Grimmett (grimmtooth@softhome.net) -# -# o Updated for wx namespace # # 11/30/2003 - Jeff Grimmett (grimmtooth@softhome.net) # # o Some issues with the listbox example; I tried correcting # it but it's still not working the way it should. Commented -# out for now but will be revisited. -# o The math in determining the popup window's position is -# a bit off. +# out for now, as I found it. # import wx havePopupWindow = 1 -try: - wx.PopupWindow -except NameError: +if wx.Platform == '__WXMAC__': havePopupWindow = 0 wx.PopupWindow = wx.PopupTransientWindow = wx.Window #--------------------------------------------------------------------------- class TestPopup(wx.PopupWindow): - """Adds a bit of text and mouse movement to the wxPopupWindow""" + """Adds a bit of text and mouse movement to the wx.PopupWindow""" def __init__(self, parent, style): wx.PopupWindow.__init__(self, parent, style) self.SetBackgroundColour("CADET BLUE") @@ -55,7 +48,10 @@ class TestPopup(wx.PopupWindow): st.Bind(wx.EVT_LEFT_UP, self.OnMouseLeftUp) st.Bind(wx.EVT_RIGHT_UP, self.OnRightUp) + wx.CallAfter(self.Refresh) + def OnMouseLeftDown(self, evt): + self.Refresh() self.ldPos = evt.GetEventObject().ClientToScreen(evt.GetPosition()) self.wPos = self.ClientToScreen((0,0)) self.CaptureMouse() @@ -76,15 +72,15 @@ class TestPopup(wx.PopupWindow): class TestTransientPopup(wx.PopupTransientWindow): - """Adds a bit of text and mouse movement to the wxPopupWindow""" + """Adds a bit of text and mouse movement to the wx.PopupWindow""" def __init__(self, parent, style, log): wx.PopupTransientWindow.__init__(self, parent, style) self.log = log panel = wx.Panel(self, -1) panel.SetBackgroundColour("#FFB6C1") st = wx.StaticText(panel, -1, - "wxPopupTransientWindow is a\n" - "wxPopupWindow which disappears\n" + "wx.PopupTransientWindow is a\n" + "wx.PopupWindow which disappears\n" "automatically when the user\n" "clicks the mouse outside it or if it\n" "(or its first child) loses focus in \n" @@ -109,16 +105,16 @@ class TestPanel(wx.Panel): wx.Panel.__init__(self, parent, -1) self.log = log - b = wx.Button(self, -1, "Show wxPopupWindow", (25, 50)) + b = wx.Button(self, -1, "Show wx.PopupWindow", (25, 50)) self.Bind(wx.EVT_BUTTON, self.OnShowPopup, b) - b = wx.Button(self, -1, "Show wxPopupTransientWindow", (25, 95)) + b = wx.Button(self, -1, "Show wx.PopupTransientWindow", (25, 95)) self.Bind(wx.EVT_BUTTON, self.OnShowPopupTransient, b) # This isn't working so well, not sure why. Commented out for # now. -# b = wx.Button(self, -1, "Show wxPopupWindow with listbox", (25, 140)) +# b = wx.Button(self, -1, "Show wx.PopupWindow with listbox", (25, 140)) # self.Bind(wx.EVT_BUTTON, self.OnShowPopupListbox, b) @@ -160,6 +156,10 @@ class TestPanel(wx.Panel): win.Show(True) +# This class is currently not implemented in the demo. It does not +# behave the way it should, so for the time being it's only here +# for show. If you figure out how to make it work, please send +# a corrected file to Robin! class TestPopupWithListbox(wx.PopupWindow): def __init__(self, parent, style, log): wx.PopupWindow.__init__(self, parent, style) @@ -196,13 +196,10 @@ def runTest(frame, nb, log): win = TestPanel(nb, log) return win else: - dlg = wx.MessageDialog( - frame, 'wxPopupWindow is not available on this platform.', - 'Sorry', wx.OK | wx.ICON_INFORMATION - ) - - dlg.ShowModal() - dlg.Destroy() + from Main import MessagePanel + win = MessagePanel(nb, 'wx.PopupWindow is not available on this platform.', + 'Sorry', wx.ICON_WARNING) + return win #--------------------------------------------------------------------------- @@ -214,5 +211,5 @@ overview = """\ if __name__ == '__main__': import sys,os import run - run.main(['', os.path.basename(sys.argv[0])]) + run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:])