X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9230b62136ee786760375bf59292dabff6277aeb..11ccd01223df26d71bb775167e0349ff75e157ee:/samples/dnd/dnd.cpp diff --git a/samples/dnd/dnd.cpp b/samples/dnd/dnd.cpp index e08ee8377c..203fe37303 100644 --- a/samples/dnd/dnd.cpp +++ b/samples/dnd/dnd.cpp @@ -29,6 +29,7 @@ #include "wx/clipbrd.h" #include "wx/colordlg.h" #include "wx/sizer.h" +#include "wx/dataobj.h" #if wxUSE_METAFILES #include "wx/metafile.h" @@ -36,11 +37,12 @@ #if defined(__WXGTK__) || defined(__WXX11__) || defined(__WXMOTIF__) || defined(__WXMAC__) #include "mondrian.xpm" - +#if wxUSE_DRAG_AND_DROP #include "dnd_copy.xpm" #include "dnd_move.xpm" #include "dnd_none.xpm" #endif +#endif #if wxUSE_DRAG_AND_DROP @@ -81,7 +83,7 @@ class URLDropTarget : public wxDropTarget public: URLDropTarget() { SetDataObject(new wxURLDataObject); } - void OnDropURL(wxCoord x, wxCoord y, const wxString& text) + void OnDropURL(wxCoord WXUNUSED(x), wxCoord WXUNUSED(y), const wxString& text) { // of course, a real program would do something more useful here... wxMessageBox(text, _T("wxDnD sample: got URL"), @@ -90,7 +92,7 @@ public: // URLs can't be moved, only copied virtual wxDragResult OnDragOver(wxCoord WXUNUSED(x), wxCoord WXUNUSED(y), - wxDragResult def) + wxDragResult WXUNUSED(def)) { return wxDragLink; // At least IE 5.x needs wxDragLink, the // other browsers on MSW seem okay with it too. @@ -122,7 +124,7 @@ public: IMPLEMENT_APP(DnDApp); -#if wxUSE_DRAG_AND_DROP +#if wxUSE_DRAG_AND_DROP || wxUSE_CLIPBOARD // ---------------------------------------------------------------------------- // Define canvas class to show a bitmap @@ -143,7 +145,7 @@ public: Refresh(); } - void OnPaint(wxPaintEvent& event) + void OnPaint(wxPaintEvent& WXUNUSED(event)) { wxPaintDC dc(this); @@ -267,6 +269,8 @@ private: // shapes, each one with its own colour and position // ---------------------------------------------------------------------------- +#if wxUSE_DRAG_AND_DROP + class DnDShape { public: @@ -610,7 +614,7 @@ public: } virtual bool SetData(const wxDataFormat& format, - size_t len, const void *buf) + size_t WXUNUSED(len), const void *buf) { wxCHECK_MSG( format == m_formatShape, false, wxT( "unsupported format") ); @@ -760,6 +764,8 @@ private: DnDShapeFrame *m_frame; }; +#endif // wxUSE_DRAG_AND_DROP + // ---------------------------------------------------------------------------- // functions prototypes // ---------------------------------------------------------------------------- @@ -827,6 +833,8 @@ BEGIN_EVENT_TABLE(DnDFrame, wxFrame) EVT_SIZE( DnDFrame::OnSize) END_EVENT_TABLE() +#if wxUSE_DRAG_AND_DROP + BEGIN_EVENT_TABLE(DnDShapeFrame, wxFrame) EVT_MENU(Menu_Shape_New, DnDShapeFrame::OnNewShape) EVT_MENU(Menu_Shape_Edit, DnDShapeFrame::OnEditShape) @@ -847,6 +855,8 @@ BEGIN_EVENT_TABLE(DnDShapeDialog, wxDialog) EVT_BUTTON(Button_Colour, DnDShapeDialog::OnColour) END_EVENT_TABLE() +#endif // wxUSE_DRAG_AND_DROP + BEGIN_EVENT_TABLE(DnDCanvasBitmap, wxScrolledWindow) EVT_PAINT(DnDCanvasBitmap::OnPaint) END_EVENT_TABLE() @@ -866,7 +876,7 @@ END_EVENT_TABLE() // `Main program' equivalent, creating windows and returning main app frame bool DnDApp::OnInit() { -#if wxUSE_DRAG_AND_DROP +#if wxUSE_DRAG_AND_DROP || wxUSE_CLIPBOARD // switch on trace messages #if defined(__WXGTK__) wxLog::AddTraceMask(_T("clipboard")); @@ -884,7 +894,7 @@ bool DnDApp::OnInit() // create the main frame window DnDFrame *frame = new DnDFrame((wxFrame *) NULL, - _T("Drag-and-Drop/Clipboard wxWindows Sample"), + _T("Drag-and-Drop/Clipboard wxWidgets Sample"), 10, 100, 650, 340); // activate it @@ -899,11 +909,11 @@ bool DnDApp::OnInit() #endif // wxUSE_DRAG_AND_DROP } -#if wxUSE_DRAG_AND_DROP +#if wxUSE_DRAG_AND_DROP || wxUSE_CLIPBOARD DnDFrame::DnDFrame(wxFrame *frame, wxChar *title, int x, int y, int w, int h) : wxFrame(frame, wxID_ANY, title, wxPoint(x, y), wxSize(w, h)), - m_strText(_T("wxWindows drag & drop works :-)")) + m_strText(_T("wxWidgets drag & drop works :-)")) { // frame icon and status bar @@ -966,10 +976,12 @@ DnDFrame::DnDFrame(wxFrame *frame, wxChar *title, int x, int y, int w, int h) m_pLog = new wxLogTextCtrl(m_ctrlLog); m_pLogPrev = wxLog::SetActiveTarget(m_pLog); +#if wxUSE_DRAG_AND_DROP // associate drop targets with the controls m_ctrlFile->SetDropTarget(new DnDFile(m_ctrlFile)); m_ctrlText->SetDropTarget(new DnDText(m_ctrlText)); m_ctrlLog->SetDropTarget(new URLDropTarget); +#endif // wxUSE_DRAG_AND_DROP wxBoxSizer *m_sizer_top = new wxBoxSizer( wxHORIZONTAL ); m_sizer_top->Add(m_ctrlFile, 1, wxEXPAND ); @@ -1042,13 +1054,16 @@ void DnDFrame::OnUpdateUIPasteBitmap(wxUpdateUIEvent& event) void DnDFrame::OnNewFrame(wxCommandEvent& WXUNUSED(event)) { +#if wxUSE_DRAG_AND_DROP (new DnDShapeFrame(this))->Show(true); wxLogStatus(this, wxT("Double click the new frame to select a shape for it")); +#endif // wxUSE_DRAG_AND_DROP } void DnDFrame::OnDrag(wxCommandEvent& WXUNUSED(event)) { +#if wxUSE_DRAG_AND_DROP wxString strText = wxGetTextFromUser ( _T("After you enter text in this dialog, press any mouse\n") @@ -1059,6 +1074,7 @@ void DnDFrame::OnDrag(wxCommandEvent& WXUNUSED(event)) ); m_strText = strText; +#endif // wxUSE_DRAG_AND_DROP } void DnDFrame::OnDragMoveByDefault(wxCommandEvent& event) @@ -1084,7 +1100,7 @@ void DnDFrame::OnAbout(wxCommandEvent& WXUNUSED(event)) void DnDFrame::OnHelp(wxCommandEvent& /* event */) { wxMessageDialog dialog(this, - _T("This small program demonstrates drag & drop support in wxWindows. The program window\n") + _T("This small program demonstrates drag & drop support in wxWidgets. The program window\n") _T("consists of 3 parts: the bottom pane is for debug messages, so that you can see what's\n") _T("going on inside. The top part is split into 2 listboxes, the left one accepts files\n") _T("and the right one accepts text.\n") @@ -1118,6 +1134,7 @@ void DnDFrame::OnLogClear(wxCommandEvent& /* event */ ) void DnDFrame::OnLeftDown(wxMouseEvent &WXUNUSED(event) ) { +#if wxUSE_DRAG_AND_DROP if ( !m_strText.IsEmpty() ) { // start drag operation @@ -1151,6 +1168,7 @@ void DnDFrame::OnLeftDown(wxMouseEvent &WXUNUSED(event) ) SetStatusText(wxString(_T("Drag result: ")) + pc); } +#endif // wxUSE_DRAG_AND_DROP } void DnDFrame::OnRightDown(wxMouseEvent &event ) @@ -1425,6 +1443,8 @@ void DnDFrame::OnPaste(wxCommandEvent& WXUNUSED(event)) wxTheClipboard->Close(); } +#if wxUSE_DRAG_AND_DROP + // ---------------------------------------------------------------------------- // Notifications called by the base class // ---------------------------------------------------------------------------- @@ -1873,6 +1893,8 @@ void DnDShapeDataObject::CreateBitmap() const self->m_hasBitmap = true; } +#endif // wxUSE_DRAG_AND_DROP + // ---------------------------------------------------------------------------- // global functions // ---------------------------------------------------------------------------- @@ -1911,4 +1933,4 @@ static void ShowMetaFile(const wxMetaFile& metafile) #endif // wxUSE_METAFILES -#endif // wxUSE_DRAG_AND_DROP +#endif // wxUSE_DRAG_AND_DROP || wxUSE_CLIPBOARD