SetType( type );
}
-wxDataFormat::wxDataFormat( const wxChar *id )
-{
- PrepareFormats();
- SetId( id );
-}
-
-wxDataFormat::wxDataFormat( const wxString &id )
+void wxDataFormat::InitFromString( const wxString &id )
{
PrepareFormats();
SetId( id );
m_type = wxDF_PRIVATE;
}
-void wxDataFormat::SetId( const wxChar *id )
+void wxDataFormat::SetId( const wxString& id )
{
PrepareFormats();
m_type = wxDF_PRIVATE;
- wxString tmp( id );
- m_format = gdk_atom_intern( (const char*) tmp.ToAscii(), FALSE );
+ m_format = gdk_atom_intern( id.ToAscii(), FALSE );
}
void wxDataFormat::PrepareFormats()
lenPrefix += 2;
}
- AddFile(wxURI::Unescape(filename.c_str() + lenPrefix));
+ // It would probably be nicer to use a GTK or Glib
+ // function to unescape the 8-bit strings pointed to
+ // by buf, but this does the same in wx code.
+ wxString filename_unicode = wxURI::Unescape(filename.c_str() + lenPrefix);
+ wxCharBuffer filename_8bit = filename_unicode.mb_str(wxConvISO8859_1);
+ AddFile(wxString(filename_8bit, *wxConvFileName));
filename.Empty();
}
else if ( !filename.empty() )
}
else
{
+ // The string is in ISO-8859-1 according to XDND spec
filename += *p;
}
}