]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/dnd/dnd.cpp
GTK 1.0.x compilation fix
[wxWidgets.git] / samples / dnd / dnd.cpp
index 9de516c4813585bef1710b79617ad6aa4fac9a77..64244a8a0096b64d58da2aa19e5981993f42b98f 100644 (file)
 
 #include  "wx/dnd.h"
 
-#ifdef __WXGTK__
+#ifdef __WXMOTIF__
+#error Sorry, drag and drop is not yet implemented on wxMotif.
+#endif
+
+#if defined(__WXGTK__) || defined(__WXMOTIF__)
 #include "mondrian.xpm"
 #endif
 
@@ -38,7 +42,7 @@ class DnDText : public wxTextDropTarget
 public:
   DnDText(wxListBox *pOwner) { m_pOwner = pOwner; }
 
-  virtual bool OnDropText(long x, long y, const char *psz );
+  virtual bool OnDropText(int x, int y, const char *psz );
 
 private:
   wxListBox *m_pOwner;
@@ -49,7 +53,7 @@ class DnDFile : public wxFileDropTarget
 public:
   DnDFile(wxListBox *pOwner) { m_pOwner = pOwner; }
 
-  virtual bool OnDropFiles(long x, long y,
+  virtual bool OnDropFiles(int x, int y,
                            size_t nFiles, const char * const aszFiles[] );
 
 private:
@@ -87,8 +91,6 @@ public:
   void OnLeftDown(wxMouseEvent& event);
   void OnRightDown(wxMouseEvent& event);
 
-  bool OnClose();
-
   DECLARE_EVENT_TABLE()
 
 private:
@@ -237,7 +239,7 @@ void DnDFrame::OnPaint(wxPaintEvent& /*event*/)
 
   wxPaintDC dc(this);
   dc.SetFont( wxFont( 24, wxDECORATIVE, wxNORMAL, wxNORMAL, FALSE, "charter" ) );
-  dc.DrawText( "Drag text from here!", 20, h-22 );
+  dc.DrawText( "Drag text from here!", 20, h-35 );
 }
 
 void DnDFrame::OnDrag(wxCommandEvent& /* event */)
@@ -298,18 +300,17 @@ void DnDFrame::OnLogClear(wxCommandEvent& /* event */ )
   m_ctrlLog->Clear();
 }
 
-bool DnDFrame::OnClose()
-{
-  return TRUE;
-}
-
 void DnDFrame::OnLeftDown(wxMouseEvent &WXUNUSED(event) )
 {
   if ( !m_strText.IsEmpty() ) 
   {
     // start drag operation
-
-    wxDropSource dragSource( new wxTextDataObject (m_strText), this );
+#ifdef __WXMSW__
+    wxTextDataObject textData(m_strText);
+    wxDropSource dragSource( textData, this );
+#else
+    wxDropSource dragSource( new wxTextDataObject (m_strText), this, wxIcon(mondrian_xpm) );
+#endif
     const char *pc;
 
     switch ( dragSource.DoDragDrop(TRUE) ) 
@@ -348,14 +349,14 @@ DnDFrame::~DnDFrame()
 // ----------------------------------------------------------------------------
 // Notifications called by the base class
 // ----------------------------------------------------------------------------
-bool DnDText::OnDropText(long, long, const char *psz)
+bool DnDText::OnDropText(int, int, const char *psz)
 {
   m_pOwner->Append(psz);
 
   return TRUE;
 }
 
-bool DnDFile::OnDropFiles(long, long, size_t nFiles,
+bool DnDFile::OnDropFiles(int, int, size_t nFiles,
                           const char * const aszFiles[])
 {
   wxString str;