]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/_window.i
added Rotate() test
[wxWidgets.git] / wxPython / src / _window.i
index c7b21a2a740378dd9ede38d86c7f2b303e0546e7..2c3d50a741b263e448ca682f50d721b38982c49a 100644 (file)
@@ -34,15 +34,27 @@ struct wxVisualAttributes
         ~wxVisualAttributes() { delete self; }
     } 
     
-    // the font used for control label/text inside it
-    wxFont font;
-
-    // the foreground colour
-    wxColour colFg;
+//     // the font used for control label/text inside it
+//     wxFont font;
+//     // the foreground colour
+//     wxColour colFg;
+//     // the background colour, may be wxNullColour if the controls background
+//     // colour is not solid
+//     wxColour colBg;
+
+    // Use our own getters and properties instead of the ones that SWIG will
+    // generate, so copies of the attributes will be made when they are
+    // accessed, instead of using a pointer to the one in the object which may
+    // be temporary.
+    %extend {
+        wxFont   _get_font()      { return self->font; }
+        wxColour _get_colFg()     { return self->colFg; }
+        wxColour _get_colBg()     { return self->colBg; }
+    }
 
-    // the background colour, may be wxNullColour if the controls background
-    // colour is not solid
-    wxColour colBg;
+    %property(font,  _get_font)
+    %property(colFg, _get_colFg)
+    %property(colBg, _get_colBg)
 };
 
 
@@ -448,21 +460,21 @@ equal to -1.
         MoveXY);
     
     DocDeclStr(
-        void , SetBestFittingSize(const wxSize& size=wxDefaultSize),
+        void , SetInitialSize(const wxSize& size=wxDefaultSize),
         "A 'Smart' SetSize that will fill in default size components with the
 window's *best size* values.  Also set's the minsize for use with sizers.", "");
-    
+    %pythoncode { SetBestFittingSize = wx._deprecated(SetInitialSize, 'Use `SetInitialSize`') }
 
     
     DocDeclStr(
         virtual void , Raise(),
         "Raises the window to the top of the window hierarchy.  In current
-version of wxWidgets this works both for manage and child windows.", "");
+version of wxWidgets this works both for managed and child windows.", "");
     
     DocDeclStr(
         virtual void , Lower(),
         "Lowers the window to the bottom of the window hierarchy.  In current
-version of wxWidgets this works both for manage and child windows.", "");
+version of wxWidgets this works both for managed and child windows.", "");
     
 
     
@@ -571,25 +583,23 @@ some properties of the window change.)", "");
 
     
     DocDeclStr(
-        wxSize , GetBestFittingSize() const,
+        wxSize , GetEffectiveMinSize() const,
         "This function will merge the window's best size into the window's
 minimum size, giving priority to the min size components, and returns
 the results.
 ", "");
-    
+    %pythoncode { GetBestFittingSize = wx._deprecated(GetEffectiveMinSize, 'Use `GetEffectiveMinSize` instead.') }
 
-    DocDeclStr(
-        wxSize , GetAdjustedBestSize() const,
-        "This method is similar to GetBestSize, except in one
-thing. GetBestSize should return the minimum untruncated size of the
-window, while this method will return the largest of BestSize and any
-user specified minimum size. ie. it is the minimum size the window
-should currently be drawn at, not the minimal size it can possibly
-tolerate.", "");
+    %pythoncode {
+        def GetAdjustedBestSize(self):
+            s = self.GetBestSize()
+            return wx.Size(max(s.width,  self.GetMinWidth()),
+                           max(s.height, self.GetMinHeight()))
+        GetAdjustedBestSize = wx._deprecated(GetAdjustedBestSize, 'Use `GetEffectiveMinSize` instead.')
+    }
     
 
 
-
     DocDeclStr(
         void , Center( int direction = wxBOTH ),
         "Centers the window.  The parameter specifies the direction for
@@ -670,12 +680,12 @@ the virtual area of the window outside the given bounds.", "");
         "", "");
     
     DocDeclStr(
-        void , SetMinSize(const wxSize& minSize),
+        virtual void , SetMinSize(const wxSize& minSize),
         "A more convenient method than `SetSizeHints` for setting just the
 min size.", "");
     
     DocDeclStr(
-        void , SetMaxSize(const wxSize& maxSize),
+        virtual void , SetMaxSize(const wxSize& maxSize),
         "A more convenient method than `SetSizeHints` for setting just the
 max size.", "");
     
@@ -718,6 +728,11 @@ windows it is more or less independent of the screen window size.", "");
         GetVirtualSizeTuple);
 
 
+    DocDeclStr(
+        virtual wxSize , GetWindowBorderSize() const,
+        "Return the size of the left/right and top/bottom borders.", "");
+    
+   
 // TODO: using directors?
 //     // Override these methods for windows that have a virtual size
 //     // independent of their client size.  eg. the virtual area of a
@@ -772,7 +787,16 @@ window had already been in the specified state.", "");
     
     DocDeclStr(
         bool , IsEnabled() const,
-        "Returns true if the window is enabled for input, false otherwise.", "");
+        "Returns true if the window is enabled for input, false otherwise.
+This method takes into account the enabled state of parent windows up
+to the top-level window.", "");
+
+    DocDeclStr(
+        bool , IsThisEnabled() const,
+        "Returns the internal enabled state independent of the parent(s) state,
+i.e. the state in which the window would be if all of its parents are
+enabled.  Use `IsEnabled` to get the effective window state.", "");
+    
 
     DocDeclStr(
         virtual bool , IsShownOnScreen() const,
@@ -809,6 +833,12 @@ method.", "");
 windows are only available on X platforms.", "");
     
 
+    DocDeclStr(
+        bool , ToggleWindowStyle(int flag),
+        "Turn the flag on if it had been turned off before and vice versa,
+returns True if the flag is turned on by this function call.", "");
+    
+    
 
     DocDeclStr(
         virtual void , SetExtraStyle(long exStyle),
@@ -820,6 +850,9 @@ SetWindowStyleFlag()", "");
         long , GetExtraStyle() const,
         "Returns the extra style bits for the window.", "");
     
+    DocDeclStr(
+        bool , HasExtraStyle(int exFlag) const,
+        "Returns ``True`` if the given extra flag is set.", "");
 
     
     DocDeclStr(
@@ -883,6 +916,12 @@ or None.", "");
         "Can this window have focus?", "");
     
 
+    DocDeclStr(
+        bool , CanAcceptFocus() const,
+        "Can this window have focus right now?", "");
+    
+
     DocDeclStr(
         virtual bool , AcceptsFocusFromKeyboard() const,
         "Can this window be given focus by keyboard navigation? if not, the
@@ -890,13 +929,29 @@ only way to give it focus (provided it accepts it at all) is to click
 it.", "");
     
 
+    
+    DocDeclStr(
+        bool , CanAcceptFocusFromKeyboard() const,
+        "Can this window be assigned focus from keyboard right now?", "");
+    
+
+    DocDeclStr(
+        virtual void , SetCanFocus(bool canFocus),
+        "", "");
+    
+
+
+    DocDeclAStr(
+        virtual bool , NavigateIn(int flags = wxNavigationKeyEvent::IsForward),
+        "NavigateIn(self, int flags=NavigationKeyEvent.IsForward) -> bool",
+        "Navigates inside this window.", "");
 
 
     DocDeclAStr(
         virtual bool , Navigate(int flags = wxNavigationKeyEvent::IsForward),
         "Navigate(self, int flags=NavigationKeyEvent.IsForward) -> bool",
-        "Does keyboard navigation from this window to another, by sending a
-`wx.NavigationKeyEvent`.", "
+        "Does keyboard navigation starting from this window to another.  This is
+equivalient to self.GetParent().NavigateIn().", "
  
     :param flags: A combination of the ``IsForward`` or ``IsBackward``
         and the ``WinChange`` values in the `wx.NavigationKeyEvent`
@@ -964,8 +1019,16 @@ do not change.", "");
         wxWindow *, GetGrandParent() const,
         "Returns the parent of the parent of this window, or None if there
 isn't one.", "");
-    
 
+    
+    %extend {
+        DocDeclStr(wxWindow *, GetTopLevelParent(),
+                   "Returns the first frame or dialog in this window's parental hierarchy.", "")
+        {
+            return wxGetTopLevelParent(self);
+        }
+    }
+    
 
     DocDeclStr(
         virtual bool , IsTopLevel() const,
@@ -2063,9 +2126,15 @@ opaque.", "");
         self.thisown = pre.thisown
         pre.thisown = 0
         if hasattr(self, '_setOORInfo'):
-            self._setOORInfo(self)
+            try:
+                self._setOORInfo(self)
+            except TypeError:
+                pass
         if hasattr(self, '_setCallbackInfo'):
-            self._setCallbackInfo(self, self.__class__)
+            try:
+                self._setCallbackInfo(self, pre.__class__)
+            except TypeError:
+                pass
     }
 
     %pythoncode {
@@ -2075,11 +2144,10 @@ opaque.", "");
 
     
     %property(AcceleratorTable, GetAcceleratorTable, SetAcceleratorTable, doc="See `GetAcceleratorTable` and `SetAcceleratorTable`");
-    %property(AdjustedBestSize, GetAdjustedBestSize, doc="See `GetAdjustedBestSize`");
     %property(AutoLayout, GetAutoLayout, SetAutoLayout, doc="See `GetAutoLayout` and `SetAutoLayout`");
     %property(BackgroundColour, GetBackgroundColour, SetBackgroundColour, doc="See `GetBackgroundColour` and `SetBackgroundColour`");
     %property(BackgroundStyle, GetBackgroundStyle, SetBackgroundStyle, doc="See `GetBackgroundStyle` and `SetBackgroundStyle`");
-    %property(BestFittingSize, GetBestFittingSize, SetBestFittingSize, doc="See `GetBestFittingSize` and `SetBestFittingSize`");
+    %property(EffectiveMinSize, GetEffectiveMinSize, doc="See `GetEffectiveMinSize`");
     %property(BestSize, GetBestSize, doc="See `GetBestSize`");
     %property(BestVirtualSize, GetBestVirtualSize, doc="See `GetBestVirtualSize`");
     %property(Border, GetBorder, doc="See `GetBorder`");
@@ -2100,6 +2168,7 @@ opaque.", "");
     %property(Font, GetFont, SetFont, doc="See `GetFont` and `SetFont`");
     %property(ForegroundColour, GetForegroundColour, SetForegroundColour, doc="See `GetForegroundColour` and `SetForegroundColour`");
     %property(GrandParent, GetGrandParent, doc="See `GetGrandParent`");
+    %property(TopLevelParent, GetTopLevelParent, doc="See `GetTopLevelParent`");
     %property(Handle, GetHandle, doc="See `GetHandle`");
     %property(HelpText, GetHelpText, SetHelpText, doc="See `GetHelpText` and `SetHelpText`");
     %property(Id, GetId, SetId, doc="See `GetId` and `SetId`");
@@ -2222,6 +2291,8 @@ wxWindow* wxFindWindowByLabel( const wxString& label,
 #endif
 %}
 
+MustHaveApp(wxWindow_FromHWND);
+
 %inline %{
     wxWindow* wxWindow_FromHWND(wxWindow* parent, unsigned long _hWnd) {
 #ifdef __WXMSW__