###############################################################################
# Copyright (c) 2004 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Common Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/cpl-v10.html
# 
# Contributors:
#     IBM Corporation - initial API and implementation
###############################################################################
org_eclipse_swt_internal_gnome_GNOME=
GNOME_GnomeVFSMimeApplication_sizeof=

GNOME_g_free=
GNOME_g_free_0=cast=gpointer

GNOME_g_list_next=
GNOME_g_list_next_0=

GNOME_g_object_unref=
GNOME_g_object_unref_0=cast=gpointer

GNOME_gnome_icon_lookup=
GNOME_gnome_icon_lookup_0=cast=(GnomeIconTheme *)
GNOME_gnome_icon_lookup_1=cast=GnomeThumbnailFactory *
GNOME_gnome_icon_lookup_2=cast=const char *
GNOME_gnome_icon_lookup_3=cast=const char *
GNOME_gnome_icon_lookup_4=cast=GnomeVFSFileInfo *
GNOME_gnome_icon_lookup_5=cast=const char *
GNOME_gnome_icon_lookup_6=cast=GnomeIconLookupFlags
GNOME_gnome_icon_lookup_7=cast=GnomeIconLookupResultFlags *

GNOME_gnome_icon_theme_lookup_icon=
GNOME_gnome_icon_theme_lookup_icon_0=cast=GnomeIconTheme *
GNOME_gnome_icon_theme_lookup_icon_1=cast=const char *
GNOME_gnome_icon_theme_lookup_icon_2=
GNOME_gnome_icon_theme_lookup_icon_3=cast=(const GnomeIconData **)
GNOME_gnome_icon_theme_lookup_icon_4=

GNOME_gnome_icon_theme_new=

GNOME_gnome_vfs_get_registered_mime_types=

GNOME_gnome_vfs_init=

GNOME_gnome_vfs_mime_application_free=
GNOME_gnome_vfs_mime_application_free_0=cast=GnomeVFSMimeApplication *

GNOME_gnome_vfs_mime_extensions_list_free=
GNOME_gnome_vfs_mime_extensions_list_free_0=cast=GList *

GNOME_gnome_vfs_mime_get_default_application=
GNOME_gnome_vfs_mime_get_default_application_0=

GNOME_gnome_vfs_mime_get_extensions_list=
GNOME_gnome_vfs_mime_get_extensions_list_0=cast=const char *

GNOME_gnome_vfs_mime_registered_mime_type_list_free=
GNOME_gnome_vfs_mime_registered_mime_type_list_free_0=cast=GList *

GNOME_memmove=
GNOME_memmove_0=cast=void *,flags=no_in
GNOME_memmove_1=cast=const void *
GNOME_memmove_2=cast=size_t


org_eclipse_swt_internal_gnome_GnomeVFSMimeApplication=
GnomeVFSMimeApplication_id=cast=char *
GnomeVFSMimeApplication_name=cast=char *
GnomeVFSMimeApplication_command=cast=char *
GnomeVFSMimeApplication_can_open_multiple_files=cast=gboolean
GnomeVFSMimeApplication_expects_uris=cast=GnomeVFSMimeApplicationArgumentType
GnomeVFSMimeApplication_supported_uri_schemes=cast=(GList *)
GnomeVFSMimeApplication_requires_terminal=cast=gboolean

