///////////////////////////////////////////////////////////////////////////////
-// Name: dataobj.cpp
+// Name: src/x11/dataobj.cpp
// Purpose: wxDataObject class
// Author: Julian Smart
-// Id: $Id$
// Copyright: (c) 1998 Julian Smart
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
-#ifdef __GNUG__
- #pragma implementation "dataobj.h"
-#endif
+// for compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
-#include "wx/defs.h"
+#if wxUSE_DATAOBJ
#include "wx/dataobj.h"
+
+#ifndef WX_PRECOMP
+ #include "wx/log.h"
+ #include "wx/app.h"
+ #include "wx/utils.h"
+ #include "wx/image.h"
+#endif
+
#include "wx/mstream.h"
-#include "wx/app.h"
-#include "wx/image.h"
-#include "wx/utils.h"
#include "wx/x11/private.h"
//-------------------------------------------------------------------------
SetType( type );
}
-wxDataFormat::wxDataFormat( const wxChar *id )
-{
- PrepareFormats();
- SetId( id );
-}
-
wxDataFormat::wxDataFormat( const wxString &id )
{
PrepareFormats();
PrepareFormats();
m_type = type;
- if (m_type == wxDF_TEXT)
+ if (m_type == wxDF_TEXT || m_type == wxDF_UNICODETEXT)
m_format = g_textAtom;
else
if (m_type == wxDF_BITMAP)
wxString wxDataFormat::GetId() const
{
+#if wxUSE_NANOX
+ return wxEmptyString;
+#else
char *t = XGetAtomName ((Display*) wxGetDisplay(), m_format);
- wxString ret( t ); // this will convert from ascii to Unicode
- if (t)
+ wxString ret = wxString::FromAscii( t );
+ if (t)
XFree( t );
return ret;
+#endif
}
void wxDataFormat::SetId( NativeFormat format )
m_type = wxDF_PRIVATE;
}
-void wxDataFormat::SetId( const wxChar *id )
+void wxDataFormat::SetId( const wxString& id )
{
+#if !wxUSE_NANOX
PrepareFormats();
m_type = wxDF_PRIVATE;
- wxString tmp( id );
- m_format = XInternAtom( (Display*) wxGetDisplay(), wxMBSTRINGCAST tmp.mbc_str(), FALSE ); // what is the string cast for?
+ m_format = XInternAtom( (Display*) wxGetDisplay(), id.ToAscii(), FALSE );
+#endif
}
void wxDataFormat::PrepareFormats()
{
+#if !wxUSE_NANOX
if (!g_textAtom)
g_textAtom = XInternAtom( (Display*) wxGetDisplay(), "STRING", FALSE );
if (!g_pngAtom)
g_pngAtom = XInternAtom( (Display*) wxGetDisplay(), "image/png", FALSE );
if (!g_fileAtom)
g_fileAtom = XInternAtom( (Display*) wxGetDisplay(), "text/uri-list", FALSE );
+#endif
}
//-------------------------------------------------------------------------
bool wxDataObject::IsSupportedFormat(const wxDataFormat& format, Direction dir) const
{
size_t nFormatCount = GetFormatCount(dir);
- if ( nFormatCount == 1 )
+ if ( nFormatCount == 1 )
{
return format == GetPreferredFormat();
}
- else
+ else
{
wxDataFormat *formats = new wxDataFormat[nFormatCount];
GetAllFormats(formats,dir);
size_t n;
- for ( n = 0; n < nFormatCount; n++ )
+ for ( n = 0; n < nFormatCount; n++ )
{
if ( formats[n] == format )
break;
filenames += (wxChar) 0;
}
- memcpy( buf, filenames.mbc_str(), filenames.Len() + 1 );
+ memcpy( buf, filenames.mbc_str(), filenames.length() + 1 );
- return TRUE;
+ return true;
}
size_t wxFileDataObject::GetDataSize() const
for (size_t i = 0; i < m_filenames.GetCount(); i++)
{
- res += m_filenames[i].Len();
+ res += m_filenames[i].length();
res += 1;
}
break;
wxString file( filenames ); // this returns the first file
AddFile( file );
- pos += file.Len()+1;
- filenames += file.Len()+1;
+ pos += file.length()+1;
+ filenames += file.length()+1;
}
#else // 1
m_filenames.Empty();
if ( (*p == '\r' && *(p+1) == '\n') || !*p )
{
size_t lenPrefix = 5; // strlen("file:")
- if ( filename.Left(lenPrefix).MakeLower() == _T("file:") )
+ if ( filename.Left(lenPrefix).MakeLower() == wxT("file:") )
{
// sometimes the syntax is "file:filename", sometimes it's
// URL-like: "file://filename" - deal with both
- if ( filename[lenPrefix] == _T('/') &&
- filename[lenPrefix + 1] == _T('/') )
+ if ( filename[lenPrefix] == wxT('/') &&
+ filename[lenPrefix + 1] == wxT('/') )
{
// skip the slashes
lenPrefix += 2;
}
else
{
- wxLogDebug(_T("Unsupported URI '%s' in wxFileDataObject"),
+ wxLogDebug(wxT("Unsupported URI '%s' in wxFileDataObject"),
filename.c_str());
}
}
#endif // 0/1
- return TRUE;
+ return true;
}
void wxFileDataObject::AddFile( const wxString &filename )
{
wxFAIL_MSG( wxT("attempt to copy empty bitmap failed") );
- return FALSE;
+ return false;
}
memcpy(buf, m_pngData, m_pngSize);
- return TRUE;
+ return true;
}
bool wxBitmapDataObject::SetData(size_t size, const void *buf)
wxPNGHandler handler;
if ( !handler.LoadFile( &image, mstream ) )
{
- return FALSE;
+ return false;
}
- m_bitmap = image.ConvertToBitmap();
+ m_bitmap = image;
- return m_bitmap.Ok();
+ return m_bitmap.IsOk();
#else
- return FALSE;
+ return false;
#endif
}
void wxBitmapDataObject::DoConvertToPng()
{
#if wxUSE_LIBPNG
- if (!m_bitmap.Ok())
+ if (!m_bitmap.IsOk())
return;
- wxImage image( m_bitmap );
+ wxImage image = m_bitmap.ConvertToImage();
wxPNGHandler handler;
wxCountingOutputStream count;
#endif
}
+#endif // wxUSE_DATAOBJ