X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/81cfe5e13e9b8a2ec8374af1f7806b05a86d4d4b..a31507415d5eb92b6cc3a2032569e1f963a598c6:/wxPython/src/_dataobj.i diff --git a/wxPython/src/_dataobj.i b/wxPython/src/_dataobj.i index 191ca7a74b..ad1b320dc3 100644 --- a/wxPython/src/_dataobj.i +++ b/wxPython/src/_dataobj.i @@ -48,13 +48,54 @@ enum wxDataFormatId }; +DocStr(wxDataFormat, +"A wx.DataFormat is an encapsulation of a platform-specific format +handle which is used by the system for the clipboard and drag and drop +operations. The applications are usually only interested in, for +example, pasting data from the clipboard only if the data is in a +format the program understands. A data format is is used to uniquely +identify this format.", +" +On the system level, a data format is usually just a number, (which +may be the CLIPFORMAT under Windows or Atom under X11, for example.) + +The standard format IDs are: + + ================ ===================================== + wx.DF_INVALID An invalid format + wx.DF_TEXT Text format + wx.DF_BITMAP A bitmap (wx.Bitmap) + wx.DF_METAFILE A metafile (wx.Metafile, Windows only) + wx.DF_FILENAME A list of filenames + wx.DF_HTML An HTML string. This is only valid on + Windows and non-unicode builds + ================ ===================================== + +Aside the standard formats, the application may also use custom +formats which are identified by their names (strings) and not numeric +identifiers. Although internally custom format must be created (or +registered) first, you shouldn\'t care about it because it is done +automatically the first time the wxDataFormat object corresponding to +a given format name is created. + +"); + class wxDataFormat { public: - wxDataFormat( wxDataFormatId type ); - %name(CustomDataFormat) wxDataFormat(const wxString& format); + DocCtorStr( + wxDataFormat( wxDataFormatId type ), + "Constructs a data format object for one of the standard data formats +or an empty data object (use SetType or SetId later in this case)", ""); + + DocCtorStrName( + wxDataFormat(const wxString& format), + "Constructs a data format object for a custom format identified by its +name.", "", + CustomDataFormat); ~wxDataFormat(); + %nokwargs operator==; %nokwargs operator!=; bool operator==(wxDataFormatId format) const; @@ -62,11 +103,25 @@ public: bool operator==(const wxDataFormat& format) const; bool operator!=(const wxDataFormat& format) const; - void SetType(wxDataFormatId format); - wxDataFormatId GetType() const; + + DocDeclStr( + void , SetType(wxDataFormatId format), + "Sets the format to the given value, which should be one of wx.DF_XXX +constants.", ""); + + DocDeclStr( + wxDataFormatId , GetType() const, + "Returns the platform-specific number identifying the format.", ""); + - wxString GetId() const; - void SetId(const wxString& format); + DocDeclStr( + wxString , GetId() const, + "Returns the name of a custom format (this function will fail for a +standard format).", ""); + + DocDeclStr( + void , SetId(const wxString& format), + "Sets the format to be the custom format identified by the given name.", ""); }; @@ -187,7 +242,7 @@ bool wxPyDataObjectSimple::GetDataHere(void *buf) const { // C++ version. bool rval = False; - wxPyBeginBlockThreads(); + bool blocked = wxPyBeginBlockThreads(); if (wxPyCBH_findCallback(m_myInst, "GetDataHere")) { PyObject* ro; ro = wxPyCBH_callCallbackObj(m_myInst, Py_BuildValue("()")); @@ -198,7 +253,7 @@ bool wxPyDataObjectSimple::GetDataHere(void *buf) const { Py_DECREF(ro); } } - wxPyEndBlockThreads(); + wxPyEndBlockThreads(blocked); return rval; } @@ -206,13 +261,13 @@ bool wxPyDataObjectSimple::SetData(size_t len, const void *buf) const{ // For this one we simply need to make a string from buf and len // and send it to the Python method. bool rval = False; - wxPyBeginBlockThreads(); + bool blocked = wxPyBeginBlockThreads(); if (wxPyCBH_findCallback(m_myInst, "SetData")) { PyObject* data = PyString_FromStringAndSize((char*)buf, len); rval = wxPyCBH_callCallback(m_myInst, Py_BuildValue("(O)", data)); Py_DECREF(data); } - wxPyEndBlockThreads(); + wxPyEndBlockThreads(blocked); return rval; } %} @@ -222,7 +277,7 @@ bool wxPyDataObjectSimple::SetData(size_t len, const void *buf) const{ // Now define it for SWIG class wxPyDataObjectSimple : public wxDataObjectSimple { public: - %addtofunc wxPyDataObjectSimple "self._setCallbackInfo(self, PyDataObjectSimple)" + %pythonAppend wxPyDataObjectSimple "self._setCallbackInfo(self, PyDataObjectSimple)" wxPyDataObjectSimple(const wxDataFormat& format = wxFormatInvalid); void _setCallbackInfo(PyObject* self, PyObject* _class); @@ -240,8 +295,9 @@ class wxDataObjectComposite : public wxDataObject { public: wxDataObjectComposite(); - %addtofunc Add "args[1].thisown = 0" + %apply SWIGTYPE *DISOWN { wxDataObjectSimple *dataObject }; void Add(wxDataObjectSimple *dataObject, int preferred = False); + %clear wxDataObjectSimple *dataObject; }; //--------------------------------------------------------------------------- @@ -280,7 +336,7 @@ IMP_PYCALLBACK__STRING(wxPyTextDataObject, wxTextDataObject, SetText); // Now define it for SWIG class wxPyTextDataObject : public wxTextDataObject { public: - %addtofunc wxPyTextDataObject "self._setCallbackInfo(self, PyTextDataObject)" + %pythonAppend wxPyTextDataObject "self._setCallbackInfo(self, PyTextDataObject)" wxPyTextDataObject(const wxString& text = wxPyEmptyString); void _setCallbackInfo(PyObject* self, PyObject* _class); @@ -312,7 +368,7 @@ public: wxBitmap wxPyBitmapDataObject::GetBitmap() const { wxBitmap* rval = &wxNullBitmap; - wxPyBeginBlockThreads(); + bool blocked = wxPyBeginBlockThreads(); if (wxPyCBH_findCallback(m_myInst, "GetBitmap")) { PyObject* ro; wxBitmap* ptr; @@ -323,18 +379,18 @@ wxBitmap wxPyBitmapDataObject::GetBitmap() const { Py_DECREF(ro); } } - wxPyEndBlockThreads(); + wxPyEndBlockThreads(blocked); return *rval; } void wxPyBitmapDataObject::SetBitmap(const wxBitmap& bitmap) { - wxPyBeginBlockThreads(); + bool blocked = wxPyBeginBlockThreads(); if (wxPyCBH_findCallback(m_myInst, "SetBitmap")) { PyObject* bo = wxPyConstructObject((void*)&bitmap, wxT("wxBitmap"), False); wxPyCBH_callCallback(m_myInst, Py_BuildValue("(O)", bo)); Py_DECREF(bo); } - wxPyEndBlockThreads(); + wxPyEndBlockThreads(blocked); } %} @@ -343,7 +399,7 @@ void wxPyBitmapDataObject::SetBitmap(const wxBitmap& bitmap) { // Now define it for SWIG class wxPyBitmapDataObject : public wxBitmapDataObject { public: - %addtofunc wxPyBitmapDataObject "self._setCallbackInfo(self, PyBitmapDataObject)" + %pythonAppend wxPyBitmapDataObject "self._setCallbackInfo(self, PyBitmapDataObject)" wxPyBitmapDataObject(const wxBitmap& bitmap = wxNullBitmap); void _setCallbackInfo(PyObject* self, PyObject* _class); @@ -359,9 +415,7 @@ public: wxFileDataObject(); const wxArrayString& GetFilenames(); -#ifdef __WXMSW__ void AddFile(const wxString &filename); -#endif }; @@ -424,7 +478,7 @@ public: //--------------------------------------------------------------------------- -#ifndef __WXGTK__ +#if defined(__WXMSW__) || defined(__WXMAC__) %{ #include