-        #win.SetPosition((200, 200))
-        #win.SetSize((150, 150))
-        win.Position((200, 200), (150, 150))
-        win.SetBackgroundColour("CADET BLUE")
+
+        # 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.Show(true)
+
+
+    def OnShowPopupTransient(self, evt):
+        win = TestTransientPopup(self, wxSIMPLE_BORDER, self.log)
+
+        # 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()
+
+
+    def OnShowPopupListbox(self, evt):
+        win = TestPopupWithListbox(self, wxNO_BORDER, self.log)
+
+        # 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))
+