X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1b8c7ba607a15a2ff8a04448138df9ffff7df6c5..7e664d85e6512d807ce2eb186ed9e0bbd60d6e8b:/wxPython/src/_filesys.i diff --git a/wxPython/src/_filesys.i b/wxPython/src/_filesys.i index a8addb513a..a423b23fe5 100644 --- a/wxPython/src/_filesys.i +++ b/wxPython/src/_filesys.i @@ -26,14 +26,16 @@ class wxFSFile : public wxObject { public: - %pythonAppend wxFSFile - "self.thisown = 0 # It will normally be deleted by the user of the wxFileSystem"; - + %typemap(out) wxFSFile*; // turn off this typemap + wxFSFile(wxInputStream *stream, const wxString& loc, const wxString& mimetype, const wxString& anchor, wxDateTime modif); - - ~wxFSFile(); + + // Turn it back on. + %typemap(out) wxFSFile* { $result = wxPyMake_wxObject($1, $owner); } + + ~wxFSFile(); wxInputStream *GetStream(); const wxString& GetMimeType(); @@ -93,6 +95,7 @@ class wxFileSystemHandler //: public wxObject { public: //wxFileSystemHandler(); + ~wxFileSystemHandler(); }; @@ -102,7 +105,7 @@ class wxPyFileSystemHandler : public wxFileSystemHandler { public: %pythonAppend wxPyFileSystemHandler "self._setCallbackInfo(self, FileSystemHandler)"; - + wxPyFileSystemHandler(); void _setCallbackInfo(PyObject* self, PyObject* _class); @@ -138,7 +141,10 @@ public: wxString FindFirst(const wxString& spec, int flags = 0); wxString FindNext(); + %disownarg(wxFileSystemHandler *handler); static void AddHandler(wxFileSystemHandler *handler); + %cleardisown(wxFileSystemHandler *handler); + static void CleanUpHandlers(); // Returns the file URL for a native path @@ -151,7 +157,7 @@ public: wxFileName fname = wxFileSystem::URLToFileName(url); return fname.GetFullPath(); } - } + } }; @@ -206,7 +212,7 @@ public: return; } - bool blocked = wxPyBeginBlockThreads(); + wxPyBlock_t blocked = wxPyBeginBlockThreads(); void* ptr = (void*)PyString_AsString(data); size_t size = PyString_Size(data); wxPyEndBlockThreads(blocked); @@ -246,7 +252,7 @@ public: // Add a file to the memory FS %pythoncode { AddFile = staticmethod(MemoryFSHandler_AddFile) } - + bool CanOpen(const wxString& location); %newobject OpenFile; wxFSFile* OpenFile(wxFileSystem& fs, const wxString& location);