+//---------------------------------------------------------------------------
+#ifndef __WXMAC__
+
+// wxPopupWindow: a special kind of top level window used for popup menus,
+// combobox popups and such.
+class wxPopupWindow : public wxWindow {
+public:
+ wxPopupWindow(wxWindow *parent, int flags = wxBORDER_NONE);
+ %name(wxPrePopupWindow)wxPopupWindow();
+
+ %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
+ %pragma(python) addtomethod = "wxPrePopupWindow:val._setOORInfo(val)"
+
+ bool Create(wxWindow *parent, int flags = wxBORDER_NONE);
+
+ // the point must be given in screen coordinates!
+ void Position(const wxPoint& ptOrigin,
+ const wxSize& size);
+};
+
+
+%{
+class wxPyPopupTransientWindow : public wxPopupTransientWindow
+{
+public:
+ wxPyPopupTransientWindow() : wxPopupTransientWindow() {}
+ wxPyPopupTransientWindow(wxWindow* parent, int style = wxBORDER_NONE)
+ : wxPopupTransientWindow(parent, style) {}
+
+ DEC_PYCALLBACK_BOOL_ME(ProcessLeftDown);
+ DEC_PYCALLBACK__(OnDismiss);
+ DEC_PYCALLBACK_BOOL_(CanDismiss);
+ PYPRIVATE;
+};
+
+IMP_PYCALLBACK_BOOL_ME(wxPyPopupTransientWindow, wxPopupTransientWindow, ProcessLeftDown);
+IMP_PYCALLBACK__(wxPyPopupTransientWindow, wxPopupTransientWindow, OnDismiss);
+IMP_PYCALLBACK_BOOL_(wxPyPopupTransientWindow, wxPopupTransientWindow, CanDismiss);
+%}
+
+
+
+// wxPopupTransientWindow: a wxPopupWindow which disappears automatically
+// when the user clicks mouse outside it or if it loses focus in any other way
+%name(wxPopupTransientWindow) class wxPyPopupTransientWindow : public wxPopupWindow
+{
+public:
+ wxPyPopupTransientWindow(wxWindow *parent, int style = wxBORDER_NONE);
+ %name(wxPrePopupTransientWindow)wxPyPopupTransientWindow();
+
+ void _setCallbackInfo(PyObject* self, PyObject* _class);
+ %pragma(python) addtomethod = "__init__:self._setCallbackInfo(self, wxPopupTransientWindow)"
+
+ %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
+ %pragma(python) addtomethod = "wxPrePopupTransientWindow:val._setOORInfo(val)"
+
+ // popup the window (this will show it too) and keep focus at winFocus
+ // (or itself if it's NULL), dismiss the popup if we lose focus
+ virtual void Popup(wxWindow *focus = NULL);
+
+ // hide the window
+ virtual void Dismiss();
+};
+