Implemented wxURLDataObject for wxGTK using text/x-moz-url

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52219 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robert Roebling
2008-03-01 17:22:31 +00:00
parent f4a7ec8231
commit d613be55db
4 changed files with 102 additions and 22 deletions

View File

@@ -402,4 +402,53 @@ void wxBitmapDataObject::DoConvertToPng()
image.SaveFile(mstream, wxBITMAP_TYPE_PNG);
}
// ----------------------------------------------------------------------------
// wxURLDataObject
// ----------------------------------------------------------------------------
wxURLDataObject::wxURLDataObject(const wxString& url) :
wxDataObjectSimple( wxDataFormat( gdk_atom_intern("text/x-moz-url",FALSE) ) )
{
m_url = url;
}
size_t wxURLDataObject::GetDataSize() const
{
if (m_url.empty())
return 0;
return 2*m_url.Len()+2;
}
bool wxURLDataObject::GetDataHere(void *buf) const
{
if (m_url.empty())
return false;
wxCSConv conv( "UCS2" );
conv.FromWChar( (char*) buf, 2*m_url.Len()+2, m_url.wc_str() );
return true;
}
// copy data from buffer to our data
bool wxURLDataObject::SetData(size_t len, const void *buf)
{
if (len == 0)
{
m_url = wxEmptyString;
return false;
}
wxCSConv conv( "UCS2" );
wxWCharBuffer res = conv.cMB2WC( (const char*) buf );
m_url = res;
int pos = m_url.Find( '\n' );
if (pos != wxNOT_FOUND)
m_url.Remove( pos, m_url.Len() - pos );
return true;
}
#endif // wxUSE_DATAOBJ