Description
Gtk_FileDrop provides an easy interface to
set up GtkWidgets to receive files via Drag'n'Drop. Widgets can be
told to accept a number of MIME-Types as well as a number of file
extensions. Values of widgets can automatically be set when drops
with valid files occur, or a callback function can be specified
which is invoked in this case.
Now one may think that the whole setup process is really simple
and would not need a class like this to make widgets accept files.
That is right. The setup for making widgets accept drops is an ease
- but there are two more steps to do:
Make the widget accept only some types of
files
Convert the dropped filenames to usable
filenames
The first item is not so hard to implement; we do this by either
checking the file extension, or using the MIME_Type package to
get the mime type. (Note: * is supported).
The second item is the main problem as all applications seem to
ignore the standard for file name exchange and cook their own
soup (so using their own format) when passing the file names.
This package knows the differences and converts the dropped
strings into usable local filenames, regardless of the format
the source application uses. For a deeper insight in this topic
you should read the PHP-Gtk FileDrop tutorial.
Note: A note about Mozilla/Firefox: Mozilla provides file names
only with mime type text/plain only instead of
text/uri-list. If we would accept this type
as well, the problem arises that every text could be dropped -
if it is a file or not. That's why the decision was made not
to accept drops from Mozilla.