X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/88a9f974b8d98b194174270c575cc6cb9b2b5bd3..5d644707ca96dcaa63dc5a24c9eb5c2b7ee0b50d:/include/wx/clntdata.h?ds=sidebyside diff --git a/include/wx/clntdata.h b/include/wx/clntdata.h index e91f2391b2..1b0f1792aa 100644 --- a/include/wx/clntdata.h +++ b/include/wx/clntdata.h @@ -13,10 +13,11 @@ #define _WX_CLNTDATAH__ #ifdef __GNUG__ - #pragma interface "event.h" + #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;