]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/_window.i
Undeprecate wxGetNumberFromUser, add wxNumberEntryDialog
[wxWidgets.git] / wxPython / src / _window.i
index 12f0fe2b394cba686428d3329948590dcf89ea14..b2bf6d21fe27c0ec6350c7b39d14ac3564e03ed7 100644 (file)
@@ -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),
@@ -437,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.", "");
     
 
     
@@ -460,14 +460,32 @@ around panel items, for example.", "");
 
 
     DocStr(GetPosition,   // sets the docstring for both
-           "Get the window's position.", "");
-    wxPoint GetPosition();
+           "Get the window's position.  Notice that the position is in client
+coordinates for child windows and screen coordinates for the top level
+ones, use `GetScreenPosition` if you need screen coordinates for all
+kinds of windows.", "");
+    wxPoint GetPosition() const;
 
     DocDeclAName(
-        void, GetPosition(int *OUTPUT, int *OUTPUT),
+        void, GetPosition(int *OUTPUT, int *OUTPUT) const,
         "GetPositionTuple() -> (x,y)",
         GetPositionTuple);
 
+    
+    DocStr(GetScreenPosition,   // sets the docstring for both
+           "Get the position of the window in screen coordinantes.", "");
+    wxPoint GetScreenPosition() const;
+    DocDeclAName(
+        void, GetScreenPosition(int *OUTPUT, int *OUTPUT) const,
+        "GetScreenPositionTuple() -> (x,y)",
+        GetScreenPositionTuple);
+
+    DocDeclStr(
+        wxRect , GetScreenRect() const,
+        "Returns the size and position of the window in screen coordinantes as
+a `wx.Rect` object.", "
+:see: `GetRect`, `GetScreenPosition`");
+    
    
     DocStr(GetSize, "Get the window size.", "");
     wxSize GetSize() const;
@@ -480,7 +498,7 @@ around panel items, for example.", "");
 
     DocDeclStr(
         wxRect , GetRect() const,
-        "Returns the size and position of the window as a wx.Rect object.", "");
+        "Returns the size and position of the window as a `wx.Rect` object.", "");
     
 
     DocStr(GetClientSize,
@@ -527,6 +545,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(
@@ -556,17 +578,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", "");
@@ -965,9 +980,18 @@ functions so should not be required by the application programmer.", "");
         "Removes a child window. This is called automatically by window
 deletion functions so should not be required by the application
 programmer.", "");
-    
 
 
+    DocStr(SetDoubleBuffered,
+           "Currently wxGTK2 only.", "");
+#ifdef __WXGTK__
+    void SetDoubleBuffered(bool on);
+#else
+    %extend {
+        void SetDoubleBuffered(bool on) {}
+    }
+#endif
+
 
     // looking for windows
     // -------------------
@@ -1451,9 +1475,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,
@@ -1740,7 +1766,7 @@ already on top/bottom and nothing was done.", "");
         void , SetHelpText(const wxString& text),
         "Sets the help text to be used as context-sensitive help for this
 window.  Note that the text is actually stored by the current
-wxHelpProvider implementation, and not in the window object itself.", "");
+`wx.HelpProvider` implementation, and not in the window object itself.", "");
     
 
     DocDeclStr(
@@ -1750,10 +1776,20 @@ one.", "");
     
 
     DocDeclStr(
+        virtual wxString , GetHelpTextAtPoint(const wxPoint& pt,
+                                              wxHelpEvent::Origin origin) const,
+        "Get the help string associated with the given position in this window.
+
+Notice that pt may be invalid if event origin is keyboard or unknown
+and this method should return the global window help text then
+", "");
+    
+    
+   DocDeclStr(
         wxString , GetHelpText() const,
         "Gets the help text to be used as context-sensitive help for this
 window.  Note that the text is actually stored by the current
-wxHelpProvider implementation, and not in the window object itself.", "");
+`wx.HelpProvider` implementation, and not in the window object itself.", "");
     
 
 
@@ -1764,7 +1800,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,
@@ -1779,16 +1818,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(
@@ -1812,7 +1847,7 @@ Only functional on Windows.", "");
     // constraints and sizers
     // ----------------------
 
-    // set the constraints for this window or retrieve them (may be NULL)
+    %disownarg(wxLayoutConstraints*);
     DocDeclStr(
         void , SetConstraints( wxLayoutConstraints *constraints ),
         "Sets the window to have the given layout constraints. If an existing
@@ -1830,14 +1865,19 @@ effect.", "");
         wxLayoutConstraints *, GetConstraints() const,
         "Returns a pointer to the window's layout constraints, or None if there
 are none.", "");
+    %cleardisown(wxLayoutConstraints*);
     
 
     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,
@@ -1852,6 +1892,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
@@ -1865,7 +1906,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,
@@ -1960,6 +2002,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)))
+    }
 };
 
 
@@ -2057,7 +2104,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);