Use both URL-specific and plain text formats in wxGTK wxURLDataObject.

Just as in wxMSW, it makes sense to put URLs on clipboard (or drag them) in
both URL-specific and plain text formats to facilitate pasting (or dropping)
them into other applications.

So make wxURLDataObject in wxGTK a composite data object containing both its
old data object and wxTextDataObject.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72161 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2012-07-20 11:55:10 +00:00
parent 616c0d1f3a
commit c56fd7a304
2 changed files with 94 additions and 38 deletions

View File

@@ -93,34 +93,19 @@ public:
// wxURLDataObject is a specialization of wxDataObject for URLs
// ----------------------------------------------------------------------------
class WXDLLIMPEXP_CORE wxURLDataObject : public wxDataObjectSimple
class WXDLLIMPEXP_CORE wxURLDataObject : public wxDataObjectComposite
{
public:
wxURLDataObject(const wxString& url = wxEmptyString);
wxString GetURL() const { return m_url; }
void SetURL(const wxString& url) { m_url = url; }
virtual size_t GetDataSize() const;
virtual bool GetDataHere(void *buf) const;
virtual bool SetData(size_t len, const void *buf);
// Must provide overloads to avoid hiding them (and warnings about it)
virtual size_t GetDataSize(const wxDataFormat&) const
{
return GetDataSize();
}
virtual bool GetDataHere(const wxDataFormat&, void *buf) const
{
return GetDataHere(buf);
}
virtual bool SetData(const wxDataFormat&, size_t len, const void *buf)
{
return SetData(len, buf);
}
wxString GetURL() const;
void SetURL(const wxString& url);
private:
wxString m_url;
class wxTextURIListDataObject* const m_dobjURIList;
wxTextDataObject* const m_dobjText;
wxDECLARE_NO_COPY_CLASS(wxURLDataObject);
};