dataobj.h

Clase wxCustomDataObject

wxCustomDataObject es una especialización de wxDataObjectSimple para algunos datos específicos de la aplicación en arbitraria (ya sea personalizado o uno de los estándar).

Jerarquía:

Jerarquía de la clase wxCustomDataObject

La única restricción es que se supone que estos datos se pueden copiar bit a bit (es decir, con memcpy()), por lo que sería una mala idea hacer que contenga un objeto C++ (aunque C struct está bien).

Por defecto, wxCustomDataObject almacena los datos en un buffer. Para poner los datos en el buffer se puede usar SetData() o TakeData() dependiendo de si se quiere que el objeto haga una copia de los datos o no.

Esta clase puede usarse tal cual, pero si no se quiere almacenar los datos dentro del objeto sino proporcionarlos bajo demanda, se debería anular GetSize(), GetData() y SetData() (o puede que solo las dos primeras o solo la última si solo se permite leer/escribir los datos).

Funciones miembro

wxCustomDataObject()

wxCustomDataObject::wxCustomDataObject(const wxDataFormat & format = wxFormatInvalid)

El constructor acepta un argumento de formato que especifica el (único) formato soportado por este objeto.

Si no se establece aquí, debe utilizarse wxDataObjectSimple::SetFormat().

~wxCustomDataObject()

virtual wxCustomDataObject::~wxCustomDataObject()

El destructor liberará los datos contenidos en el objeto.

Obsérvese que aunque llama a la función virtual Free(), siempre se llamará a la versión de la clase base (C++ no permite llamar a funciones virtuales desde constructores o destructores), así que si se anula Free(), se debería anular también el destructor en la clase (que probablemente solo llamaría a la versión de Free() de la clase derivada).

Alloc()

virtual void* wxCustomDataObject::Alloc(size_t size)

Esta función es llamada para asignar bytes de tamaño de memoria desde SetData().

La versión por defecto solo utiliza el operador new.

Free()

virtual void wxCustomDataObject::Free()

Esta función es llamada cuando los datos son liberados, puede ser sobrescrita como se quiera (o puede no ser nada en absoluto).

La versión por defecto llama al operador delete[] sobre los datos.

GetData()

virtual void* wxCustomDataObject::GetData() const

Devuelve un puntero a los datos.

GetSize()

virtual size_t wxCustomDataObject::GetSize() const

Devuelve el tamaño de los datos en bytes.

SetData()

virtual bool wxCustomDataObject::SetData( size_t size, const void * data )

Establece los datos.

El objeto de datos hará una copia interna.

Reimplementado de wxDataObjectSimple.

TakeData()

void wxCustomDataObject::TakeData( size_t size, void * data )

Como SetData(), pero no copia los datos, sino que el objeto toma posesión del puntero.

Métodos y datos heredados

Esta clase hereda los métodos y datos miembro públicos y protegidos de wxDataObject y wxDataObjectSimple.