]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/windows3.i
Demo cleanup
[wxWidgets.git] / wxPython / src / windows3.i
index 6b99ab1f322a8292d24fe371d312bea9e0dd7718..1b0179a8244c08691dc2feb241d2875e053eb05f 100644 (file)
@@ -16,6 +16,9 @@
 #include "helpers.h"
 #include <wx/sashwin.h>
 #include <wx/laywin.h>
+#ifndef __WXMAC__
+#include <wx/popupwin.h>
+#endif
 %}
 
 //----------------------------------------------------------------------
@@ -88,6 +91,9 @@ public:
                  long style = wxCLIP_CHILDREN | wxSW_3D,
                  const char* name = "sashWindow");
 
+    %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
+    %pragma(python) addtomethod = "wxPreSashWindow:val._setOORInfo(val)"
+
     bool GetSashVisible(wxSashEdgePosition edge);
     int GetDefaultBorderSize();
     int GetEdgeMargin(wxSashEdgePosition edge);
@@ -175,6 +181,9 @@ public:
                 long style = wxCLIP_CHILDREN | wxSW_3D,
                 const char* name = "layoutWindow");
 
+    %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
+    %pragma(python) addtomethod = "wxPreSashLayoutWindow:val._setOORInfo(val)"
+
     wxLayoutAlignment GetAlignment();
     wxLayoutOrientation GetOrientation();
     void SetAlignment(wxLayoutAlignment alignment);
@@ -196,4 +205,67 @@ public:
 
 
 //---------------------------------------------------------------------------
+#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();
+};
+
+#endif
+//---------------------------------------------------------------------------