X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f6bcfd974ef26faf6f91a62cac09827e09463fd1..a92b0cfd2bd0bef75b43c071df0b0e028f360d8e:/wxPython/src/windows3.i diff --git a/wxPython/src/windows3.i b/wxPython/src/windows3.i index c51028773b..570e9fba29 100644 --- a/wxPython/src/windows3.i +++ b/wxPython/src/windows3.i @@ -16,6 +16,10 @@ #include "helpers.h" #include #include +#ifndef __WXMAC__ +#include +#include +#endif %} //---------------------------------------------------------------------- @@ -47,6 +51,9 @@ enum wxSashEdgePosition { enum { wxEVT_SASH_DRAGGED, wxSW_3D, + wxSW_3DSASH, + wxSW_3DBORDER, + wxSW_BORDER }; enum wxSashDragStatus @@ -58,6 +65,8 @@ enum wxSashDragStatus class wxSashEvent : public wxCommandEvent { public: + wxSashEvent(int id = 0, wxSashEdgePosition edge = wxSASH_NONE); + void SetEdge(wxSashEdgePosition edge); wxSashEdgePosition GetEdge(); void SetDragRect(const wxRect& rect); @@ -71,12 +80,20 @@ public: class wxSashWindow: public wxWindow { public: wxSashWindow(wxWindow* parent, wxWindowID id, - const wxPoint& pos = wxPyDefaultPosition, - const wxSize& size = wxPyDefaultSize, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, long style = wxCLIP_CHILDREN | wxSW_3D, const char* name = "sashWindow"); + %name(wxPreSashWindow)wxSashWindow(); - %pragma(python) addtomethod = "__init__:#wx._StdWindowCallbacks(self)" + bool Create(wxWindow* parent, wxWindowID id, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + 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(); @@ -123,6 +140,7 @@ enum { class wxQueryLayoutInfoEvent: public wxEvent { public: + wxQueryLayoutInfoEvent(wxWindowID id = 0); void SetRequestedLength(int length); int GetRequestedLength(); @@ -140,6 +158,8 @@ public: class wxCalculateLayoutEvent: public wxEvent { public: + wxCalculateLayoutEvent(wxWindowID id = 0); + void SetFlags(int flags); int GetFlags(); void SetRect(const wxRect& rect); @@ -150,15 +170,20 @@ public: class wxSashLayoutWindow: public wxSashWindow { public: wxSashLayoutWindow(wxWindow* parent, wxWindowID id, - const wxPoint& pos = wxPyDefaultPosition, - const wxSize& size = wxPyDefaultSize, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, long style = wxCLIP_CHILDREN | wxSW_3D, const char* name = "layoutWindow"); + %name(wxPreSashLayoutWindow)wxSashLayoutWindow(); - %pragma(python) addtomethod = "__init__:#wx._StdWindowCallbacks(self)" - %pragma(python) addtomethod = "__init__:#wx._checkForCallback(self, 'OnCalculateLayout', wxEVT_CALCULATE_LAYOUT)" - %pragma(python) addtomethod = "__init__:#wx._checkForCallback(self, 'OnQueryLayoutInfo', wxEVT_QUERY_LAYOUT_INFO)" + bool Create(wxWindow* parent, wxWindowID id, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + 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(); @@ -169,7 +194,7 @@ public: //--------------------------------------------------------------------------- -class wxLayoutAlgorithm { +class wxLayoutAlgorithm : public wxObject { public: wxLayoutAlgorithm(); ~wxLayoutAlgorithm(); @@ -181,7 +206,80 @@ 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(); +}; + //--------------------------------------------------------------------------- + +class wxTipWindow : public wxPyPopupTransientWindow +{ +public: + wxTipWindow(wxWindow *parent, + const wxString& text, + wxCoord maxLength = 100); + + %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" +}; + + +//--------------------------------------------------------------------------- + +#endif