]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/contrib/activex/activex.i
Deal with wxVariant changed
[wxWidgets.git] / wxPython / contrib / activex / activex.i
index 907207f60a6632a501e0753d11d709afc842819c..6410c5874f67e9d1b902f003e149b82808b1c23c 100644 (file)
@@ -11,7 +11,7 @@
 /////////////////////////////////////////////////////////////////////////////
 
 
-%module activex
+%module(package="wx") activex
 
 %{
 #include "wx/wxPython/wxPython.h"
 //---------------------------------------------------------------------------
 
 %import core.i
-%pythoncode { wx = core }
-%pythoncode { __docfilter__ = wx.__docfilter__ }
+%pythoncode { wx = _core }
+%pythoncode { __docfilter__ = wx.__DocFilter(globals()) }
 
 MAKE_CONST_WXSTRING_NOSWIG(PanelNameStr);
 
-%include _activex_rename.i
-
 
 //---------------------------------------------------------------------------
 
@@ -57,14 +55,14 @@ typedef unsigned short  VARTYPE;
 // Some conversion helpers
 static wxVariant _PyObj2Variant(PyObject* value);
 static bool  _PyObj2Variant(PyObject* value, wxVariant& wv);
-static PyObject* _Variant2PyObj(wxVariant& value, bool useNone=False);
+static PyObject* _Variant2PyObj(wxVariant& value, bool useNone=false);
 static wxString  _VARTYPEname(VARTYPE vt);
 
 // Check if an exception has been raised  (blocking threads)
 inline bool wxPyErr_Occurred()
 {
     bool rval;
-    bool blocked = wxPyBeginBlockThreads();
+    wxPyBlock_t blocked = wxPyBeginBlockThreads();
     rval = PyErr_Occurred() != NULL;
     wxPyEndBlockThreads(blocked);
     return rval;
@@ -80,7 +78,7 @@ DocStr(CLSID,
 specify the class of the ActiveX object that is to be created.  A
 CLSID can be constructed from either a ProgID string, (such as
 'WordPad.Document.1') or a classID string, (such as
-'{CA8A9783-280D-11CF-A24D-444553540000}').");
+'{CA8A9783-280D-11CF-A24D-444553540000}').", "");
 
 class CLSID {
 public:
@@ -240,6 +238,9 @@ class wxActiveXWindow : public wxActiveX
 {
 private:
     CLSID       m_CLSID;
+    
+    DECLARE_ABSTRACT_CLASS(wxActiveXWindow);
+
 public:
     wxActiveXWindow( wxWindow* parent, const CLSID& clsId, wxWindowID id = -1,
                      const wxPoint& pos = wxDefaultPosition,
@@ -326,7 +327,7 @@ public:
     void SetAXProp(const wxString& name, PyObject* value)
     {        
         const wxPropX& prop = GetAXPropDesc(name);
-        bool blocked = wxPyBeginBlockThreads();
+        wxPyBlock_t blocked = wxPyBeginBlockThreads();
         if (! PyErr_Occurred() ) {
             if (! prop.CanSet()) {
                 wxString msg;
@@ -362,7 +363,7 @@ public:
     {        
         PyObject* rval = NULL;
         const wxPropX& prop = GetAXPropDesc(name);
-        bool blocked = wxPyBeginBlockThreads();
+        wxPyBlock_t blocked = wxPyBeginBlockThreads();
         if (! PyErr_Occurred() ) {
             if (! prop.CanGet()) {
                 wxString msg;
@@ -408,7 +409,7 @@ public:
         PyObject* rval = NULL;
         const wxFuncX& func = GetAXMethodDesc(name);
         
-        bool blocked = wxPyBeginBlockThreads();
+        wxPyBlock_t blocked = wxPyBeginBlockThreads();
         if (! PyErr_Occurred() ) {
             nargs = func.params.size();
             if (nargs > 0)
@@ -460,7 +461,7 @@ public:
             // conversion errors for now
             wxVariant wv;
             MSWVariantToVariant(rv, wv);
-            rval = _Variant2PyObj(wv, True);
+            rval = _Variant2PyObj(wv, true);
             VariantClear(&rv);
 
             if (func.hasOut) {
@@ -477,7 +478,7 @@ public:
                     const wxParamX &px = func.params[i];
                     if (px.IsOut()) {
                         MSWVariantToVariant(va, wv);
-                        PyObject* obj = _Variant2PyObj(wv, True);
+                        PyObject* obj = _Variant2PyObj(wv, true);
                         PyList_Append(lst, obj);
                     }
                 }
@@ -497,6 +498,8 @@ public:
         return rval;
     }
 };
+
+IMPLEMENT_ABSTRACT_CLASS( wxActiveXWindow, wxWindow );
 %}
 
 
@@ -512,8 +515,10 @@ get/set properties or call methods by name.  The Python
 implementation automatically handles converting parameters and
 return values to/from the types expected by the ActiveX code as
 specified by the TypeInfo.
-");
+", "");
+
 
+MustHaveApp(wxActiveXWindow);
 
 class wxActiveXWindow : public wxWindow
 {
@@ -527,28 +532,28 @@ public:
                          long style = 0,
                          const wxString& name = wxPyPanelNameStr),
         "Creates an ActiveX control from the clsID given and makes it act
-as much like a regular wx.Window as possible.");
+as much like a regular wx.Window as possible.", "");
 
     DocDeclStr(
         const CLSID& , GetCLSID() const,
-        "Return the CLSID used to construct this ActiveX window");
+        "Return the CLSID used to construct this ActiveX window", "");
     
 
     DocDeclStr(
         int , GetAXEventCount() const,
-        "Number of events defined for this control");
+        "Number of events defined for this control", "");
 
     DocDeclStr(
         const wxFuncX& , GetAXEventDesc(int idx) const,
-        "Returns event description by index");
+        "Returns event description by index", "");
 
 
     DocDeclStr(
         int , GetAXPropCount() const,
-        "Number of properties defined for this control");
+        "Number of properties defined for this control", "");
 
     %nokwargs GetAXPropDesc;
-    DocStr(GetPropDesc, "Returns property description by index or by name");
+    DocStr(GetPropDesc, "Returns property description by index or by name", "");
     const wxPropX& GetAXPropDesc(int idx) const;
     const wxPropX& GetAXPropDesc(const wxString& name) const;
 
@@ -556,10 +561,10 @@ as much like a regular wx.Window as possible.");
 
     DocDeclStr(
         int , GetAXMethodCount() const,
-        "Number of methods defined for this control");
+        "Number of methods defined for this control", "");
 
     %nokwargs GetAXMethodDesc;
-    DocStr(GetMethodDesc, "Returns method description by index or name");
+    DocStr(GetMethodDesc, "Returns method description by index or name", "");
     const wxFuncX& GetAXMethodDesc(int idx) const;
     const wxFuncX& GetAXMethodDesc(const wxString& name) const;
 
@@ -567,35 +572,35 @@ as much like a regular wx.Window as possible.");
     DocDeclStr(
         const wxFuncXArray& , GetAXEvents(),
         "Returns a sequence of FuncX objects describing the events
-available for this ActiveX object.");
+available for this ActiveX object.", "");
 
     DocDeclStr(
         const wxFuncXArray& , GetAXMethods(),
         "Returns a sequence of FuncX objects describing the methods
-available for this ActiveX object.");
+available for this ActiveX object.", "");
 
     DocDeclStr(
         const wxPropXArray& , GetAXProperties(),
         "Returns a sequence of PropX objects describing the properties
-available for this ActiveX object.");
+available for this ActiveX object.", "");
 
 
 
     DocDeclStr(
         void , SetAXProp(const wxString& name, PyObject* value),
-        "Set a property of the ActiveX object by name.");
+        "Set a property of the ActiveX object by name.", "");
 
 
     DocDeclStr(
         PyObject* , GetAXProp(const wxString& name),
-        "Get the value of an ActiveX property by name.");
+        "Get the value of an ActiveX property by name.", "");
 
     
     %nokwargs _CallAXMethod;
     DocDeclStr(
         PyObject* , _CallAXMethod(const wxString& name, PyObject* args),
         "The implementation for CallMethod.  Calls an ActiveX method, by
-name passing the parameters given in args.");
+name passing the parameters given in args.", "");
     %pythoncode {
         def CallAXMethod(self, name, *args):
             """
@@ -611,7 +616,7 @@ name passing the parameters given in args.");
 
 DocDeclStr(
     wxEventType , RegisterActiveXEvent(const wxString& eventName),
-    "Creates a standard wx event ID for the given eventName.");
+    "Creates a standard wx event ID for the given eventName.", "");
 
 
 
@@ -620,7 +625,7 @@ DocStr(wxActiveXEvent,
 ActiveX events.  Any event parameters from the ActiveX cntrol are
 turned into attributes of the Python proxy for this event object.
 Additionally, there is a property called eventName that will
-return (suprizingly <wink>) the name of the ActiveX event.");
+return (surprisingly <wink>) the name of the ActiveX event.", "");
 
 class wxActiveXEvent : public wxCommandEvent
 {
@@ -634,13 +639,13 @@ public:
         // handler. We'll convert and load the ActiveX event parameters into
         // attributes of the Python event object.
         void _preCallInit(PyObject* pyself) {
-            bool blocked = wxPyBeginBlockThreads();
+            wxPyBlock_t blocked = wxPyBeginBlockThreads();
             PyObject* pList = PyList_New(0);
             PyObject_SetAttrString(pyself, "paramList", pList);
             Py_DECREF(pList);
             for (int i=0; i<self->ParamCount(); i+=1) {
                 PyObject* name = PyString_FromString((char*)(const char*)self->ParamName(i).mb_str());
-                PyObject* val = _Variant2PyObj((*self)[i], True);
+                PyObject* val = _Variant2PyObj((*self)[i], true);
                 PyObject_SetAttr(pyself, name, val);
                 PyList_Append(pList, name);
                 Py_DECREF(val);
@@ -653,7 +658,7 @@ public:
         // handler. It reloads any "out" parameters from the python attributes
         // back into the wxVariant they came from.        
         void _postCallCleanup(PyObject* pyself) {
-            bool blocked = wxPyBeginBlockThreads();
+            wxPyBlock_t blocked = wxPyBeginBlockThreads();
             for (int i=0; i<self->ParamCount(); i+=1) {
                 PyObject* val = PyObject_GetAttrString(
                     pyself, (char*)(const char*)self->ParamName(i).mb_str());
@@ -835,7 +840,7 @@ wxString _VARTYPEname(VARTYPE vt)
 
 
 %{
-// A class derived from out wxActiveXWindow for the IE WebBrowser
+// A class derived from our wxActiveXWindow for the IE WebBrowser
 // control that will serve as a base class for a Python
 // implementation.  This is done so we can "eat our own dog food"
 // and use a class at least mostly generated by genaxmodule, but
@@ -859,6 +864,8 @@ class wxIEHtmlWindowBase : public wxActiveXWindow {
 private:
     wxAutoOleInterface<IWebBrowser2>  m_webBrowser;
 
+    DECLARE_ABSTRACT_CLASS(wxIEHtmlWindowBase);
+
 public:
 
     wxIEHtmlWindowBase ( wxWindow* parent, const CLSID& clsId, wxWindowID id = -1,
@@ -1041,6 +1048,9 @@ public:
 //         return ! m_bAmbientUserMode;
 //     };
 };
+
+IMPLEMENT_ABSTRACT_CLASS( wxIEHtmlWindowBase, wxActiveXWindow );
+
 %}
 
 
@@ -1053,8 +1063,11 @@ public:
 %feature("noautodoc") wxIEHtmlWindowBase::GetText;
 
 
+MustHaveApp(wxIEHtmlWindowBase);
+
 class wxIEHtmlWindowBase : public wxActiveXWindow {
 public:
+    %pythonAppend wxIEHtmlWindowBase    "self._setOORInfo(self)"
 
     wxIEHtmlWindowBase ( wxWindow* parent, const CLSID& clsId, wxWindowID id = -1,
                          const wxPoint& pos = wxDefaultPosition,