X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0d2a2b601b1994333886dff8f53d82a714c4042f..4cd9591aab117574f7d0af749d0d1f774b9d7945:/samples/dnd/dnd.cpp diff --git a/samples/dnd/dnd.cpp b/samples/dnd/dnd.cpp index 7c66964f3e..cf3015cde9 100644 --- a/samples/dnd/dnd.cpp +++ b/samples/dnd/dnd.cpp @@ -9,22 +9,26 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#include "wx/wxprec.h" +#include #ifdef __BORLANDC__ #pragma hdrstop #endif #ifndef WX_PRECOMP -#include "wx/wx.h" +#include #endif -#include "wx/intl.h" -#include "wx/log.h" +#include +#include -#include "wx/dnd.h" +#include -#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(long x, long y, const wxChar* psz ); private: wxListBox *m_pOwner; @@ -50,7 +54,7 @@ public: DnDFile(wxListBox *pOwner) { m_pOwner = pOwner; } virtual bool OnDropFiles(long x, long y, - size_t nFiles, const char * const aszFiles[] ); + size_t nFiles, const wxChar* const aszFiles[] ); private: wxListBox *m_pOwner; @@ -87,8 +91,6 @@ public: void OnLeftDown(wxMouseEvent& event); void OnRightDown(wxMouseEvent& event); - bool OnClose(); - DECLARE_EVENT_TABLE() private: @@ -145,7 +147,7 @@ DnDFrame::DnDFrame(wxFrame *frame, char *title, int x, int y, int w, int h) m_strText("wxWindows drag & drop works :-)") { - SetBackgroundColour(* wxWHITE); +// SetBackgroundColour(* wxWHITE); // frame icon and status bar SetIcon(wxICON(mondrian)); @@ -185,7 +187,7 @@ DnDFrame::DnDFrame(wxFrame *frame, char *title, int x, int y, int w, int h) m_ctrlLog = new wxTextCtrl(this, -1, "", pos, size, wxTE_MULTILINE | wxTE_READONLY | - wxSUNKEN_BORDER| wxHSCROLL); + wxSUNKEN_BORDER ); // redirect log messages to the text window (don't forget to delete it!) m_pLog = new wxLogTextCtrl(m_ctrlLog); @@ -236,8 +238,8 @@ void DnDFrame::OnPaint(wxPaintEvent& /*event*/) GetClientSize( &w, &h ); wxPaintDC dc(this); - dc.SetFont( wxFont( 24, wxDECORATIVE, wxNORMAL, wxNORMAL ) ); - dc.DrawText( "Drag text from here!", 20, h-30 ); + dc.SetFont( wxFont( 24, wxDECORATIVE, wxNORMAL, wxNORMAL, FALSE, "charter" ) ); + 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,18 +349,18 @@ DnDFrame::~DnDFrame() // ---------------------------------------------------------------------------- // Notifications called by the base class // ---------------------------------------------------------------------------- -bool DnDText::OnDropText(long, long, const char *psz) +bool DnDText::OnDropText( long, long, const wxChar *psz ) { m_pOwner->Append(psz); return TRUE; } -bool DnDFile::OnDropFiles(long, long, size_t nFiles, - const char * const aszFiles[]) +bool DnDFile::OnDropFiles( long, long, size_t nFiles, + const wxChar* const aszFiles[]) { wxString str; - str.Printf("%d files dropped", nFiles); + str.Printf( _T("%d files dropped"), nFiles); m_pOwner->Append(str); for ( size_t n = 0; n < nFiles; n++ ) { m_pOwner->Append(aszFiles[n]);