X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8eca4fef106b8327e2e55636de3f68a511a4c392..b4eecebd423df0c6efe86d7658cd3df818d67ed8:/wxPython/demo/PopupWindow.py?ds=sidebyside diff --git a/wxPython/demo/PopupWindow.py b/wxPython/demo/PopupWindow.py index 39d4080c4c..cc2de54b36 100644 --- a/wxPython/demo/PopupWindow.py +++ b/wxPython/demo/PopupWindow.py @@ -48,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() @@ -73,9 +76,8 @@ class TestTransientPopup(wx.PopupTransientWindow): 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, + self.SetBackgroundColour("#FFB6C1") + st = wx.StaticText(self, -1, "wx.PopupTransientWindow is a\n" "wx.PopupWindow which disappears\n" "automatically when the user\n" @@ -85,8 +87,7 @@ class TestTransientPopup(wx.PopupTransientWindow): , pos=(10,10)) sz = st.GetBestSize() - panel.SetSize( (sz.width+20, sz.height+20) ) - self.SetSize(panel.GetSize()) + self.SetSize( (sz.width+20, sz.height+20) ) def ProcessLeftDown(self, evt): self.log.write("ProcessLeftDown\n") @@ -117,6 +118,7 @@ class TestPanel(wx.Panel): def OnShowPopup(self, evt): win = TestPopup(self, wx.SIMPLE_BORDER) + #win = TestPopupWithListbox(self, wx.SIMPLE_BORDER, self.log) # Show the popup right below or above the button # depending on available screen space... @@ -129,7 +131,9 @@ class TestPanel(wx.Panel): def OnShowPopupTransient(self, evt): - win = TestTransientPopup(self, wx.SIMPLE_BORDER, self.log) + win = TestTransientPopup(self, + wx.SIMPLE_BORDER, + self.log) # Show the popup right below or above the button # depending on available screen space... @@ -153,6 +157,8 @@ 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 @@ -160,31 +166,25 @@ class TestPanel(wx.Panel): class TestPopupWithListbox(wx.PopupWindow): def __init__(self, parent, style, log): wx.PopupWindow.__init__(self, parent, style) - + self.log = log import keyword - self.lb = wx.ListBox(self, -1, choices = keyword.kwlist) #sz = self.lb.GetBestSize() self.SetSize((150, 75)) #sz) self.lb.SetSize(self.GetClientSize()) self.lb.SetFocus() self.Bind(wx.EVT_LISTBOX, self.OnListBox) - self.lb.Bind(wx.EVT_LEFT_DOWN, self.OnLeft) - - def OnLeft(self, evt): - obj = evt.GetEventObject() - print "OnLeft", obj - print 'Selected: %s' % obj.GetStringSelection() - obj.Show(False) - evt.Skip() + self.Bind(wx.EVT_LISTBOX_DCLICK, self.OnListBoxDClick) def OnListBox(self, evt): obj = evt.GetEventObject() - print "OnListBox", obj - print 'Selected: %s' % obj.GetString() + self.log.write("OnListBox: %s\n" % obj) + self.log.write('Selected: %s\n' % obj.GetString(evt.GetInt())) evt.Skip() - + def OnListBoxDClick(self, evt): + self.Hide() + self.Destroy() #--------------------------------------------------------------------------- @@ -193,12 +193,10 @@ def runTest(frame, nb, log): win = TestPanel(nb, log) return win else: - dlg = wx.MessageDialog( - frame, 'wx.PopupWindow 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 #---------------------------------------------------------------------------