]> git.saurik.com Git - wxWidgets.git/blame - interface/wx/clntdata.h
Applied patch for #15189 - avoid crash when deleting focused cell (dghart)
[wxWidgets.git] / interface / wx / clntdata.h
CommitLineData
23324ae1
FM
1/////////////////////////////////////////////////////////////////////////////
2// Name: clntdata.h
d18d9f60 3// Purpose: interface of wxClientData[Container] and wxStringClientData
23324ae1
FM
4// Author: wxWidgets team
5// RCS-ID: $Id$
526954c5 6// Licence: wxWindows licence
23324ae1
FM
7/////////////////////////////////////////////////////////////////////////////
8
9/**
10 @class wxClientDataContainer
7c913512 11
163bd4f7
FM
12 This class is a mixin that provides storage and management of "client data".
13 This data can either be of type void - in which case the data
d18d9f60
BP
14 @e container does not take care of freeing the data again or it is of
15 type wxClientData or its derivatives. In that case the container will free
16 the memory itself later. Note that you @e must not assign both void data
17 and data derived from the wxClientData class to a container.
7c913512 18
d18d9f60
BP
19 @note This functionality is currently duplicated in wxEvtHandler in order
20 to avoid having more than one vtable in that class hierarchy.
7c913512 21
23324ae1 22 @library{wxbase}
d18d9f60 23 @category{containers}
7c913512 24
e54c96f1 25 @see wxEvtHandler, wxClientData
23324ae1 26*/
7c913512 27class wxClientDataContainer
23324ae1
FM
28{
29public:
30 /**
d18d9f60 31 Default constructor.
23324ae1
FM
32 */
33 wxClientDataContainer();
34
35 /**
d18d9f60 36 Destructor.
23324ae1 37 */
b7e94bd7 38 virtual ~wxClientDataContainer();
23324ae1
FM
39
40 /**
41 Get the untyped client data.
42 */
328f5751 43 void* GetClientData() const;
23324ae1
FM
44
45 /**
46 Get a pointer to the client data object.
47 */
328f5751 48 wxClientData* GetClientObject() const;
23324ae1
FM
49
50 /**
51 Set the untyped client data.
52 */
53 void SetClientData(void* data);
54
55 /**
56 Set the client data object. Any previous object will be deleted.
57 */
58 void SetClientObject(wxClientData* data);
59};
60
61
e54c96f1 62
23324ae1
FM
63/**
64 @class wxClientData
7c913512 65
d18d9f60
BP
66 All classes deriving from wxEvtHandler (such as all controls and wxApp) can
67 hold arbitrary data which is here referred to as "client data". This is
68 useful e.g. for scripting languages which need to handle shadow objects for
69 most of wxWidgets' classes and which store a handle to such a shadow class
70 as client data in that class. This data can either be of type void - in
71 which case the data @e container does not take care of freeing the data
72 again or it is of type wxClientData or its derivatives. In that case the
73 container (e.g. a control) will free the memory itself later. Note that you
74 @e must not assign both void data and data derived from the wxClientData
75 class to a container.
76
77 Some controls can hold various items and these controls can additionally
78 hold client data for each item. This is the case for wxChoice, wxComboBox
79 and wxListBox. wxTreeCtrl has a specialized class wxTreeItemData for each
80 item in the tree.
81
82 If you want to add client data to your own classes, you may use the mix-in
83 class wxClientDataContainer.
7c913512 84
23324ae1 85 @library{wxbase}
d18d9f60 86 @category{containers}
7c913512 87
d18d9f60
BP
88 @see wxEvtHandler, wxTreeItemData, wxStringClientData,
89 wxClientDataContainer
23324ae1 90*/
7c913512 91class wxClientData
23324ae1
FM
92{
93public:
94 /**
95 Constructor.
96 */
97 wxClientData();
98
99 /**
100 Virtual destructor.
101 */
b7e94bd7 102 virtual ~wxClientData();
23324ae1
FM
103};
104
105
e54c96f1 106
23324ae1
FM
107/**
108 @class wxStringClientData
7c913512 109
23324ae1 110 Predefined client data class for holding a string.
7c913512 111
23324ae1 112 @library{wxbase}
d18d9f60 113 @category{containers}
23324ae1
FM
114*/
115class wxStringClientData : public wxClientData
116{
117public:
23324ae1 118 /**
d18d9f60 119 Default constructor.
23324ae1
FM
120 */
121 wxStringClientData();
d18d9f60
BP
122
123 /**
124 Create client data with string.
125 */
7c913512 126 wxStringClientData(const wxString& data);
23324ae1
FM
127
128 /**
129 Get string client data.
130 */
4707b84c 131 const wxString& GetData() const;
23324ae1
FM
132
133 /**
134 Set string client data.
135 */
136 void SetData(const wxString& data);
137};
e54c96f1 138