X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4fd899b671b25d3671e3fceb1b59f8edd9113af9..fb8d7eb7a880f1f2e32d8830f9c5e12b2536e05f:/src/os2/dnd.cpp diff --git a/src/os2/dnd.cpp b/src/os2/dnd.cpp index 6a645291fc..3afb3474f5 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,19 +9,22 @@ // Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "dnd.h" +// For compilers that support precompilation, includes "wx.h". +#include "wx/wxprec.h" + +#if wxUSE_DRAG_AND_DROP + +#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 -#include "wx/window.h" -#include "wx/app.h" -#include "wx/gdicmn.h" -#include "wx/dnd.h" - -#if wxUSE_DRAG_AND_DROP // ---------------------------------------------------------------------------- // global @@ -31,6 +34,7 @@ // Private functions ///////////////////////////////////////////////////////////////////////////// +#if 0 static wxDragResult ConvertDragEffectToResult ( DWORD dwEffect ) @@ -72,6 +76,7 @@ static DWORD ConvertDragResultToEffect ( return DO_DEFAULT; } } // end of ConvertDragResultToEffect +#endif class CIDropTarget { @@ -117,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; @@ -194,7 +199,7 @@ MRESULT CIDropTarget::Drop () { char zBuffer[128]; ULONG ulBytes; - USHORT uOp; + USHORT uOp = 0; USHORT uIndicator; ULONG ulItems; ULONG i; @@ -247,7 +252,7 @@ MRESULT CIDropTarget::Drop () ,m_pDragInfo->yDrop )) { - wxDragResult eRc; + wxDragResult eRc = wxDragNone; // // And now it has the data @@ -257,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 @@ -289,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 ( @@ -310,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 @@ -324,44 +329,44 @@ wxDataFormat wxDropTarget::GetSupportedFormat ( case wxDF_TEXT: case wxDF_FILENAME: case wxDF_HTML: - sMechanism = "DRM_OS2FILE"; - sFormat = "DRF_TEXT"; + sMechanism = wxT("DRM_OS2FILE"); + sFormat = wxT("DRF_TEXT"); break; case wxDF_OEMTEXT: - sMechanism = "DRM_OS2FILE"; - sFormat = "DRF_OEMTEXT"; + sMechanism = wxT("DRM_OS2FILE"); + sFormat = wxT("DRF_OEMTEXT"); break; case wxDF_BITMAP: - sMechanism = "DRM_OS2FILE"; - sFormat = "DRF_BITMAP"; + sMechanism = wxT("DRM_OS2FILE"); + sFormat = wxT("DRF_BITMAP"); break; case wxDF_METAFILE: case wxDF_ENHMETAFILE: - sMechanism = "DRM_OS2FILE"; - sFormat = "DRF_METAFILE"; + sMechanism = wxT("DRM_OS2FILE"); + sFormat = wxT("DRF_METAFILE"); break; case wxDF_TIFF: - sMechanism = "DRM_OS2FILE"; - sFormat = "DRF_TIFF"; + sMechanism = wxT("DRM_OS2FILE"); + sFormat = wxT("DRF_TIFF"); break; case wxDF_SYLK: - sMechanism = "DRM_OS2FILE"; - sFormat = "DRF_SYLK"; + sMechanism = wxT("DRM_OS2FILE"); + sFormat = wxT("DRF_SYLK"); break; case wxDF_DIF: - sMechanism = "DRM_OS2FILE"; - sFormat = "DRF_DIF"; + sMechanism = wxT("DRM_OS2FILE"); + sFormat = wxT("DRF_DIF"); break; case wxDF_DIB: - sMechanism = "DRM_OS2FILE"; - sFormat = "DRF_DIB"; + sMechanism = wxT("DRM_OS2FILE"); + sFormat = wxT("DRF_DIB"); break; case wxDF_PALETTE: @@ -370,13 +375,13 @@ wxDataFormat wxDropTarget::GetSupportedFormat ( case wxDF_WAVE: case wxDF_UNICODETEXT: case wxDF_LOCALE: - sMechanism = "DRM_OS2FILE"; - sFormat = "DRF_UNKNOWN"; + sMechanism = wxT("DRM_OS2FILE"); + sFormat = wxT("DRF_UNKNOWN"); break; case wxDF_PRIVATE: - sMechanism = "DRM_OBJECT"; - sFormat = "DRF_UNKNOWN"; + sMechanism = wxT("DRM_OBJECT"); + sFormat = wxT("DRF_UNKNOWN"); break; } for (i = 0; i < ulItems; i++) @@ -384,7 +389,7 @@ wxDataFormat wxDropTarget::GetSupportedFormat ( pDragItem = ::DrgQueryDragitemPtr(pDataSource, i); if (::DrgVerifyRMF(pDragItem, sMechanism.c_str(), sFormat.c_str())) { - bValid = TRUE; + bValid = true; break; } } @@ -431,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); @@ -499,7 +499,7 @@ bool wxDropSource::GiveFeedback ( { const wxCursor& rCursor = GetCursor(eEffect); - if (rCursor.Ok()) + if (rCursor.IsOk()) { ::WinSetPointer(HWND_DESKTOP, (HPOINTER)rCursor.GetHCURSOR()); m_vDragImage.hImage = (LHANDLE)rCursor.GetHCURSOR(); @@ -516,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 @@ -541,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'; @@ -555,14 +560,14 @@ void wxDropSource::Init () ,(void*)pzBuffer ); - strcpy(zFormats, ""); - strcpy(zContainer, GetDataObject()->GetPreferredFormat().GetId().c_str()); + wxStrcpy(zFormats, wxT("")); + 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++); + for (ULONG i = 0; i < m_ulItems; i++) { m_pDragItem[i].hwndItem = m_pWindow->GetHWND(); m_pDragItem[i].hstrType = hStrType; @@ -570,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