Merge branch 'shared-client-data'

Allow sharing client data in wxGrid-related classes.

See #22369.
This commit is contained in:
Vadim Zeitlin
2022-05-01 02:55:36 +02:00
11 changed files with 402 additions and 160 deletions

View File

@@ -72,6 +72,35 @@ void *wxClientDataContainer::DoGetClientData() const
}
void wxSharedClientDataContainer::SetClientObject(wxClientData *data)
{
GetValidClientData()->SetClientObject(data);
}
wxClientData *wxSharedClientDataContainer::GetClientObject() const
{
return HasClientDataContainer() ? m_data->GetClientObject() : NULL;
}
void wxSharedClientDataContainer::SetClientData(void *data)
{
GetValidClientData()->SetClientData(data);
}
void *wxSharedClientDataContainer::GetClientData() const
{
return HasClientDataContainer() ? m_data->GetClientData() : NULL;
}
wxClientDataContainer *wxSharedClientDataContainer::GetValidClientData()
{
if ( !HasClientDataContainer() )
{
m_data = new wxRefCountedClientDataContainer;
}
return m_data.get();
}
// ----------------------------------------------------------------------------