]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/clntdata.h
Moved the cleanup code to an EVT_WINDOW_DESTROY handler.
[wxWidgets.git] / include / wx / clntdata.h
index e91f2391b21037cb714310d79ecff9823cb9f568..a632635ad80d9e91975920370f6d8d46d607ff2f 100644 (file)
 #define _WX_CLNTDATAH__
 
 #ifdef __GNUG__
-    #pragma interface "event.h"
+    #pragma interface "clntdata.h"
 #endif
 
 #include "wx/defs.h"
+#include "wx/string.h"
 
 // ----------------------------------------------------------------------------
 
@@ -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;