Call SetDataSource() from OnEnter() so that querying/accessing the data is possible from then on, rename to MSWxxx

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58276 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robert Roebling
2009-01-21 17:44:55 +00:00
parent 055400c94e
commit 81a1c6869e
2 changed files with 14 additions and 11 deletions

View File

@@ -54,15 +54,15 @@ public:
// ------------------------------- // -------------------------------
// do we accept this kind of data? // do we accept this kind of data?
bool IsAcceptedData(IDataObject *pIDataSource) const; bool MSWIsAcceptedData(IDataObject *pIDataSource) const;
// give us the data source from IDropTarget::Drop() - this is later used by // give us the data source from IDropTarget::Drop() - this is later used by
// GetData() when it's called from inside OnData() // GetData() when it's called from inside OnData()
void SetDataSource(IDataObject *pIDataSource); void MSWSetDataSource(IDataObject *pIDataSource);
private: private:
// helper used by IsAcceptedData() and GetData() // helper used by IsAcceptedData() and GetData()
wxDataFormat GetSupportedFormat(IDataObject *pIDataSource) const; wxDataFormat MSWGetSupportedFormat(IDataObject *pIDataSource) const;
wxIDropTarget *m_pIDropTarget; // the pointer to our COM interface wxIDropTarget *m_pIDropTarget; // the pointer to our COM interface
IDataObject *m_pIDataSource; // the pointer to the source data object IDataObject *m_pIDataSource; // the pointer to the source data object

View File

@@ -192,13 +192,16 @@ STDMETHODIMP wxIDropTarget::DragEnter(IDataObject *pIDataSource,
} }
#endif // 0 #endif // 0
if ( !m_pTarget->IsAcceptedData(pIDataSource) ) { if ( !m_pTarget->MSWIsAcceptedData(pIDataSource) ) {
// we don't accept this kind of data // we don't accept this kind of data
*pdwEffect = DROPEFFECT_NONE; *pdwEffect = DROPEFFECT_NONE;
return S_OK; return S_OK;
} }
// for use in OnEnter and OnDrag calls
m_pTarget->MSWSetDataSource(pIDataSource);
// get hold of the data object // get hold of the data object
m_pIDataObject = pIDataSource; m_pIDataObject = pIDataSource;
m_pIDataObject->AddRef(); m_pIDataObject->AddRef();
@@ -308,7 +311,7 @@ STDMETHODIMP wxIDropTarget::Drop(IDataObject *pIDataSource,
// first ask the drop target if it wants data // first ask the drop target if it wants data
if ( m_pTarget->OnDrop(pt.x, pt.y) ) { if ( m_pTarget->OnDrop(pt.x, pt.y) ) {
// it does, so give it the data source // it does, so give it the data source
m_pTarget->SetDataSource(pIDataSource); m_pTarget->MSWSetDataSource(pIDataSource);
// and now it has the data // and now it has the data
wxDragResult rc = ConvertDragEffectToResult( wxDragResult rc = ConvertDragEffectToResult(
@@ -432,7 +435,7 @@ bool wxDropTarget::OnDrop(wxCoord WXUNUSED(x), wxCoord WXUNUSED(y))
// copy the data from the data source to the target data object // copy the data from the data source to the target data object
bool wxDropTarget::GetData() bool wxDropTarget::GetData()
{ {
wxDataFormat format = GetSupportedFormat(m_pIDataSource); wxDataFormat format = MSWGetSupportedFormat(m_pIDataSource);
if ( format == wxDF_INVALID ) { if ( format == wxDF_INVALID ) {
// this is strange because IsAcceptedData() succeeded previously! // this is strange because IsAcceptedData() succeeded previously!
wxFAIL_MSG(wxT("strange - did supported formats list change?")); wxFAIL_MSG(wxT("strange - did supported formats list change?"));
@@ -474,15 +477,15 @@ bool wxDropTarget::GetData()
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// we need a data source, so wxIDropTarget gives it to us using this function // we need a data source, so wxIDropTarget gives it to us using this function
void wxDropTarget::SetDataSource(IDataObject *pIDataSource) void wxDropTarget::MSWSetDataSource(IDataObject *pIDataSource)
{ {
m_pIDataSource = pIDataSource; m_pIDataSource = pIDataSource;
} }
// determine if we accept data of this type // determine if we accept data of this type
bool wxDropTarget::IsAcceptedData(IDataObject *pIDataSource) const bool wxDropTarget::MSWIsAcceptedData(IDataObject *pIDataSource) const
{ {
return GetSupportedFormat(pIDataSource) != wxDF_INVALID; return MSWGetSupportedFormat(pIDataSource) != wxDF_INVALID;
} }
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
@@ -491,10 +494,10 @@ bool wxDropTarget::IsAcceptedData(IDataObject *pIDataSource) const
wxDataFormat wxDropTarget::GetMatchingPair() wxDataFormat wxDropTarget::GetMatchingPair()
{ {
return GetSupportedFormat( m_pIDataSource ); return MSWGetSupportedFormat( m_pIDataSource );
} }
wxDataFormat wxDropTarget::GetSupportedFormat(IDataObject *pIDataSource) const wxDataFormat wxDropTarget::MSWGetSupportedFormat(IDataObject *pIDataSource) const
{ {
// this strucutre describes a data of any type (first field will be // this strucutre describes a data of any type (first field will be
// changing) being passed through global memory block. // changing) being passed through global memory block.