X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/88a9f974b8d98b194174270c575cc6cb9b2b5bd3..53c9228ead0c7c0955bdc882fc2ccc9aae8342ba:/include/wx/clntdata.h diff --git a/include/wx/clntdata.h b/include/wx/clntdata.h index e91f2391b2..d6b7800d45 100644 --- a/include/wx/clntdata.h +++ b/include/wx/clntdata.h @@ -12,11 +12,12 @@ #ifndef _WX_CLNTDATAH__ #define _WX_CLNTDATAH__ -#ifdef __GNUG__ - #pragma interface "event.h" +#if defined(__GNUG__) && !defined(__APPLE__) + #pragma interface "clntdata.h" #endif #include "wx/defs.h" +#include "wx/string.h" // ---------------------------------------------------------------------------- @@ -38,7 +39,7 @@ public: 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; } @@ -48,16 +49,22 @@ private: }; + +// 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(); } @@ -65,11 +72,11 @@ public: 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;