X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a1b806b98241ab649c169aaa1f134df85e80fb8b..fa699cbaaf217af186cd04dd10d6ec67c8667136:/samples/dnd/dnd.cpp?ds=sidebyside diff --git a/samples/dnd/dnd.cpp b/samples/dnd/dnd.cpp index 7916600905..7987e5fab0 100644 --- a/samples/dnd/dnd.cpp +++ b/samples/dnd/dnd.cpp @@ -27,7 +27,7 @@ #include "wx/metafile.h" #include "wx/dirctrl.h" -#if defined(__WXGTK__) || defined(__WXX11__) || defined(__WXMOTIF__) || defined(__WXMAC__) +#ifndef wxHAS_IMAGES_IN_RESOURCES #include "../sample.xpm" #if wxUSE_DRAG_AND_DROP #include "dnd_copy.xpm" @@ -227,6 +227,7 @@ public: #endif // wxUSE_METAFILE void OnCopyFiles(wxCommandEvent& event); + void OnCopyURL(wxCommandEvent& event); void OnUsePrimary(wxCommandEvent& event); @@ -341,7 +342,7 @@ public: virtual void Draw(wxDC& dc) { - dc.SetPen(wxPen(m_col, 1, wxSOLID)); + dc.SetPen(wxPen(m_col)); } protected: @@ -394,7 +395,7 @@ public: dc.DrawLine(p3, p1); //works in multicolor modes; on GTK (at least) will fail in 16-bit color - dc.SetBrush(wxBrush(m_col, wxSOLID)); + dc.SetBrush(wxBrush(m_col)); dc.FloodFill(GetCentre(), m_col, wxFLOOD_BORDER); } }; @@ -430,7 +431,7 @@ public: dc.DrawLine(p3, p4); dc.DrawLine(p4, p1); - dc.SetBrush(wxBrush(m_col, wxSOLID)); + dc.SetBrush(wxBrush(m_col)); dc.FloodFill(GetCentre(), m_col, wxFLOOD_BORDER); } }; @@ -458,7 +459,7 @@ public: dc.DrawEllipse(m_pos, m_size); - dc.SetBrush(wxBrush(m_col, wxSOLID)); + dc.SetBrush(wxBrush(m_col)); dc.FloodFill(GetCentre(), m_col, wxFLOOD_BORDER); } }; @@ -816,6 +817,7 @@ enum Menu_PasteBitmap, Menu_PasteMFile, Menu_CopyFiles, + Menu_CopyURL, Menu_UsePrimary, Menu_Shape_New = 500, Menu_Shape_Edit, @@ -844,6 +846,7 @@ BEGIN_EVENT_TABLE(DnDFrame, wxFrame) EVT_MENU(Menu_PasteMFile, DnDFrame::OnPasteMetafile) #endif // wxUSE_METAFILE EVT_MENU(Menu_CopyFiles, DnDFrame::OnCopyFiles) + EVT_MENU(Menu_CopyURL, DnDFrame::OnCopyURL) EVT_MENU(Menu_UsePrimary, DnDFrame::OnUsePrimary) EVT_UPDATE_UI(Menu_DragMoveDef, DnDFrame::OnUpdateUIMoveByDefault) @@ -974,6 +977,7 @@ DnDFrame::DnDFrame() #endif // wxUSE_METAFILE clip_menu->AppendSeparator(); clip_menu->Append(Menu_CopyFiles, wxT("Copy &files\tCtrl-F")); + clip_menu->Append(Menu_CopyURL, wxT("Copy &URL\tCtrl-U")); clip_menu->AppendSeparator(); clip_menu->AppendCheckItem(Menu_UsePrimary, wxT("Use &primary selection\tCtrl-P")); @@ -1018,7 +1022,7 @@ DnDFrame::DnDFrame() m_ctrlDir->Connect ( wxID_ANY, - wxEVT_COMMAND_TREE_BEGIN_DRAG, + wxEVT_TREE_BEGIN_DRAG, wxTreeEventHandler(DnDFrame::OnBeginDrag), NULL, this @@ -1485,6 +1489,27 @@ void DnDFrame::OnCopyFiles(wxCommandEvent& WXUNUSED(event)) #endif // MSW/!MSW } +void DnDFrame::OnCopyURL(wxCommandEvent& WXUNUSED(event)) +{ + // Just hard code it for now, we could ask the user but the point here is + // to test copying URLs, it doesn't really matter what it is. + const wxString url("http://www.wxwidgets.org/"); + + wxClipboardLocker locker; + if ( !!locker && wxTheClipboard->AddData(new wxURLDataObject(url)) ) + { + wxLogStatus(this, "Copied URL \"%s\" to %s.", + url, + GetMenuBar()->IsChecked(Menu_UsePrimary) + ? "primary selection" + : "clipboard"); + } + else + { + wxLogError("Failed to copy URL."); + } +} + // --------------------------------------------------------------------------- // text clipboard // --------------------------------------------------------------------------- @@ -1998,7 +2023,7 @@ void DnDShapeDataObject::CreateBitmap() const wxBitmap bitmap(x, y); wxMemoryDC dc; dc.SelectObject(bitmap); - dc.SetBrush(wxBrush(wxT("white"), wxSOLID)); + dc.SetBrush(*wxWHITE_BRUSH); dc.Clear(); m_shape->Draw(dc); dc.SelectObject(wxNullBitmap);