From: Mattia Barbon Date: Sun, 29 Feb 2004 15:14:24 +0000 (+0000) Subject: The DND sample shows both clipboard and drag'n'drop functionality, X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/08938fe1b5d34e694fa70d968f96e4e7c2a415cd The DND sample shows both clipboard and drag'n'drop functionality, as such it can work with just wxUSE_CLIPBOARD. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@26001 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/configure.in b/configure.in index 4e99f4cb35..25f5e2cdc7 100644 --- a/configure.in +++ b/configure.in @@ -5021,7 +5021,6 @@ if test "$wxUSE_GUI" = "yes"; then fi - dnl --------------------------------------------------------------------------- dnl String stuff dnl --------------------------------------------------------------------------- @@ -5221,11 +5220,14 @@ if test "$wxUSE_DRAG_AND_DROP" = "yes" ; then if test "$wxUSE_DRAG_AND_DROP" = "yes"; then AC_DEFINE(wxUSE_DRAG_AND_DROP) - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dnd" fi fi +if test "$wxUSE_DRAG_AND_DROP" = "yes" -o "$wxUSE_CLIPBOARD" = "yes"; then + SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dnd" +fi + if test "$wxUSE_SPLINES" = "yes" ; then AC_DEFINE(wxUSE_SPLINES) fi diff --git a/samples/dnd/dnd.cpp b/samples/dnd/dnd.cpp index e08ee8377c..6790045247 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" @@ -122,7 +123,7 @@ public: IMPLEMENT_APP(DnDApp); -#if wxUSE_DRAG_AND_DROP +#if wxUSE_DRAG_AND_DROP || wxUSE_CLIPBOARD // ---------------------------------------------------------------------------- // Define canvas class to show a bitmap @@ -267,6 +268,8 @@ private: // shapes, each one with its own colour and position // ---------------------------------------------------------------------------- +#if wxUSE_DRAG_AND_DROP + class DnDShape { public: @@ -760,6 +763,8 @@ private: DnDShapeFrame *m_frame; }; +#endif // wxUSE_DRAG_AND_DROP + // ---------------------------------------------------------------------------- // functions prototypes // ---------------------------------------------------------------------------- @@ -827,6 +832,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 +854,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 +875,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")); @@ -899,7 +908,7 @@ 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)), @@ -966,10 +975,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 +1053,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 +1073,7 @@ void DnDFrame::OnDrag(wxCommandEvent& WXUNUSED(event)) ); m_strText = strText; +#endif // wxUSE_DRAG_AND_DROP } void DnDFrame::OnDragMoveByDefault(wxCommandEvent& event) @@ -1118,6 +1133,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 +1167,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 +1442,8 @@ void DnDFrame::OnPaste(wxCommandEvent& WXUNUSED(event)) wxTheClipboard->Close(); } +#if wxUSE_DRAG_AND_DROP + // ---------------------------------------------------------------------------- // Notifications called by the base class // ---------------------------------------------------------------------------- @@ -1873,6 +1892,8 @@ void DnDShapeDataObject::CreateBitmap() const self->m_hasBitmap = true; } +#endif // wxUSE_DRAG_AND_DROP + // ---------------------------------------------------------------------------- // global functions // ---------------------------------------------------------------------------- @@ -1911,4 +1932,4 @@ static void ShowMetaFile(const wxMetaFile& metafile) #endif // wxUSE_METAFILES -#endif // wxUSE_DRAG_AND_DROP +#endif // wxUSE_DRAG_AND_DROP || wxUSE_CLIPBOARD