#endif
#include "wx/wfstream.h"
+#include "wx/gtk/private.h"
#include <gtk/gtk.h>
bool wxAnimation::LoadFile(const wxString &name, wxAnimationType WXUNUSED(type))
{
UnRef();
- m_pixbuf = gdk_pixbuf_animation_new_from_file(name.fn_str(), NULL);
+ m_pixbuf = gdk_pixbuf_animation_new_from_file(wxGTK_CONV_FN(name), NULL);
return IsOk();
}
while (stream.IsOk())
{
// read a chunk of data
- if (!stream.Read(buf, sizeof(buf)))
+ if (!stream.Read(buf, sizeof(buf)) &&
+ stream.GetLastError() != wxSTREAM_EOF) // EOF is OK for now
{
// gdk_pixbuf_loader_close wants the GError == NULL
gdk_pixbuf_loader_close(loader, NULL);
return false;
}
- // load complete
+ // load complete: gdk_pixbuf_loader_close will now check if the data we
+ // wrote inside the pixbuf loader does make sense and will give an error
+ // if it doesn't (because of a truncated file, corrupted data or whatelse)
if (!gdk_pixbuf_loader_close(loader, &error))
{
wxLogDebug(wxT("Could not close the loader: %s"), error->message);
m_widget = gtk_image_new();
g_object_ref(m_widget);
- gtk_widget_show(m_widget);
m_parent->DoAddChild( this );
if (m_bmpStaticReal.IsOk())
{
// show inactive bitmap
- GdkBitmap *mask = NULL;
- if (m_bmpStaticReal.GetMask())
- mask = m_bmpStaticReal.GetMask()->GetBitmap();
-
- if (m_bmpStaticReal.HasPixbuf())
- {
- gtk_image_set_from_pixbuf(GTK_IMAGE(m_widget),
+ gtk_image_set_from_pixbuf(GTK_IMAGE(m_widget),
m_bmpStaticReal.GetPixbuf());
- }
- else
- {
- gtk_image_set_from_pixmap(GTK_IMAGE(m_widget),
- m_bmpStaticReal.GetPixmap(), mask);
- }
}
else
{