]> git.saurik.com Git - wxWidgets.git/commitdiff
Add SetBestSize, GetDefaultAttributes and fixed ShouldInheritColours
authorRobin Dunn <robin@alldunn.com>
Fri, 14 May 2004 21:37:26 +0000 (21:37 +0000)
committerRobin Dunn <robin@alldunn.com>
Fri, 14 May 2004 21:37:26 +0000 (21:37 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27284 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

wxPython/include/wx/wxPython/wxPython_int.h
wxPython/src/_pycontrol.i
wxPython/src/_pywindows.i

index 855861601a770063189e099882874e8472ea7758..14686c748feb748bdb1efcc45352c92048666e48 100644 (file)
@@ -2448,4 +2448,35 @@ extern wxPyApp *wxPythonApp;
 
 //---------------------------------------------------------------------------
 
+#define DEC_PYCALLBACK_VIZATTR_(CBNAME)                                         \
+    wxVisualAttributes  CBNAME() const;                                         \
+    wxVisualAttributes  base_##CBNAME()
+
+
+#define IMP_PYCALLBACK_VIZATTR_(CLASS, PCLASS, CBNAME)                          \
+    wxVisualAttributes CLASS::CBNAME() const {                                  \
+        wxVisualAttributes rval;                                                \
+        bool found;                                                             \
+        bool blocked = wxPyBeginBlockThreads();                                 \
+        if ((found = wxPyCBH_findCallback(m_myInst, #CBNAME))) {                \
+            PyObject* ro;                                                       \
+            wxVisualAttributes* ptr;                                            \
+            ro = wxPyCBH_callCallbackObj(m_myInst, Py_BuildValue("()"));        \
+            if (ro) {                                                           \
+                if (wxPyConvertSwigPtr(ro, (void **)&ptr, wxT("wxVisualAttributes"))) \
+                    rval = *ptr;                                                \
+                Py_DECREF(ro);                                                  \
+            }                                                                   \
+        }                                                                       \
+        wxPyEndBlockThreads(blocked);                                           \
+        if (! found)                                                            \
+            rval = PCLASS::CBNAME();                                            \
+        return rval;                                                            \
+    }                                                                           \
+    wxVisualAttributes  CLASS::base_##CBNAME() {                                \
+        return PCLASS::CBNAME();                                                \
+    }
+
+//---------------------------------------------------------------------------
+
 #endif
index 11d65af865c5be3bf482cf99f88cd4b6f7a81469..205dab0e90b64368586e7f843ce206ee9132e457 100644 (file)
@@ -17,7 +17,6 @@
 %newgroup
 
 
-// TODO:  Virtualize ShouldInheritColours
 
 //---------------------------------------------------------------------------
 
@@ -35,6 +34,7 @@ public:
                 const wxString& name = wxPyControlNameStr)
         : wxControl(parent, id, pos, size, style, validator, name) {}
 
+    void SetBestSize(const wxSize& size) { wxControl::SetBestSize(size); }
 
     DEC_PYCALLBACK_VOID_INT4(DoMoveWindow);
     DEC_PYCALLBACK_VOID_INT5(DoSetSize);
@@ -60,8 +60,9 @@ public:
     DEC_PYCALLBACK_VOID_WXWINBASE(AddChild);
     DEC_PYCALLBACK_VOID_WXWINBASE(RemoveChild);
 
-    DEC_PYCALLBACK_BOOL_(ShouldInheritColours);
+    DEC_PYCALLBACK_BOOL_const(ShouldInheritColours);
     DEC_PYCALLBACK__COLOUR(ApplyParentThemeBackground);
+    DEC_PYCALLBACK_VIZATTR_(GetDefaultAttributes);
     
     PYPRIVATE;
 };
@@ -92,8 +93,9 @@ IMP_PYCALLBACK_SIZE_const(wxPyControl, wxControl, GetMaxSize);
 IMP_PYCALLBACK_VOID_WXWINBASE(wxPyControl, wxControl, AddChild);
 IMP_PYCALLBACK_VOID_WXWINBASE(wxPyControl, wxControl, RemoveChild);
 
-IMP_PYCALLBACK_BOOL_(wxPyControl, wxControl, ShouldInheritColours);
+IMP_PYCALLBACK_BOOL_const(wxPyControl, wxControl, ShouldInheritColours);
 IMP_PYCALLBACK__COLOUR(wxPyControl, wxControl, ApplyParentThemeBackground);
+IMP_PYCALLBACK_VIZATTR_(wxPyControl, wxControl, GetDefaultAttributes);
 %}
 
 // And now the one for SWIG to see
@@ -114,6 +116,7 @@ public:
     
     void _setCallbackInfo(PyObject* self, PyObject* _class);
 
+    void SetBestSize(const wxSize& size);
 
     void base_DoMoveWindow(int x, int y, int width, int height);
     void base_DoSetSize(int x, int y, int width, int height,
@@ -146,8 +149,9 @@ public:
     void base_AddChild(wxWindow* child);
     void base_RemoveChild(wxWindow* child);
 
-    bool base_ShouldInheritColours();
+    bool base_ShouldInheritColours() const;
     void base_ApplyParentThemeBackground(const wxColour& c);
+    wxVisualAttributes base_GetDefaultAttributes();
 };
 
 
index d6c60712df15c13d34e0c7239571328eecaaaeff..6a9ad8862f5b3424f6d0f125e16e067bf4020f24 100644 (file)
@@ -47,8 +47,6 @@
 //      Show
 
 
-// TODO:  Virtualize ShouldInheritColours
-
 //---------------------------------------------------------------------------
 
 
@@ -65,6 +63,7 @@ public:
                const wxString& name = wxPyPanelNameStr)
         : wxWindow(parent, id, pos, size, style, name) {}
 
+    void SetBestSize(const wxSize& size) { wxWindow::SetBestSize(size); }
 
     DEC_PYCALLBACK_VOID_INT4(DoMoveWindow);
     DEC_PYCALLBACK_VOID_INT5(DoSetSize);
@@ -90,8 +89,9 @@ public:
     DEC_PYCALLBACK_VOID_WXWINBASE(AddChild);
     DEC_PYCALLBACK_VOID_WXWINBASE(RemoveChild);
 
-    DEC_PYCALLBACK_BOOL_(ShouldInheritColours);
+    DEC_PYCALLBACK_BOOL_const(ShouldInheritColours);
     DEC_PYCALLBACK__COLOUR(ApplyParentThemeBackground);
+    DEC_PYCALLBACK_VIZATTR_(GetDefaultAttributes);
     
     PYPRIVATE;
 };
@@ -122,8 +122,9 @@ IMP_PYCALLBACK_SIZE_const(wxPyWindow, wxWindow, GetMaxSize);
 IMP_PYCALLBACK_VOID_WXWINBASE(wxPyWindow, wxWindow, AddChild);
 IMP_PYCALLBACK_VOID_WXWINBASE(wxPyWindow, wxWindow, RemoveChild);
 
-IMP_PYCALLBACK_BOOL_(wxPyWindow, wxWindow, ShouldInheritColours);
+IMP_PYCALLBACK_BOOL_const(wxPyWindow, wxWindow, ShouldInheritColours);
 IMP_PYCALLBACK__COLOUR(wxPyWindow, wxWindow, ApplyParentThemeBackground);
+IMP_PYCALLBACK_VIZATTR_(wxPyWindow, wxWindow, GetDefaultAttributes);
  
 %}
 
@@ -145,6 +146,8 @@ public:
     void _setCallbackInfo(PyObject* self, PyObject* _class);
 
 
+    void SetBestSize(const wxSize& size);
+
     void base_DoMoveWindow(int x, int y, int width, int height);
     void base_DoSetSize(int x, int y, int width, int height,
                         int sizeFlags = wxSIZE_AUTO);
@@ -176,8 +179,9 @@ public:
     void base_AddChild(wxWindow* child);
     void base_RemoveChild(wxWindow* child);
 
-    bool base_ShouldInheritColours();
+    bool base_ShouldInheritColours() const;
     void base_ApplyParentThemeBackground(const wxColour& c);
+    wxVisualAttributes base_GetDefaultAttributes();
 };
 
 //---------------------------------------------------------------------------
@@ -202,6 +206,8 @@ public:
                const wxString& name = wxPyPanelNameStr)
         : wxPanel(parent, id, pos, size, style, name) {}
 
+    void SetBestSize(const wxSize& size) { wxPanel::SetBestSize(size); }
+    
 
     DEC_PYCALLBACK_VOID_INT4(DoMoveWindow);
     DEC_PYCALLBACK_VOID_INT5(DoSetSize);
@@ -227,8 +233,9 @@ public:
     DEC_PYCALLBACK_VOID_WXWINBASE(AddChild);
     DEC_PYCALLBACK_VOID_WXWINBASE(RemoveChild);
 
-    DEC_PYCALLBACK_BOOL_(ShouldInheritColours);
+    DEC_PYCALLBACK_BOOL_const(ShouldInheritColours);
     DEC_PYCALLBACK__COLOUR(ApplyParentThemeBackground);
+    DEC_PYCALLBACK_VIZATTR_(GetDefaultAttributes);
     
     PYPRIVATE;
 };
@@ -259,9 +266,11 @@ IMP_PYCALLBACK_SIZE_const(wxPyPanel, wxPanel, GetMaxSize);
 IMP_PYCALLBACK_VOID_WXWINBASE(wxPyPanel, wxPanel, AddChild);
 IMP_PYCALLBACK_VOID_WXWINBASE(wxPyPanel, wxPanel, RemoveChild);
 
-IMP_PYCALLBACK_BOOL_(wxPyPanel, wxPanel, ShouldInheritColours);
+IMP_PYCALLBACK_BOOL_const(wxPyPanel, wxPanel, ShouldInheritColours);
 IMP_PYCALLBACK__COLOUR(wxPyPanel, wxPanel, ApplyParentThemeBackground);
-%}
+IMP_PYCALLBACK_VIZATTR_(wxPyPanel, wxPanel, GetDefaultAttributes);
+
+ %}
 
 // And now the one for SWIG to see
 class wxPyPanel : public wxPanel
@@ -280,6 +289,7 @@ public:
 
     void _setCallbackInfo(PyObject* self, PyObject* _class);
 
+    void SetBestSize(const wxSize& size);
 
     void base_DoMoveWindow(int x, int y, int width, int height);
     void base_DoSetSize(int x, int y, int width, int height,
@@ -312,8 +322,9 @@ public:
     void base_AddChild(wxWindow* child);
     void base_RemoveChild(wxWindow* child);
 
-    bool base_ShouldInheritColours();
+    bool base_ShouldInheritColours() const ;
     void base_ApplyParentThemeBackground(const wxColour& c);
+    wxVisualAttributes base_GetDefaultAttributes();
 };
 
 //---------------------------------------------------------------------------
@@ -332,6 +343,7 @@ public:
                const wxString& name = wxPyPanelNameStr)
         : wxScrolledWindow(parent, id, pos, size, style, name) {}
 
+    void SetBestSize(const wxSize& size) { wxScrolledWindow::SetBestSize(size); }
 
     DEC_PYCALLBACK_VOID_INT4(DoMoveWindow);
     DEC_PYCALLBACK_VOID_INT5(DoSetSize);
@@ -357,8 +369,9 @@ public:
     DEC_PYCALLBACK_VOID_WXWINBASE(AddChild);
     DEC_PYCALLBACK_VOID_WXWINBASE(RemoveChild);
 
-    DEC_PYCALLBACK_BOOL_(ShouldInheritColours);
+    DEC_PYCALLBACK_BOOL_const(ShouldInheritColours);
     DEC_PYCALLBACK__COLOUR(ApplyParentThemeBackground);
+    DEC_PYCALLBACK_VIZATTR_(GetDefaultAttributes);
     
     PYPRIVATE;
 };
@@ -389,8 +402,10 @@ IMP_PYCALLBACK_SIZE_const(wxPyScrolledWindow, wxScrolledWindow, GetMaxSize);
 IMP_PYCALLBACK_VOID_WXWINBASE(wxPyScrolledWindow, wxScrolledWindow, AddChild);
 IMP_PYCALLBACK_VOID_WXWINBASE(wxPyScrolledWindow, wxScrolledWindow, RemoveChild);
 
-IMP_PYCALLBACK_BOOL_(wxPyScrolledWindow, wxScrolledWindow, ShouldInheritColours);
+IMP_PYCALLBACK_BOOL_const(wxPyScrolledWindow, wxScrolledWindow, ShouldInheritColours);
 IMP_PYCALLBACK__COLOUR(wxPyScrolledWindow, wxScrolledWindow, ApplyParentThemeBackground);
+IMP_PYCALLBACK_VIZATTR_(wxPyScrolledWindow, wxScrolledWindow, GetDefaultAttributes);
+
 %}
 
 // And now the one for SWIG to see
@@ -410,6 +425,7 @@ public:
 
     void _setCallbackInfo(PyObject* self, PyObject* _class);
 
+    void SetBestSize(const wxSize& size);
 
     void base_DoMoveWindow(int x, int y, int width, int height);
     void base_DoSetSize(int x, int y, int width, int height,
@@ -442,8 +458,9 @@ public:
     void base_AddChild(wxWindow* child);
     void base_RemoveChild(wxWindow* child);
 
-    bool base_ShouldInheritColours();
+    bool base_ShouldInheritColours() const;
     void base_ApplyParentThemeBackground(const wxColour& c);
+    wxVisualAttributes base_GetDefaultAttributes();
 };