+//---------------------------------------------------------------------------
+#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);
+ PYPRIVATE;
+};
+
+IMP_PYCALLBACK_BOOL_ME(wxPyPopupTransientWindow, wxPopupTransientWindow, ProcessLeftDown);
+IMP_PYCALLBACK__(wxPyPopupTransientWindow, wxPopupTransientWindow, OnDismiss);
+%}
+
+
+
+// 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();
+};
+
+//---------------------------------------------------------------------------
+
+class wxTipWindow : public wxPyPopupTransientWindow
+{
+public:
+ %addmethods {
+ wxTipWindow(wxWindow *parent,
+ const wxString* text,
+ wxCoord maxLength = 100,
+ wxRect* rectBound = NULL) {
+ wxString tmp = *text;
+ return new wxTipWindow(parent, tmp, maxLength, NULL, rectBound);
+ }
+ }
+
+ %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
+
+ // If rectBound is not NULL, the window will disappear automatically when
+ // the mouse leave the specified rect: note that rectBound should be in the
+ // screen coordinates!
+ void SetBoundingRect(const wxRect& rectBound);
+
+ // Hide and destroy the window
+ void Close();
+};
+
+