void wxWindowBase::CaptureMouse()
{
- wxLogTrace(_T("mousecapture"), _T("CaptureMouse(%p)"), wx_static_cast(void*, this));
+ wxLogTrace(_T("mousecapture"), _T("CaptureMouse(%p)"), static_cast<void*>(this));
wxASSERT_MSG( !ms_winCaptureChanging, _T("recursive CaptureMouse call?") );
void wxWindowBase::ReleaseMouse()
{
- wxLogTrace(_T("mousecapture"), _T("ReleaseMouse(%p)"), wx_static_cast(void*, this));
+ wxLogTrace(_T("mousecapture"), _T("ReleaseMouse(%p)"), static_cast<void*>(this));
wxASSERT_MSG( !ms_winCaptureChanging, _T("recursive ReleaseMouse call?") );
wxLogTrace(_T("mousecapture"),
(const wxChar *) _T("After ReleaseMouse() mouse is captured by %p"),
- wx_static_cast(void*, GetCapture()));
+ static_cast<void*>(GetCapture()));
}
static void DoNotifyWindowAboutCaptureLost(wxWindow *win)
win == wxConstCast(this, wxWindowBase)->GetMainWindowOfCompositeControl();
}
+// ----------------------------------------------------------------------------
+// drag and drop
+// ----------------------------------------------------------------------------
+
+#if wxUSE_DRAG_AND_DROP && !defined(__WXMSW__)
+
+namespace
+{
+
+class DragAcceptFilesTarget : public wxFileDropTarget
+{
+public:
+ DragAcceptFilesTarget(wxWindowBase *win) : m_win(win) {}
+
+ virtual bool OnDropFiles(wxCoord x, wxCoord y,
+ const wxArrayString& filenames)
+ {
+ wxDropFilesEvent event(wxEVT_DROP_FILES,
+ filenames.size(),
+ wxCArrayString(filenames).Release());
+ event.SetEventObject(m_win);
+ event.m_pos.x = x;
+ event.m_pos.y = y;
+
+ return m_win->HandleWindowEvent(event);
+ }
+
+private:
+ wxWindowBase * const m_win;
+
+ DECLARE_NO_COPY_CLASS(DragAcceptFilesTarget)
+};
+
+
+} // anonymous namespace
+
+// Generic version of DragAcceptFiles(). It works by installing a simple
+// wxFileDropTarget-to-EVT_DROP_FILES adaptor and therefore cannot be used
+// together with explicit SetDropTarget() calls.
+void wxWindowBase::DragAcceptFiles(bool accept)
+{
+ if ( accept )
+ {
+ wxASSERT_MSG( !GetDropTarget(),
+ "cannot use DragAcceptFiles() and SetDropTarget() together" );
+ SetDropTarget(new DragAcceptFilesTarget(this));
+ }
+ else
+ {
+ SetDropTarget(NULL);
+ }
+}
+
+#endif // wxUSE_DRAG_AND_DROP && !defined(__WXMSW__)
+
// ----------------------------------------------------------------------------
// global functions
// ----------------------------------------------------------------------------