X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/55945915c940d1708d296e69bb195f9388af8203..4532786ee21088b57755d254a9d449e0b7b6b7e0:/src/os2/dnd.cpp?ds=sidebyside diff --git a/src/os2/dnd.cpp b/src/os2/dnd.cpp index a8dc2ed315..e612b2ee65 100644 --- a/src/os2/dnd.cpp +++ b/src/os2/dnd.cpp @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////// -// Name: dnd.cpp +// Name: src/os2/dnd.cpp // Purpose: wxDropTarget, wxDropSource, wxDataObject implementation // Author: David Webster // Modified by: @@ -9,21 +9,23 @@ // Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "dnd.h" -#endif +// For compilers that support precompilation, includes "wx.h". +#include "wx/wxprec.h" + +#if wxUSE_DRAG_AND_DROP -#include "wx/window.h" -#include "wx/app.h" -#include "wx/gdicmn.h" #include "wx/dnd.h" +#ifndef WX_PRECOMP + #include "wx/app.h" + #include "wx/window.h" + #include "wx/gdicmn.h" +#endif + #define INCL_PM #define INCL_DOS #include -#if wxUSE_DRAG_AND_DROP - // ---------------------------------------------------------------------------- // global // ---------------------------------------------------------------------------- @@ -32,6 +34,7 @@ // Private functions ///////////////////////////////////////////////////////////////////////////// +#if 0 static wxDragResult ConvertDragEffectToResult ( DWORD dwEffect ) @@ -73,6 +76,7 @@ static DWORD ConvertDragResultToEffect ( return DO_DEFAULT; } } // end of ConvertDragResultToEffect +#endif class CIDropTarget { @@ -118,14 +122,14 @@ bool CIDropTarget::DragLeave() // Release the held object // Free(); - return TRUE; + return true; } // end of CIDropTarget::DragLeave MRESULT CIDropTarget::DragOver () { char zBuffer[128]; ULONG ulBytes; - USHORT uOp; + USHORT uOp = 0; USHORT uIndicator; ULONG ulItems; ULONG i; @@ -195,7 +199,7 @@ MRESULT CIDropTarget::Drop () { char zBuffer[128]; ULONG ulBytes; - USHORT uOp; + USHORT uOp = 0; USHORT uIndicator; ULONG ulItems; ULONG i; @@ -248,7 +252,7 @@ MRESULT CIDropTarget::Drop () ,m_pDragInfo->yDrop )) { - wxDragResult eRc; + wxDragResult eRc = wxDragNone; // // And now it has the data @@ -258,7 +262,7 @@ MRESULT CIDropTarget::Drop () ,eRc ); } - //else: OnDrop() returned FALSE, no need to copy data + //else: OnDrop() returned false, no need to copy data // // Release the held object @@ -290,12 +294,12 @@ bool wxDropTarget::GetData () if (vFormat == wxDF_INVALID) { - return FALSE; + return false; } // // Under OS/2 we already have the data via the attached DRAGITEM's // - return TRUE; + return true; } // end of wxDropTarget::GetData wxDataFormat wxDropTarget::GetSupportedFormat ( @@ -311,7 +315,7 @@ wxDataFormat wxDropTarget::GetSupportedFormat ( ULONG n; wxString sMechanism; wxString sFormat; - bool bValid = FALSE; + bool bValid = false; pFormats = ulFormats == 1 ? &vFormat : new wxDataFormat[ulFormats]; m_dataObject->GetAllFormats( pFormats @@ -325,44 +329,44 @@ wxDataFormat wxDropTarget::GetSupportedFormat ( case wxDF_TEXT: case wxDF_FILENAME: case wxDF_HTML: - sMechanism = "DRM_OS2FILE"; - sFormat = "DRF_TEXT"; + sMechanism = _T("DRM_OS2FILE"); + sFormat = _T("DRF_TEXT"); break; case wxDF_OEMTEXT: - sMechanism = "DRM_OS2FILE"; - sFormat = "DRF_OEMTEXT"; + sMechanism = _T("DRM_OS2FILE"); + sFormat = _T("DRF_OEMTEXT"); break; case wxDF_BITMAP: - sMechanism = "DRM_OS2FILE"; - sFormat = "DRF_BITMAP"; + sMechanism = _T("DRM_OS2FILE"); + sFormat = _T("DRF_BITMAP"); break; case wxDF_METAFILE: case wxDF_ENHMETAFILE: - sMechanism = "DRM_OS2FILE"; - sFormat = "DRF_METAFILE"; + sMechanism = _T("DRM_OS2FILE"); + sFormat = _T("DRF_METAFILE"); break; case wxDF_TIFF: - sMechanism = "DRM_OS2FILE"; - sFormat = "DRF_TIFF"; + sMechanism = _T("DRM_OS2FILE"); + sFormat = _T("DRF_TIFF"); break; case wxDF_SYLK: - sMechanism = "DRM_OS2FILE"; - sFormat = "DRF_SYLK"; + sMechanism = _T("DRM_OS2FILE"); + sFormat = _T("DRF_SYLK"); break; case wxDF_DIF: - sMechanism = "DRM_OS2FILE"; - sFormat = "DRF_DIF"; + sMechanism = _T("DRM_OS2FILE"); + sFormat = _T("DRF_DIF"); break; case wxDF_DIB: - sMechanism = "DRM_OS2FILE"; - sFormat = "DRF_DIB"; + sMechanism = _T("DRM_OS2FILE"); + sFormat = _T("DRF_DIB"); break; case wxDF_PALETTE: @@ -371,21 +375,21 @@ wxDataFormat wxDropTarget::GetSupportedFormat ( case wxDF_WAVE: case wxDF_UNICODETEXT: case wxDF_LOCALE: - sMechanism = "DRM_OS2FILE"; - sFormat = "DRF_UNKNOWN"; + sMechanism = _T("DRM_OS2FILE"); + sFormat = _T("DRF_UNKNOWN"); break; case wxDF_PRIVATE: - sMechanism = "DRM_OBJECT"; - sFormat = "DRF_UNKNOWN"; + sMechanism = _T("DRM_OBJECT"); + sFormat = _T("DRF_UNKNOWN"); break; } for (i = 0; i < ulItems; i++) { pDragItem = ::DrgQueryDragitemPtr(pDataSource, i); - if (::DrgVerifyRMF(pDragItem, sMechanism.c_str(), sFormat.c_str())) + if (::DrgVerifyRMF(pDragItem, (PSZ)sMechanism.c_str(), (PSZ)sFormat.c_str())) { - bValid = TRUE; + bValid = true; break; } } @@ -432,24 +436,19 @@ bool wxDropTarget::OnDrop ( , wxCoord WXUNUSED(y) ) { - return TRUE; + return true; } // end of wxDropTarget::OnDrop //------------------------------------------------------------------------- // wxDropSource //------------------------------------------------------------------------- -wxDropSource::wxDropSource ( - wxWindow* pWin -) +wxDropSource::wxDropSource ( wxWindow* WXUNUSED(pWin) ) { Init(); } // end of wxDropSource::wxDropSource -wxDropSource::wxDropSource ( - wxDataObject& rData -, wxWindow* pWin -) +wxDropSource::wxDropSource ( wxDataObject& rData, wxWindow* WXUNUSED(pWin) ) { Init(); SetData(rData); @@ -517,12 +516,17 @@ bool wxDropSource::GiveFeedback ( case wxDragLink: m_pDragInfo->usOperation = DO_LINK; break; + + case wxDragNone: + case wxDragCancel: + case wxDragError: + break; } - return TRUE; + return true; } else { - return FALSE; + return false; } } // end of GuiAdvDnd_CDropSource::GiveFeedback @@ -542,13 +546,13 @@ void wxDropSource::Init () m_vDragImage.cxOffset = 0; m_vDragImage.cyOffset = 0; - HSTR hStrType = ::DrgAddStrHandle(DRT_UNKNOWN); - HSTR hStrRMF; - HSTR hStrContainer; - char zFormats[128]; - char zContainer[128]; - USHORT uSize = GetDataObject()->GetDataSize(GetDataObject()->GetPreferredFormat()) + 1; - char* pzBuffer = new char[uSize]; + HSTR hStrType = ::DrgAddStrHandle(DRT_UNKNOWN); + HSTR hStrRMF; + HSTR hStrContainer; + wxChar zFormats[128]; + wxChar zContainer[128]; + USHORT uSize = (USHORT)(GetDataObject()->GetDataSize(GetDataObject()->GetPreferredFormat()) + 1); + wxChar* pzBuffer = new wxChar[uSize]; memset(pzBuffer, '\0', GetDataObject()->GetDataSize(GetDataObject()->GetPreferredFormat())); pzBuffer[GetDataObject()->GetDataSize(GetDataObject()->GetPreferredFormat())] = '\0'; @@ -556,11 +560,11 @@ void wxDropSource::Init () ,(void*)pzBuffer ); - strcpy(zFormats, ""); - strcpy(zContainer, GetDataObject()->GetPreferredFormat().GetId().c_str()); + wxStrcpy(zFormats, _T("")); + wxStrcpy(zContainer, GetDataObject()->GetPreferredFormat().GetId()); - hStrRMF = ::DrgAddStrHandle(zFormats); - hStrContainer = ::DrgAddStrHandle(zContainer); + hStrRMF = ::DrgAddStrHandle((PSZ)zFormats); + hStrContainer = ::DrgAddStrHandle((PSZ)zContainer); m_pDragItem = new DRAGITEM[m_ulItems]; for (ULONG i = 0; i < m_ulItems; i++) @@ -571,7 +575,7 @@ void wxDropSource::Init () m_pDragItem[i].hstrContainerName = hStrContainer; m_pDragItem[i].fsControl = 0; m_pDragItem[i].fsSupportedOps = DO_COPYABLE | DO_MOVEABLE | DO_LINKABLE; - m_pDragItem[i].hstrSourceName = ::DrgAddStrHandle(pzBuffer); + m_pDragItem[i].hstrSourceName = ::DrgAddStrHandle((PSZ)pzBuffer); m_pDragItem[i].hstrTargetName = m_pDragItem[i].hstrSourceName; m_pDragItem[i].ulItemID = i; ::DrgSetDragitem( m_pDragInfo