};
+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;
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.", "");
};
// C++ version.
bool rval = False;
- wxPyBeginBlockThreads();
+ bool blocked = wxPyBeginBlockThreads();
if (wxPyCBH_findCallback(m_myInst, "GetDataHere")) {
PyObject* ro;
ro = wxPyCBH_callCallbackObj(m_myInst, Py_BuildValue("()"));
Py_DECREF(ro);
}
}
- wxPyEndBlockThreads();
+ wxPyEndBlockThreads(blocked);
return rval;
}
// 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;
}
%}
// 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);
public:
wxDataObjectComposite();
- %addtofunc Add "args[1].thisown = 0"
+ %apply SWIGTYPE *DISOWN { wxDataObjectSimple *dataObject };
void Add(wxDataObjectSimple *dataObject, int preferred = False);
+ %clear wxDataObjectSimple *dataObject;
};
//---------------------------------------------------------------------------
// 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);
wxBitmap wxPyBitmapDataObject::GetBitmap() const {
wxBitmap* rval = &wxNullBitmap;
- wxPyBeginBlockThreads();
+ bool blocked = wxPyBeginBlockThreads();
if (wxPyCBH_findCallback(m_myInst, "GetBitmap")) {
PyObject* ro;
wxBitmap* ptr;
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);
}
%}
// 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);
wxFileDataObject();
const wxArrayString& GetFilenames();
-#ifdef __WXMSW__
void AddFile(const wxString &filename);
-#endif
};
//---------------------------------------------------------------------------
-#ifndef __WXGTK__
+#if defined(__WXMSW__) || defined(__WXMAC__)
%{
#include <wx/metafile.h>