#include "wx/clipbrd.h"
#include "wx/colordlg.h"
#include "wx/sizer.h"
+#include "wx/dataobj.h"
#if wxUSE_METAFILES
#include "wx/metafile.h"
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"));
#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_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::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