#include "wx/clipbrd.h"
#include "wx/colordlg.h"
#include "wx/sizer.h"
+#include "wx/dataobj.h"
#if wxUSE_METAFILES
#include "wx/metafile.h"
#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
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"),
// 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.
IMPLEMENT_APP(DnDApp);
-#if wxUSE_DRAG_AND_DROP
+#if wxUSE_DRAG_AND_DROP || wxUSE_CLIPBOARD
// ----------------------------------------------------------------------------
// Define canvas class to show a bitmap
Refresh();
}
- void OnPaint(wxPaintEvent& event)
+ void OnPaint(wxPaintEvent& WXUNUSED(event))
{
wxPaintDC dc(this);
// shapes, each one with its own colour and position
// ----------------------------------------------------------------------------
+#if wxUSE_DRAG_AND_DROP
+
class DnDShape
{
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") );
DnDShapeFrame *m_frame;
};
+#endif // wxUSE_DRAG_AND_DROP
+
// ----------------------------------------------------------------------------
// functions prototypes
// ----------------------------------------------------------------------------
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)
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()
// `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"));
// 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
#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
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 );
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")
);
m_strText = strText;
+#endif // wxUSE_DRAG_AND_DROP
}
void DnDFrame::OnDragMoveByDefault(wxCommandEvent& 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")
void DnDFrame::OnLeftDown(wxMouseEvent &WXUNUSED(event) )
{
+#if wxUSE_DRAG_AND_DROP
if ( !m_strText.IsEmpty() )
{
// start drag operation
SetStatusText(wxString(_T("Drag result: ")) + pc);
}
+#endif // wxUSE_DRAG_AND_DROP
}
void DnDFrame::OnRightDown(wxMouseEvent &event )
wxTheClipboard->Close();
}
+#if wxUSE_DRAG_AND_DROP
+
// ----------------------------------------------------------------------------
// Notifications called by the base class
// ----------------------------------------------------------------------------
self->m_hasBitmap = true;
}
+#endif // wxUSE_DRAG_AND_DROP
+
// ----------------------------------------------------------------------------
// global functions
// ----------------------------------------------------------------------------
#endif // wxUSE_METAFILES
-#endif // wxUSE_DRAG_AND_DROP
+#endif // wxUSE_DRAG_AND_DROP || wxUSE_CLIPBOARD