X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1b8c7ba607a15a2ff8a04448138df9ffff7df6c5..9c383901330c5c6d53a277c0549ae0eac6f0ecff:/wxPython/src/_window.i diff --git a/wxPython/src/_window.i b/wxPython/src/_window.i index 7386f5e087..8bb7459a19 100644 --- a/wxPython/src/_window.i +++ b/wxPython/src/_window.i @@ -175,12 +175,12 @@ Extra Styles wx.WS_EX_PROCESS_IDLE This window should always process idle events, even if the mode set by - wx.IdleEvent.SetMode is + `wx.IdleEvent.SetMode` is wx.IDLE_PROCESS_SPECIFIED. wx.WS_EX_PROCESS_UI_UPDATES This window should always process UI update events, even if the mode - set by wxUpdateUIEvent::SetMode is + set by `wx.UpdateUIEvent.SetMode` is wxUPDATE_UI_PROCESS_SPECIFIED. ============================= ===================================== @@ -259,6 +259,7 @@ instead."); + %pythonAppend Destroy "args[0].thisown = 0" DocDeclStr( virtual bool , Destroy(), "Destroys the window safely. Frames and dialogs are not destroyed @@ -286,14 +287,13 @@ destructor.", ""); // window attributes // ----------------- - DocDeclStr( - virtual void , SetTitle( const wxString& title), - "Sets the window's title. Applicable only to frames and dialogs.", ""); - - DocDeclStr( - virtual wxString , GetTitle() const, - "Gets the window's title. Applicable only to frames and dialogs.", ""); + //DocDeclStr( + // virtual void , SetTitle( const wxString& title), + // "Sets the window's title. Applicable only to frames and dialogs.", ""); + //DocDeclStr( + // virtual wxString , GetTitle() const, + // "Gets the window's title. Applicable only to frames and dialogs.", ""); DocDeclStr( virtual void , SetLabel(const wxString& label), @@ -389,11 +389,18 @@ autogenerated) id", ""); int sizeFlags = wxSIZE_AUTO ), "Sets the position and size of the window in pixels. The sizeFlags parameter indicates the interpretation of the other params if they are --1. wx.SIZE_AUTO*: a -1 indicates that a class-specific default -shoudl be used. wx.SIZE_USE_EXISTING: existing dimensions should be -used if -1 values are supplied. wxSIZE_ALLOW_MINUS_ONE: allow -dimensions of -1 and less to be interpreted as real dimensions, not -default values.", "", +equal to -1. + + ======================== ====================================== + wx.SIZE_AUTO A -1 indicates that a class-specific + default should be used. + wx.SIZE_USE_EXISTING Axisting dimensions should be used if + -1 values are supplied. + wxSIZE_ALLOW_MINUS_ONE Allow dimensions of -1 and less to be + interpreted as real dimensions, not + default values. + ======================== ====================================== +", "", SetDimensions); @@ -430,13 +437,13 @@ window's *best size* values. Also set's the minsize for use with sizers.", ""); DocDeclStr( virtual void , Raise(), - "Raises the window to the top of the window hierarchy if it is a -managed window (dialog or frame).", ""); + "Raises the window to the top of the window hierarchy. In current +version of wxWidgets this works both for manage and child windows.", ""); DocDeclStr( virtual void , Lower(), - "Lowers the window to the bottom of the window hierarchy if it is a -managed window (dialog or frame).", ""); + "Lowers the window to the bottom of the window hierarchy. In current +version of wxWidgets this works both for manage and child windows.", ""); @@ -520,6 +527,10 @@ after calling Fit.", ""); "Reset the cached best size value so it will be recalculated the next time it is needed.", ""); + DocDeclStr( + void , CacheBestSize(const wxSize& size) const, + "Cache the best size so it doesn't need to be calculated again, (at least until +some properties of the window change.)", ""); DocDeclStr( @@ -549,17 +560,10 @@ cetering, and may be wx.HORIZONTAL, wx.VERTICAL or wx.BOTH. It may also include wx.CENTER_ON_SCREEN flag if you want to center the window on the entire screen and not on its parent window. If it is a top-level window and has no parent then it will always be centered -relative to the screen.", ""); - +relative to the screen.", ""); %pythoncode { Centre = Center } - DocDeclStr( - void , CenterOnScreen(int dir = wxBOTH), - "Center on screen (only works for top level windows)", ""); - %pythoncode { CentreOnScreen = CenterOnScreen } - - DocDeclStr( void , CenterOnParent(int dir = wxBOTH), "Center with respect to the the parent window", ""); @@ -1208,7 +1212,7 @@ to the window.", ""); DocDeclStr( - void , RefreshRect(const wxRect& rect), + void , RefreshRect(const wxRect& rect, bool eraseBackground = true), "Redraws the contents of the given rectangle: the area inside it will be repainted. This is the same as Refresh but has a nicer syntax.", ""); @@ -1356,6 +1360,15 @@ not be used at all.", ""); foreground colour is dependent on the window class; it may be the text colour or other colour, or it may not be used at all.", ""); + DocDeclStr( + bool , InheritsBackgroundColour() const, + "", ""); + + DocDeclStr( + bool , UseBgCol() const, + "", ""); + + // TODO: // // if the window shouldn't inherit its colour from the parent, override // // this function to return true @@ -1391,8 +1404,19 @@ no effect on other platforms. "Returns the background style of the window. :see: `SetBackgroundStyle`", ""); + + DocDeclStr( + bool , HasTransparentBackground(), + "Returns True if this window's background is transparent (as, for +example, for `wx.StaticText`) and should show the parent window's +background. +This method is mostly used internally by the library itself and you +normally shouldn't have to call it. You may, however, have to override +it in your custom control classes to ensure that background is painted +correctly.", ""); + DocDeclStr( virtual bool , SetCursor( const wxCursor &cursor ), @@ -1424,9 +1448,11 @@ be reset back to default.", ""); + %disownarg( wxCaret *caret ); DocDeclStr( void , SetCaret(wxCaret *caret), "Sets the caret associated with the window.", ""); + %cleardisown( wxCaret *caret ); DocDeclStr( wxCaret *, GetCaret() const, @@ -1528,7 +1554,7 @@ send an update UI event for each menubar menu item. You can call this function from your application to ensure that your UI is up-to-date at a particular point in time (as far as your EVT_UPDATE_UI handlers are concerned). This may be necessary if you have called -wx.UpdateUIEvent.SetMode or wx.UpdateUIEvent.SetUpdateInterval to +`wx.UpdateUIEvent.SetMode` or `wx.UpdateUIEvent.SetUpdateInterval` to limit the overhead that wxWindows incurs by sending update UI events in idle time.", " @@ -1659,8 +1685,8 @@ toplevel parent of the window.", ""); "Physically scrolls the pixels in the window and move child windows accordingly. Use this function to optimise your scrolling implementations, to minimise the area that must be redrawn. Note that -it is rarely required to call this function from a user program.", -" +it is rarely required to call this function from a user program."," + :param dx: Amount to scroll horizontally. :param dy: Amount to scroll vertically. @@ -1737,7 +1763,10 @@ wxHelpProvider implementation, and not in the window object itself.", ""); DocStr(SetToolTip, "Attach a tooltip to the window.", ""); %Rename(SetToolTipString, void, SetToolTip( const wxString &tip )); + + %disownarg( wxToolTip *tip ); void SetToolTip( wxToolTip *tip ); + %cleardisown( wxToolTip *tip ); DocDeclStr( wxToolTip* , GetToolTip() const, @@ -1752,16 +1781,12 @@ wxHelpProvider implementation, and not in the window object itself.", ""); // drag and drop // ------------- - // set/retrieve the drop target associated with this window (may be - // NULL; it's owned by the window and will be deleted by it) - %apply SWIGTYPE *DISOWN { wxPyDropTarget *dropTarget }; - + %disownarg( wxPyDropTarget *dropTarget ); DocDeclStr( virtual void , SetDropTarget( wxPyDropTarget *dropTarget ), "Associates a drop target with this window. If the window already has a drop target, it is deleted.", ""); - - %clear wxPyDropTarget *dropTarget; + %cleardisown( wxPyDropTarget *dropTarget ); DocDeclStr( @@ -1769,11 +1794,15 @@ a drop target, it is deleted.", ""); "Returns the associated drop target, which may be None.", ""); -#ifdef __WXMSW__ // TODO: should I drop-kick this? - DocDeclStr( - void , DragAcceptFiles(bool accept), + DocStr(DragAcceptFiles, "Enables or disables eligibility for drop file events, EVT_DROP_FILES. -Only available on Windows.", ""); +Only functional on Windows.", ""); +#ifdef __WXMSW__ + void DragAcceptFiles(bool accept); +#else + %extend { + void DragAcceptFiles(bool accept) {} + } #endif #endif @@ -1804,9 +1833,13 @@ are none.", ""); DocDeclStr( void , SetAutoLayout( bool autoLayout ), "Determines whether the Layout function will be called automatically -when the window is resized. It is called implicitly by SetSizer but -if you use SetConstraints you should call it manually or otherwise the -window layout won't be correctly updated when its size changes.", ""); +when the window is resized. lease note that this only happens for the +windows usually used to contain children, namely `wx.Panel` and +`wx.TopLevelWindow` (and the classes deriving from them). + +This method is called implicitly by `SetSizer` but if you use +`SetConstraints` you should call it manually or otherwise the window +layout won't be correctly updated when its size changes.", ""); DocDeclStr( bool , GetAutoLayout() const, @@ -1821,6 +1854,7 @@ this function gets called automatically by the default EVT_SIZE handler when the window is resized.", ""); + %disownarg( wxSizer *sizer ); DocDeclStr( void , SetSizer(wxSizer *sizer, bool deleteOld = true ), "Sets the window to have the given layout sizer. The window will then @@ -1834,7 +1868,8 @@ non-None, and False otherwise.", ""); void , SetSizerAndFit( wxSizer *sizer, bool deleteOld = true ), "The same as SetSizer, except it also sets the size hints for the window based on the sizer's minimum size.", ""); - + %cleardisown( wxSizer *sizer ); + DocDeclStr( wxSizer *, GetSizer() const, @@ -1929,6 +1964,11 @@ wxControl where it returns true.", ""); if hasattr(self, '_setCallbackInfo'): self._setCallbackInfo(self, self.__class__) } + + %pythoncode { + def SendSizeEvent(self): + self.GetEventhandler().ProcessEvent(wx.SizeEvent((-1,-1))) + } }; @@ -2026,7 +2066,8 @@ wxWindow* wxFindWindowByLabel( const wxString& label, WXHWND hWnd = (WXHWND)_hWnd; long id = wxGetWindowId(hWnd); wxWindow* win = new wxWindow; - parent->AddChild(win); + if (parent) + parent->AddChild(win); win->SetEventHandler(win); win->SetHWND(hWnd); win->SetId(id); @@ -2041,6 +2082,20 @@ wxWindow* wxFindWindowByLabel( const wxString& label, } %} +//--------------------------------------------------------------------------- + +DocStr(GetTopLevelWindows, +"Returns a list of the the application's top-level windows, (frames, +dialogs, etc.) NOTE: Currently this is a copy of the list maintained +by wxWidgets, and so it is only valid as long as no top-level windows +are closed or new top-level windows are created. +", ""); +%inline %{ + PyObject* GetTopLevelWindows() { + return wxPy_ConvertList(&wxTopLevelWindows); + } +%} + //--------------------------------------------------------------------------- //---------------------------------------------------------------------------