Use text/uri-list instead of x-moz-url in wxGTK wxURLDataObject.

The standard exchange format for URLs is text/uri-list and not the deprecated
and Firefox-specific x-moz-url, support for which was moreover implemented
incorrectly anyhow.

Also add an example of copying URLs to the dnd sample.

See https://developer.mozilla.org/En/DragDrop/Recommended_Drag_Types for more
information.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72159 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2012-07-20 11:55:00 +00:00
parent ee5cc6302e
commit 62490e9ea7
3 changed files with 30 additions and 23 deletions

View File

@@ -227,6 +227,7 @@ public:
#endif // wxUSE_METAFILE
void OnCopyFiles(wxCommandEvent& event);
void OnCopyURL(wxCommandEvent& event);
void OnUsePrimary(wxCommandEvent& event);
@@ -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"));
@@ -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
// ---------------------------------------------------------------------------