#define _WX_CLNTDATAH__
#ifdef __GNUG__
- #pragma interface "event.h"
+ #pragma interface "clntdata.h"
#endif
#include "wx/defs.h"
+#include "wx/string.h"
// ----------------------------------------------------------------------------
class WXDLLEXPORT wxStringClientData : public wxClientData
{
public:
- wxStringClientData() { }
+ wxStringClientData() : m_data() { }
wxStringClientData( const wxString &data ) : m_data(data) { }
void SetData( const wxString &data ) { m_data = data; }
const wxString& GetData() const { return m_data; }
};
+
+// This class is a mixin that provides storage and management of "client
+// data." The client data stored can either be a pointer to a wxClientData
+// object in which case it is managed by the container (i.e. it will delete
+// the data when it's destroyed) or an untyped pointer which won't be deleted
+// by the container - but not both of them
+//
+// NOTE: This functionality is currently duplicated in wxEvtHandler in order
+// to avoid having more than one vtable in that class heirachy.
+
class WXDLLEXPORT wxClientDataContainer
{
public:
wxClientDataContainer();
- ~wxClientDataContainer();
+ virtual ~wxClientDataContainer();
- // each window may have associated client data: either a pointer to
- // wxClientData object in which case it is managed by the window (i.e.
- // it will delete the data when it's destroyed) or an untyped pointer
- // which won't be deleted by the window - but not both of them
void SetClientObject( wxClientData *data ) { DoSetClientObject(data); }
wxClientData *GetClientObject() const { return DoGetClientObject(); }
void *GetClientData() const { return DoGetClientData(); }
protected:
- // user data associated with the window: either an object which will be
- // deleted by the window when it's deleted or some raw pointer which we do
- // nothing with - only one type of data can be used with the given window
- // (i.e. you cannot set the void data and then associate the window with
- // wxClientData or vice versa)
+ // The user data: either an object which will be deleted by the container
+ // when it's deleted or some raw pointer which we do nothing with - only
+ // one type of data can be used with the given window (i.e. you cannot set
+ // the void data and then associate the container with wxClientData or vice
+ // versa)
union
{
wxClientData *m_clientObject;