On Fri, 2009-11-27 at 10:48 -0800, Zettai Muri wrote:
> >From: Emmanuel Rodriguez <emmanuel.rodrig...@gmail.com>
> >I've checked the C implementation of GtkFileFilter and mime types rules are 
> >processed with  g_content_type_is_a[1] which has different implementations 
> >for Unix/Linux and Windows.
> >
> >In Linux g_content_type_is_a behaves as you expect so 'text/png' is 
> >considered a 'text/*'. I haven't tried with a GtkFileFilter yet.
> >
> >Are you running your program in Linux/Unix or in Windows?
> >
> >[1]  http://library.gnome.org/devel/gio/stable/gio-GContentType.html
> 
> Thank you for this, yep that's my problem I'm running the program under 
> Windows.  If I wanted to be able to run it under both Linux & Windows would I 
> be better off using add_pattern("*.mp3") etc. to detect different file 
> formats?

you can add multiple rules to a filter, but in this case I'd check the
OS you're running on to decide what to use, e.g.:

  if ($^O eq 'MSWin32') {
      $filter->add_pattern('*.mp3');
  }
  else {
      $filter->add_mime_type('audio/mp3');
  }

or, since add_mime_type() is ignored on Windows:

  # default to MIME type...
  $filter->add_mime_type('audio/mp3');
  # ... and add the extension matching on Windows
  $filter->add_pattern('*.mp3') if $^O eq 'MSWin32';

> Is there a recommended way to overcome these differences between different 
> OSes?

not always; gtk+ will try (through GLib) to do the things in a portable
way but different features on respective systems have to be accounted
for by the application developer.

ciao,
 Emmanuele.

_______________________________________________
gtk-perl-list mailing list
gtk-perl-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-perl-list

Reply via email to