def OnMouseLeftDown(self, evt):
self.ldPos = evt.GetEventObject().ClientToScreen(evt.GetPosition())
- self.wPos = self.GetParent().ClientToScreen(self.GetPosition())
+ self.wPos = self.GetPosition()
self.CaptureMouse()
def OnMouseMotion(self, evt):
def OnMouseLeftUp(self, evt):
self.ReleaseMouse()
-
def OnRightUp(self, evt):
self.Show(false)
self.Destroy()
class TestTransientPopup(wxPopupTransientWindow):
"""Adds a bit of text and mouse movement to the wxPopupWindow"""
- def __init__(self, parent, style):
+ def __init__(self, parent, style, log):
wxPopupTransientWindow.__init__(self, parent, style)
- self.SetBackgroundColour("#FFB6C1")
- st = wxStaticText(self, -1,
+ self.log = log
+ panel = wxPanel(self, -1)
+ panel.SetBackgroundColour("#FFB6C1")
+ st = wxStaticText(panel, -1,
"wxPopupTransientWindow is a\n"
"wxPopupWindow which disappears\n"
"automatically when the user\n"
,
pos=(10,10))
sz = st.GetBestSize()
- self.SetSize( (sz.width+20, sz.height+20) )
+ panel.SetSize( (sz.width+20, sz.height+20) )
+ self.SetSize(panel.GetSize())
+ def ProcessLeftDown(self, evt):
+ self.log.write("ProcessLeftDown\n")
+ return false
+
+ def OnDismiss(self):
+ self.log.write("OnDismiss\n")
+
class TestPanel(wxPanel):
def __init__(self, parent, log):
def OnShowPopupTransient(self, evt):
- win = TestTransientPopup(self, wxSIMPLE_BORDER)
+ win = TestTransientPopup(self, wxSIMPLE_BORDER, self.log)
- # show the popup right below or above the button
+ # Show the popup right below or above the button
+ # depending on available screen space...
btn = evt.GetEventObject()
pos = btn.ClientToScreen( (0,0) )
sz = btn.GetSize()
win.Position(pos, (0, sz.height))
- win.Popup(btn)
+ win.Popup()