X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c12014018b5ba03ed1a97091d0df7a0d7bc9ed7b..3cebfef17b54f9dacc386f090827b8badb2773d2:/wxPython/src/_dataobj.i diff --git a/wxPython/src/_dataobj.i b/wxPython/src/_dataobj.i index 7a52a47305..3730132cb2 100644 --- a/wxPython/src/_dataobj.i +++ b/wxPython/src/_dataobj.i @@ -48,25 +48,76 @@ 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 +(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\n" + "formats or an empty data object (use SetType or SetId later in\n" + "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==(int /*wxDataFormatId*/ format) const; - bool operator!=(int /*wxDataFormatId*/ format) const; + bool operator==(wxDataFormatId format) const; + bool operator!=(wxDataFormatId format) const; 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 +238,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 +249,7 @@ bool wxPyDataObjectSimple::GetDataHere(void *buf) const { Py_DECREF(ro); } } - wxPyEndBlockThreads(); + wxPyEndBlockThreads(blocked); return rval; } @@ -206,13 +257,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 +273,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 +291,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 +332,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 +364,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 +375,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 +395,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 +411,7 @@ public: wxFileDataObject(); const wxArrayString& GetFilenames(); -#ifdef __WXMSW__ void AddFile(const wxString &filename); -#endif };