/* pantheon-files-core.h generated by valac 0.40.6, the Vala compiler, do not modify */


#ifndef __PANTHEON_FILES_CORE_H__
#define __PANTHEON_FILES_CORE_H__

#include <glib.h>
#include <gtk/gtk.h>
#include <glib-object.h>
#include <stdlib.h>
#include <string.h>
#include <gio/gio.h>
#include <gof-file.h>
#include <gdk/gdk.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <gee.h>
#include <float.h>
#include <math.h>
#include <granite.h>
#include <sys/types.h>

G_BEGIN_DECLS


#define MARLIN_TYPE_PLACE_TYPE (marlin_place_type_get_type ())

#define MARLIN_TYPE_ABSTRACT_SIDEBAR (marlin_abstract_sidebar_get_type ())
#define MARLIN_ABSTRACT_SIDEBAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MARLIN_TYPE_ABSTRACT_SIDEBAR, MarlinAbstractSidebar))
#define MARLIN_ABSTRACT_SIDEBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MARLIN_TYPE_ABSTRACT_SIDEBAR, MarlinAbstractSidebarClass))
#define MARLIN_IS_ABSTRACT_SIDEBAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MARLIN_TYPE_ABSTRACT_SIDEBAR))
#define MARLIN_IS_ABSTRACT_SIDEBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MARLIN_TYPE_ABSTRACT_SIDEBAR))
#define MARLIN_ABSTRACT_SIDEBAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MARLIN_TYPE_ABSTRACT_SIDEBAR, MarlinAbstractSidebarClass))

typedef struct _MarlinAbstractSidebar MarlinAbstractSidebar;
typedef struct _MarlinAbstractSidebarClass MarlinAbstractSidebarClass;
typedef struct _MarlinAbstractSidebarPrivate MarlinAbstractSidebarPrivate;

#define MARLIN_ABSTRACT_SIDEBAR_TYPE_COLUMN (marlin_abstract_sidebar_column_get_type ())

#define GOF_TYPE_ABSTRACT_SLOT (gof_abstract_slot_get_type ())
#define GOF_ABSTRACT_SLOT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GOF_TYPE_ABSTRACT_SLOT, GOFAbstractSlot))
#define GOF_ABSTRACT_SLOT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GOF_TYPE_ABSTRACT_SLOT, GOFAbstractSlotClass))
#define GOF_IS_ABSTRACT_SLOT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GOF_TYPE_ABSTRACT_SLOT))
#define GOF_IS_ABSTRACT_SLOT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GOF_TYPE_ABSTRACT_SLOT))
#define GOF_ABSTRACT_SLOT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GOF_TYPE_ABSTRACT_SLOT, GOFAbstractSlotClass))

typedef struct _GOFAbstractSlot GOFAbstractSlot;
typedef struct _GOFAbstractSlotClass GOFAbstractSlotClass;
typedef struct _GOFAbstractSlotPrivate GOFAbstractSlotPrivate;

#define GOF_DIRECTORY_TYPE_ASYNC (gof_directory_async_get_type ())
#define GOF_DIRECTORY_ASYNC(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GOF_DIRECTORY_TYPE_ASYNC, GOFDirectoryAsync))
#define GOF_DIRECTORY_ASYNC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GOF_DIRECTORY_TYPE_ASYNC, GOFDirectoryAsyncClass))
#define GOF_DIRECTORY_IS_ASYNC(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GOF_DIRECTORY_TYPE_ASYNC))
#define GOF_DIRECTORY_IS_ASYNC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GOF_DIRECTORY_TYPE_ASYNC))
#define GOF_DIRECTORY_ASYNC_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GOF_DIRECTORY_TYPE_ASYNC, GOFDirectoryAsyncClass))

typedef struct _GOFDirectoryAsync GOFDirectoryAsync;
typedef struct _GOFDirectoryAsyncClass GOFDirectoryAsyncClass;

#define MARLIN_TYPE_BOOKMARK (marlin_bookmark_get_type ())
#define MARLIN_BOOKMARK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MARLIN_TYPE_BOOKMARK, MarlinBookmark))
#define MARLIN_BOOKMARK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MARLIN_TYPE_BOOKMARK, MarlinBookmarkClass))
#define MARLIN_IS_BOOKMARK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MARLIN_TYPE_BOOKMARK))
#define MARLIN_IS_BOOKMARK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MARLIN_TYPE_BOOKMARK))
#define MARLIN_BOOKMARK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MARLIN_TYPE_BOOKMARK, MarlinBookmarkClass))

typedef struct _MarlinBookmark MarlinBookmark;
typedef struct _MarlinBookmarkClass MarlinBookmarkClass;
typedef struct _MarlinBookmarkPrivate MarlinBookmarkPrivate;

#define MARLIN_TYPE_BOOKMARK_LIST (marlin_bookmark_list_get_type ())
#define MARLIN_BOOKMARK_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MARLIN_TYPE_BOOKMARK_LIST, MarlinBookmarkList))
#define MARLIN_BOOKMARK_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MARLIN_TYPE_BOOKMARK_LIST, MarlinBookmarkListClass))
#define MARLIN_IS_BOOKMARK_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MARLIN_TYPE_BOOKMARK_LIST))
#define MARLIN_IS_BOOKMARK_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MARLIN_TYPE_BOOKMARK_LIST))
#define MARLIN_BOOKMARK_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MARLIN_TYPE_BOOKMARK_LIST, MarlinBookmarkListClass))

typedef struct _MarlinBookmarkList MarlinBookmarkList;
typedef struct _MarlinBookmarkListClass MarlinBookmarkListClass;
typedef struct _MarlinBookmarkListPrivate MarlinBookmarkListPrivate;

#define MARLIN_TYPE_DND_HANDLER (marlin_dnd_handler_get_type ())
#define MARLIN_DND_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MARLIN_TYPE_DND_HANDLER, MarlinDndHandler))
#define MARLIN_DND_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MARLIN_TYPE_DND_HANDLER, MarlinDndHandlerClass))
#define MARLIN_IS_DND_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MARLIN_TYPE_DND_HANDLER))
#define MARLIN_IS_DND_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MARLIN_TYPE_DND_HANDLER))
#define MARLIN_DND_HANDLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MARLIN_TYPE_DND_HANDLER, MarlinDndHandlerClass))

typedef struct _MarlinDndHandler MarlinDndHandler;
typedef struct _MarlinDndHandlerClass MarlinDndHandlerClass;
typedef struct _MarlinDndHandlerPrivate MarlinDndHandlerPrivate;

#define MARLIN_TYPE_WINDOW_STATE (marlin_window_state_get_type ())

#define MARLIN_TYPE_VIEW_MODE (marlin_view_mode_get_type ())

#define MARLIN_TYPE_OPEN_FLAG (marlin_open_flag_get_type ())

#define MARLIN_TYPE_ZOOM_LEVEL (marlin_zoom_level_get_type ())

#define MARLIN_TYPE_ICON_SIZE (marlin_icon_size_get_type ())

#define MARLIN_TYPE_TARGET_TYPE (marlin_target_type_get_type ())

#define MARLIN_TYPE_FILE_CONFLICT_DIALOG (marlin_file_conflict_dialog_get_type ())
#define MARLIN_FILE_CONFLICT_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MARLIN_TYPE_FILE_CONFLICT_DIALOG, MarlinFileConflictDialog))
#define MARLIN_FILE_CONFLICT_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MARLIN_TYPE_FILE_CONFLICT_DIALOG, MarlinFileConflictDialogClass))
#define MARLIN_IS_FILE_CONFLICT_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MARLIN_TYPE_FILE_CONFLICT_DIALOG))
#define MARLIN_IS_FILE_CONFLICT_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MARLIN_TYPE_FILE_CONFLICT_DIALOG))
#define MARLIN_FILE_CONFLICT_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MARLIN_TYPE_FILE_CONFLICT_DIALOG, MarlinFileConflictDialogClass))

typedef struct _MarlinFileConflictDialog MarlinFileConflictDialog;
typedef struct _MarlinFileConflictDialogClass MarlinFileConflictDialogClass;
typedef struct _MarlinFileConflictDialogPrivate MarlinFileConflictDialogPrivate;

#define MARLIN_FILE_CONFLICT_DIALOG_TYPE_RESPONSE_TYPE (marlin_file_conflict_dialog_response_type_get_type ())

#define GOF_TYPE_CALL_WHEN_READY (gof_call_when_ready_get_type ())
#define GOF_CALL_WHEN_READY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GOF_TYPE_CALL_WHEN_READY, GOFCallWhenReady))
#define GOF_CALL_WHEN_READY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GOF_TYPE_CALL_WHEN_READY, GOFCallWhenReadyClass))
#define GOF_IS_CALL_WHEN_READY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GOF_TYPE_CALL_WHEN_READY))
#define GOF_IS_CALL_WHEN_READY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GOF_TYPE_CALL_WHEN_READY))
#define GOF_CALL_WHEN_READY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GOF_TYPE_CALL_WHEN_READY, GOFCallWhenReadyClass))

typedef struct _GOFCallWhenReady GOFCallWhenReady;
typedef struct _GOFCallWhenReadyClass GOFCallWhenReadyClass;
typedef struct _GOFCallWhenReadyPrivate GOFCallWhenReadyPrivate;
typedef struct _GOFDirectoryAsyncPrivate GOFDirectoryAsyncPrivate;

#define GOF_DIRECTORY_ASYNC_TYPE_STATE (gof_directory_async_state_get_type ())

#define GOF_TYPE_PREFERENCES (gof_preferences_get_type ())
#define GOF_PREFERENCES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GOF_TYPE_PREFERENCES, GOFPreferences))
#define GOF_PREFERENCES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GOF_TYPE_PREFERENCES, GOFPreferencesClass))
#define GOF_IS_PREFERENCES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GOF_TYPE_PREFERENCES))
#define GOF_IS_PREFERENCES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GOF_TYPE_PREFERENCES))
#define GOF_PREFERENCES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GOF_TYPE_PREFERENCES, GOFPreferencesClass))

typedef struct _GOFPreferences GOFPreferences;
typedef struct _GOFPreferencesClass GOFPreferencesClass;
typedef struct _GOFPreferencesPrivate GOFPreferencesPrivate;

#define MARLIN_TYPE_PLUGIN_MANAGER (marlin_plugin_manager_get_type ())
#define MARLIN_PLUGIN_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MARLIN_TYPE_PLUGIN_MANAGER, MarlinPluginManager))
#define MARLIN_PLUGIN_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MARLIN_TYPE_PLUGIN_MANAGER, MarlinPluginManagerClass))
#define MARLIN_IS_PLUGIN_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MARLIN_TYPE_PLUGIN_MANAGER))
#define MARLIN_IS_PLUGIN_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MARLIN_TYPE_PLUGIN_MANAGER))
#define MARLIN_PLUGIN_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MARLIN_TYPE_PLUGIN_MANAGER, MarlinPluginManagerClass))

typedef struct _MarlinPluginManager MarlinPluginManager;
typedef struct _MarlinPluginManagerClass MarlinPluginManagerClass;
typedef struct _MarlinPluginManagerPrivate MarlinPluginManagerPrivate;

#define MARLIN_PLUGINS_TYPE_BASE (marlin_plugins_base_get_type ())
#define MARLIN_PLUGINS_BASE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MARLIN_PLUGINS_TYPE_BASE, MarlinPluginsBase))
#define MARLIN_PLUGINS_BASE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MARLIN_PLUGINS_TYPE_BASE, MarlinPluginsBaseClass))
#define MARLIN_PLUGINS_IS_BASE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MARLIN_PLUGINS_TYPE_BASE))
#define MARLIN_PLUGINS_IS_BASE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MARLIN_PLUGINS_TYPE_BASE))
#define MARLIN_PLUGINS_BASE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MARLIN_PLUGINS_TYPE_BASE, MarlinPluginsBaseClass))

typedef struct _MarlinPluginsBase MarlinPluginsBase;
typedef struct _MarlinPluginsBaseClass MarlinPluginsBaseClass;
typedef struct _MarlinPluginsBasePrivate MarlinPluginsBasePrivate;

#define PF_PROGRESS_TYPE_INFO (pf_progress_info_get_type ())
#define PF_PROGRESS_INFO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PF_PROGRESS_TYPE_INFO, PFProgressInfo))
#define PF_PROGRESS_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PF_PROGRESS_TYPE_INFO, PFProgressInfoClass))
#define PF_PROGRESS_IS_INFO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PF_PROGRESS_TYPE_INFO))
#define PF_PROGRESS_IS_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PF_PROGRESS_TYPE_INFO))
#define PF_PROGRESS_INFO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PF_PROGRESS_TYPE_INFO, PFProgressInfoClass))

typedef struct _PFProgressInfo PFProgressInfo;
typedef struct _PFProgressInfoClass PFProgressInfoClass;
typedef struct _PFProgressInfoPrivate PFProgressInfoPrivate;

#define PF_PROGRESS_TYPE_INFO_MANAGER (pf_progress_info_manager_get_type ())
#define PF_PROGRESS_INFO_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PF_PROGRESS_TYPE_INFO_MANAGER, PFProgressInfoManager))
#define PF_PROGRESS_INFO_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PF_PROGRESS_TYPE_INFO_MANAGER, PFProgressInfoManagerClass))
#define PF_PROGRESS_IS_INFO_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PF_PROGRESS_TYPE_INFO_MANAGER))
#define PF_PROGRESS_IS_INFO_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PF_PROGRESS_TYPE_INFO_MANAGER))
#define PF_PROGRESS_INFO_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PF_PROGRESS_TYPE_INFO_MANAGER, PFProgressInfoManagerClass))

typedef struct _PFProgressInfoManager PFProgressInfoManager;
typedef struct _PFProgressInfoManagerClass PFProgressInfoManagerClass;
typedef struct _PFProgressInfoManagerPrivate PFProgressInfoManagerPrivate;

#define PF_TYPE_SOUND_MANAGER (pf_sound_manager_get_type ())
#define PF_SOUND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PF_TYPE_SOUND_MANAGER, PFSoundManager))
#define PF_SOUND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PF_TYPE_SOUND_MANAGER, PFSoundManagerClass))
#define PF_IS_SOUND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PF_TYPE_SOUND_MANAGER))
#define PF_IS_SOUND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PF_TYPE_SOUND_MANAGER))
#define PF_SOUND_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PF_TYPE_SOUND_MANAGER, PFSoundManagerClass))

typedef struct _PFSoundManager PFSoundManager;
typedef struct _PFSoundManagerClass PFSoundManagerClass;
typedef struct _PFSoundManagerPrivate PFSoundManagerPrivate;

#define MARLIN_TYPE_TRASH_MONITOR (marlin_trash_monitor_get_type ())
#define MARLIN_TRASH_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MARLIN_TYPE_TRASH_MONITOR, MarlinTrashMonitor))
#define MARLIN_TRASH_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MARLIN_TYPE_TRASH_MONITOR, MarlinTrashMonitorClass))
#define MARLIN_IS_TRASH_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MARLIN_TYPE_TRASH_MONITOR))
#define MARLIN_IS_TRASH_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MARLIN_TYPE_TRASH_MONITOR))
#define MARLIN_TRASH_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MARLIN_TYPE_TRASH_MONITOR, MarlinTrashMonitorClass))

typedef struct _MarlinTrashMonitor MarlinTrashMonitor;
typedef struct _MarlinTrashMonitorClass MarlinTrashMonitorClass;
typedef struct _MarlinTrashMonitorPrivate MarlinTrashMonitorPrivate;

#define MARLIN_TYPE_ICON_INFO (marlin_icon_info_get_type ())
#define MARLIN_ICON_INFO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MARLIN_TYPE_ICON_INFO, MarlinIconInfo))
#define MARLIN_ICON_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MARLIN_TYPE_ICON_INFO, MarlinIconInfoClass))
#define MARLIN_IS_ICON_INFO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MARLIN_TYPE_ICON_INFO))
#define MARLIN_IS_ICON_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MARLIN_TYPE_ICON_INFO))
#define MARLIN_ICON_INFO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MARLIN_TYPE_ICON_INFO, MarlinIconInfoClass))

typedef struct _MarlinIconInfo MarlinIconInfo;
typedef struct _MarlinIconInfoClass MarlinIconInfoClass;
typedef struct _MarlinIconInfoPrivate MarlinIconInfoPrivate;

#define MARLIN_TYPE_THUMBNAILER_DAEMON (marlin_thumbnailer_daemon_get_type ())
#define MARLIN_THUMBNAILER_DAEMON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MARLIN_TYPE_THUMBNAILER_DAEMON, MarlinThumbnailerDaemon))
#define MARLIN_IS_THUMBNAILER_DAEMON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MARLIN_TYPE_THUMBNAILER_DAEMON))
#define MARLIN_THUMBNAILER_DAEMON_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), MARLIN_TYPE_THUMBNAILER_DAEMON, MarlinThumbnailerDaemonIface))

typedef struct _MarlinThumbnailerDaemon MarlinThumbnailerDaemon;
typedef struct _MarlinThumbnailerDaemonIface MarlinThumbnailerDaemonIface;

#define MARLIN_TYPE_THUMBNAILER_DAEMON_PROXY (marlin_thumbnailer_daemon_proxy_get_type ())

#define MARLIN_TYPE_THUMBNAILER (marlin_thumbnailer_get_type ())
#define MARLIN_THUMBNAILER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MARLIN_TYPE_THUMBNAILER, MarlinThumbnailer))
#define MARLIN_THUMBNAILER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MARLIN_TYPE_THUMBNAILER, MarlinThumbnailerClass))
#define MARLIN_IS_THUMBNAILER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MARLIN_TYPE_THUMBNAILER))
#define MARLIN_IS_THUMBNAILER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MARLIN_TYPE_THUMBNAILER))
#define MARLIN_THUMBNAILER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MARLIN_TYPE_THUMBNAILER, MarlinThumbnailerClass))

typedef struct _MarlinThumbnailer MarlinThumbnailer;
typedef struct _MarlinThumbnailerClass MarlinThumbnailerClass;
typedef struct _MarlinThumbnailerPrivate MarlinThumbnailerPrivate;

typedef void (*MarlinPluginCallbackFunc) (GtkWidget* widget, void* user_data);
typedef enum  {
	MARLIN_PLACE_TYPE_BUILT_IN,
	MARLIN_PLACE_TYPE_MOUNTED_VOLUME,
	MARLIN_PLACE_TYPE_BOOKMARK,
	MARLIN_PLACE_TYPE_BOOKMARKS_CATEGORY,
	MARLIN_PLACE_TYPE_PERSONAL_CATEGORY,
	MARLIN_PLACE_TYPE_STORAGE_CATEGORY,
	MARLIN_PLACE_TYPE_NETWORK_CATEGORY,
	MARLIN_PLACE_TYPE_PLUGIN_ITEM
} MarlinPlaceType;

struct _MarlinAbstractSidebar {
	GtkScrolledWindow parent_instance;
	MarlinAbstractSidebarPrivate * priv;
	GtkTreeStore* store;
	GtkTreeRowReference* network_category_reference;
	GtkBox* content_box;
};

struct _MarlinAbstractSidebarClass {
	GtkScrolledWindowClass parent_class;
	void (*add_place) (MarlinAbstractSidebar* self, MarlinPlaceType place_type, GtkTreeIter* parent, const gchar* name, GIcon* icon, const gchar* uri, GDrive* drive, GVolume* volume, GMount* mount, guint index, const gchar* tooltip, GtkTreeIter* result);
};

typedef enum  {
	MARLIN_ABSTRACT_SIDEBAR_COLUMN_NAME,
	MARLIN_ABSTRACT_SIDEBAR_COLUMN_URI,
	MARLIN_ABSTRACT_SIDEBAR_COLUMN_DRIVE,
	MARLIN_ABSTRACT_SIDEBAR_COLUMN_VOLUME,
	MARLIN_ABSTRACT_SIDEBAR_COLUMN_MOUNT,
	MARLIN_ABSTRACT_SIDEBAR_COLUMN_ROW_TYPE,
	MARLIN_ABSTRACT_SIDEBAR_COLUMN_ICON,
	MARLIN_ABSTRACT_SIDEBAR_COLUMN_INDEX,
	MARLIN_ABSTRACT_SIDEBAR_COLUMN_CAN_EJECT,
	MARLIN_ABSTRACT_SIDEBAR_COLUMN_NO_EJECT,
	MARLIN_ABSTRACT_SIDEBAR_COLUMN_BOOKMARK,
	MARLIN_ABSTRACT_SIDEBAR_COLUMN_IS_CATEGORY,
	MARLIN_ABSTRACT_SIDEBAR_COLUMN_NOT_CATEGORY,
	MARLIN_ABSTRACT_SIDEBAR_COLUMN_TOOLTIP,
	MARLIN_ABSTRACT_SIDEBAR_COLUMN_EJECT_ICON,
	MARLIN_ABSTRACT_SIDEBAR_COLUMN_SHOW_SPINNER,
	MARLIN_ABSTRACT_SIDEBAR_COLUMN_SHOW_EJECT,
	MARLIN_ABSTRACT_SIDEBAR_COLUMN_SPINNER_PULSE,
	MARLIN_ABSTRACT_SIDEBAR_COLUMN_FREE_SPACE,
	MARLIN_ABSTRACT_SIDEBAR_COLUMN_DISK_SIZE,
	MARLIN_ABSTRACT_SIDEBAR_COLUMN_PLUGIN_CALLBACK,
	MARLIN_ABSTRACT_SIDEBAR_COLUMN_COUNT
} MarlinAbstractSidebarColumn;

struct _GOFAbstractSlot {
	GObject parent_instance;
	GOFAbstractSlotPrivate * priv;
	GtkBox* extra_location_widgets;
	GtkBox* content_box;
	gint slot_number;
	gint width;
};

struct _GOFAbstractSlotClass {
	GObjectClass parent_class;
	void (*initialize_directory) (GOFAbstractSlot* self);
	GList* (*get_selected_files) (GOFAbstractSlot* self);
	void (*set_active_state) (GOFAbstractSlot* self, gboolean set_active, gboolean animate);
	GOFAbstractSlot* (*get_current_slot) (GOFAbstractSlot* self);
	void (*reload) (GOFAbstractSlot* self, gboolean non_local_only);
	void (*grab_focus) (GOFAbstractSlot* self);
	void (*user_path_change_request) (GOFAbstractSlot* self, GFile* loc, gboolean make_root);
	void (*focus_first_for_empty_selection) (GOFAbstractSlot* self, gboolean select);
	void (*select_glib_files) (GOFAbstractSlot* self, GList* locations, GFile* focus_location);
	void (*make_view) (GOFAbstractSlot* self);
	void (*close) (GOFAbstractSlot* self);
	GFileInfo* (*lookup_file_info) (GOFAbstractSlot* self, GFile* loc);
	void (*zoom_out) (GOFAbstractSlot* self);
	void (*zoom_in) (GOFAbstractSlot* self);
	void (*zoom_normal) (GOFAbstractSlot* self);
	gboolean (*set_all_selected) (GOFAbstractSlot* self, gboolean all_selected);
	GtkWidget* (*get_content_box) (GOFAbstractSlot* self);
	gchar* (*get_root_uri) (GOFAbstractSlot* self);
	gchar* (*get_tip_uri) (GOFAbstractSlot* self);
	gboolean (*get_realized) (GOFAbstractSlot* self);
	gboolean (*get_locked_focus) (GOFAbstractSlot* self);
	gboolean (*get_is_frozen) (GOFAbstractSlot* self);
	void (*set_is_frozen) (GOFAbstractSlot* self, gboolean value);
};

struct _MarlinBookmark {
	GTypeInstance parent_instance;
	volatile int ref_count;
	MarlinBookmarkPrivate * priv;
};

struct _MarlinBookmarkClass {
	GTypeClass parent_class;
	void (*finalize) (MarlinBookmark *self);
};

struct _MarlinBookmarkList {
	GObject parent_instance;
	MarlinBookmarkListPrivate * priv;
};

struct _MarlinBookmarkListClass {
	GObjectClass parent_class;
};

struct _MarlinDndHandler {
	GObject parent_instance;
	MarlinDndHandlerPrivate * priv;
};

struct _MarlinDndHandlerClass {
	GObjectClass parent_class;
};

typedef enum  {
	MARLIN_WINDOW_STATE_NORMAL,
	MARLIN_WINDOW_STATE_TILED_START,
	MARLIN_WINDOW_STATE_TILED_END,
	MARLIN_WINDOW_STATE_MAXIMIZED,
	MARLIN_WINDOW_STATE_INVALID
} MarlinWindowState;

typedef enum  {
	MARLIN_VIEW_MODE_ICON,
	MARLIN_VIEW_MODE_LIST,
	MARLIN_VIEW_MODE_MILLER_COLUMNS,
	MARLIN_VIEW_MODE_CURRENT,
	MARLIN_VIEW_MODE_PREFERRED,
	MARLIN_VIEW_MODE_INVALID
} MarlinViewMode;

typedef enum  {
	MARLIN_OPEN_FLAG_DEFAULT,
	MARLIN_OPEN_FLAG_NEW_ROOT,
	MARLIN_OPEN_FLAG_NEW_TAB,
	MARLIN_OPEN_FLAG_NEW_WINDOW
} MarlinOpenFlag;

typedef enum  {
	MARLIN_ZOOM_LEVEL_SMALLEST,
	MARLIN_ZOOM_LEVEL_SMALLER,
	MARLIN_ZOOM_LEVEL_SMALL,
	MARLIN_ZOOM_LEVEL_NORMAL,
	MARLIN_ZOOM_LEVEL_LARGE,
	MARLIN_ZOOM_LEVEL_LARGER,
	MARLIN_ZOOM_LEVEL_HUGE,
	MARLIN_ZOOM_LEVEL_HUGER,
	MARLIN_ZOOM_LEVEL_LARGEST,
	MARLIN_ZOOM_LEVEL_N_LEVELS
} MarlinZoomLevel;

typedef enum  {
	MARLIN_ICON_SIZE_EMBLEM = 16,
	MARLIN_ICON_SIZE_SMALLEST = 16,
	MARLIN_ICON_SIZE_LARGE_EMBLEM = 24,
	MARLIN_ICON_SIZE_SMALLER = 24,
	MARLIN_ICON_SIZE_SMALL = 32,
	MARLIN_ICON_SIZE_NORMAL = 48,
	MARLIN_ICON_SIZE_LARGE = 64,
	MARLIN_ICON_SIZE_LARGER = 96,
	MARLIN_ICON_SIZE_HUGE = 128,
	MARLIN_ICON_SIZE_HUGER = 192,
	MARLIN_ICON_SIZE_LARGEST = 256
} MarlinIconSize;

typedef enum  {
	MARLIN_TARGET_TYPE_STRING,
	MARLIN_TARGET_TYPE_TEXT_URI_LIST,
	MARLIN_TARGET_TYPE_XDND_DIRECT_SAVE0,
	MARLIN_TARGET_TYPE_NETSCAPE_URL
} MarlinTargetType;

typedef void (*PFFileUtilsRenameCallbackFunc) (GFile* old_location, GFile* new_location, GError* _error_, void* user_data);
struct _MarlinFileConflictDialog {
	GtkDialog parent_instance;
	MarlinFileConflictDialogPrivate * priv;
};

struct _MarlinFileConflictDialogClass {
	GtkDialogClass parent_class;
};

typedef enum  {
	MARLIN_FILE_CONFLICT_DIALOG_RESPONSE_TYPE_SKIP,
	MARLIN_FILE_CONFLICT_DIALOG_RESPONSE_TYPE_RENAME,
	MARLIN_FILE_CONFLICT_DIALOG_RESPONSE_TYPE_REPLACE
} MarlinFileConflictDialogResponseType;

struct _GOFCallWhenReady {
	GObject parent_instance;
	GOFCallWhenReadyPrivate * priv;
	GList* files;
};

struct _GOFCallWhenReadyClass {
	GObjectClass parent_class;
};

typedef void (*GOFCallWhenReadycall_when_ready_func) (GList* files, void* user_data);
struct _GOFDirectoryAsync {
	GObject parent_instance;
	GOFDirectoryAsyncPrivate * priv;
	gint icon_size;
	gboolean permission_denied;
	gboolean network_available;
};

struct _GOFDirectoryAsyncClass {
	GObjectClass parent_class;
};

typedef enum  {
	GOF_DIRECTORY_ASYNC_STATE_NOT_LOADED,
	GOF_DIRECTORY_ASYNC_STATE_LOADING,
	GOF_DIRECTORY_ASYNC_STATE_LOADED,
	GOF_DIRECTORY_ASYNC_STATE_TIMED_OUT
} GOFDirectoryAsyncState;

typedef void (*GOFDirectoryAsyncGOFFileLoadedFunc) (GOFFile* file, void* user_data);
struct _GOFPreferences {
	GObject parent_instance;
	GOFPreferencesPrivate * priv;
};

struct _GOFPreferencesClass {
	GObjectClass parent_class;
};

struct _MarlinPluginManager {
	GObject parent_instance;
	MarlinPluginManagerPrivate * priv;
	GList* menus G_GNUC_DEPRECATED;
};

struct _MarlinPluginManagerClass {
	GObjectClass parent_class;
};

struct _MarlinPluginsBase {
	GTypeInstance parent_instance;
	volatile int ref_count;
	MarlinPluginsBasePrivate * priv;
	GtkWidget* window;
};

struct _MarlinPluginsBaseClass {
	GTypeClass parent_class;
	void (*finalize) (MarlinPluginsBase *self);
	void (*directory_loaded) (MarlinPluginsBase* self, void* data);
	void (*context_menu) (MarlinPluginsBase* self, GtkWidget* widget, GList* files);
	void (*ui) (MarlinPluginsBase* self, GtkUIManager* widget);
	void (*update_sidebar) (MarlinPluginsBase* self, GtkWidget* widget);
	void (*update_file_info) (MarlinPluginsBase* self, GOFFile* file);
};

struct _PFProgressInfo {
	GObject parent_instance;
	PFProgressInfoPrivate * priv;
};

struct _PFProgressInfoClass {
	GObjectClass parent_class;
};

struct _PFProgressInfoManager {
	GObject parent_instance;
	PFProgressInfoManagerPrivate * priv;
};

struct _PFProgressInfoManagerClass {
	GObjectClass parent_class;
};

struct _PFSoundManager {
	GObject parent_instance;
	PFSoundManagerPrivate * priv;
};

struct _PFSoundManagerClass {
	GObjectClass parent_class;
};

struct _MarlinTrashMonitor {
	GObject parent_instance;
	MarlinTrashMonitorPrivate * priv;
};

struct _MarlinTrashMonitorClass {
	GObjectClass parent_class;
};

struct _MarlinIconInfo {
	GObject parent_instance;
	MarlinIconInfoPrivate * priv;
};

struct _MarlinIconInfoClass {
	GObjectClass parent_class;
};

struct _MarlinThumbnailerDaemonIface {
	GTypeInterface parent_iface;
	void (*queue) (MarlinThumbnailerDaemon* self, gchar** uris, int uris_length1, gchar** mime_types, int mime_types_length1, const gchar* flavor, const gchar* scheduler, guint handle_to_unqueue, GAsyncReadyCallback _callback_, gpointer _user_data_);
	guint (*queue_finish) (MarlinThumbnailerDaemon* self, GAsyncResult* _res_, GError** error);
	void (*dequeue) (MarlinThumbnailerDaemon* self, guint handle, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*dequeue_finish) (MarlinThumbnailerDaemon* self, GAsyncResult* _res_, GError** error);
	void (*get_supported) (MarlinThumbnailerDaemon* self, gchar*** uri_schemes, int* uri_schemes_length1, gchar*** mime_types, int* mime_types_length1, GError** error);
};

struct _MarlinThumbnailer {
	GObject parent_instance;
	MarlinThumbnailerPrivate * priv;
};

struct _MarlinThumbnailerClass {
	GObjectClass parent_class;
};


GType marlin_place_type_get_type (void) G_GNUC_CONST;
GType marlin_abstract_sidebar_get_type (void) G_GNUC_CONST;
GType marlin_abstract_sidebar_column_get_type (void) G_GNUC_CONST;
void marlin_abstract_sidebar_init (MarlinAbstractSidebar* self);
void marlin_abstract_sidebar_add_extra_network_item (MarlinAbstractSidebar* self,
                                                     const gchar* text,
                                                     const gchar* tooltip,
                                                     GIcon* icon,
                                                     MarlinPluginCallbackFunc cb,
                                                     void* cb_target);
void marlin_abstract_sidebar_add_extra_item (MarlinAbstractSidebar* self,
                                             GtkTreeRowReference* category,
                                             const gchar* text,
                                             const gchar* tooltip,
                                             GIcon* icon,
                                             MarlinPluginCallbackFunc cb,
                                             void* cb_target);
void marlin_abstract_sidebar_add_place (MarlinAbstractSidebar* self,
                                        MarlinPlaceType place_type,
                                        GtkTreeIter* parent,
                                        const gchar* name,
                                        GIcon* icon,
                                        const gchar* uri,
                                        GDrive* drive,
                                        GVolume* volume,
                                        GMount* mount,
                                        guint index,
                                        const gchar* tooltip,
                                        GtkTreeIter* result);
MarlinAbstractSidebar* marlin_abstract_sidebar_construct (GType object_type);
GType gof_abstract_slot_get_type (void) G_GNUC_CONST;
void gof_abstract_slot_add_extra_widget (GOFAbstractSlot* self,
                                         GtkWidget* widget);
void gof_abstract_slot_init (GOFAbstractSlot* self);
void gof_abstract_slot_initialize_directory (GOFAbstractSlot* self);
GList* gof_abstract_slot_get_selected_files (GOFAbstractSlot* self);
void gof_abstract_slot_set_active_state (GOFAbstractSlot* self,
                                         gboolean set_active,
                                         gboolean animate);
GOFAbstractSlot* gof_abstract_slot_get_current_slot (GOFAbstractSlot* self);
void gof_abstract_slot_reload (GOFAbstractSlot* self,
                               gboolean non_local_only);
void gof_abstract_slot_grab_focus (GOFAbstractSlot* self);
void gof_abstract_slot_user_path_change_request (GOFAbstractSlot* self,
                                                 GFile* loc,
                                                 gboolean make_root);
void gof_abstract_slot_focus_first_for_empty_selection (GOFAbstractSlot* self,
                                                        gboolean select);
void gof_abstract_slot_select_glib_files (GOFAbstractSlot* self,
                                          GList* locations,
                                          GFile* focus_location);
void gof_abstract_slot_make_view (GOFAbstractSlot* self);
void gof_abstract_slot_close (GOFAbstractSlot* self);
GFileInfo* gof_abstract_slot_lookup_file_info (GOFAbstractSlot* self,
                                               GFile* loc);
void gof_abstract_slot_zoom_out (GOFAbstractSlot* self);
void gof_abstract_slot_zoom_in (GOFAbstractSlot* self);
void gof_abstract_slot_zoom_normal (GOFAbstractSlot* self);
gboolean gof_abstract_slot_set_all_selected (GOFAbstractSlot* self,
                                             gboolean all_selected);
GtkWidget* gof_abstract_slot_get_content_box (GOFAbstractSlot* self);
gchar* gof_abstract_slot_get_root_uri (GOFAbstractSlot* self);
gchar* gof_abstract_slot_get_tip_uri (GOFAbstractSlot* self);
gboolean gof_abstract_slot_get_realized (GOFAbstractSlot* self);
GOFAbstractSlot* gof_abstract_slot_construct (GType object_type);
GType gof_directory_async_get_type (void) G_GNUC_CONST;
GOFDirectoryAsync* gof_abstract_slot_get_directory (GOFAbstractSlot* self);
void gof_abstract_slot_set_directory (GOFAbstractSlot* self,
                                      GOFDirectoryAsync* value);
GOFFile* gof_abstract_slot_get_file (GOFAbstractSlot* self);
GFile* gof_abstract_slot_get_location (GOFAbstractSlot* self);
const gchar* gof_abstract_slot_get_uri (GOFAbstractSlot* self);
gboolean gof_abstract_slot_get_locked_focus (GOFAbstractSlot* self);
gboolean gof_abstract_slot_get_is_frozen (GOFAbstractSlot* self);
void gof_abstract_slot_set_is_frozen (GOFAbstractSlot* self,
                                      gboolean value);
gpointer marlin_bookmark_ref (gpointer instance);
void marlin_bookmark_unref (gpointer instance);
GParamSpec* marlin_param_spec_bookmark (const gchar* name,
                                        const gchar* nick,
                                        const gchar* blurb,
                                        GType object_type,
                                        GParamFlags flags);
void marlin_value_set_bookmark (GValue* value,
                                gpointer v_object);
void marlin_value_take_bookmark (GValue* value,
                                 gpointer v_object);
gpointer marlin_value_get_bookmark (const GValue* value);
GType marlin_bookmark_get_type (void) G_GNUC_CONST;
extern GCompareFunc marlin_bookmark_compare_with;
extern GCompareFunc marlin_bookmark_compare_uris;
MarlinBookmark* marlin_bookmark_new_from_uri (const gchar* uri,
                                              const gchar* label);
MarlinBookmark* marlin_bookmark_construct_from_uri (GType object_type,
                                                    const gchar* uri,
                                                    const gchar* label);
MarlinBookmark* marlin_bookmark_copy (MarlinBookmark* self);
GFile* marlin_bookmark_get_location (MarlinBookmark* self);
gchar* marlin_bookmark_get_uri (MarlinBookmark* self);
gchar* marlin_bookmark_get_parse_name (MarlinBookmark* self);
GIcon* marlin_bookmark_get_icon (MarlinBookmark* self);
gboolean marlin_bookmark_uri_known_not_to_exist (MarlinBookmark* self);
const gchar* marlin_bookmark_get_label (MarlinBookmark* self);
void marlin_bookmark_set_label (MarlinBookmark* self,
                                const gchar* value);
GOFFile* marlin_bookmark_get_gof_file (MarlinBookmark* self);
GType marlin_bookmark_list_get_type (void) G_GNUC_CONST;
MarlinBookmarkList* marlin_bookmark_list_get_instance (void);
void marlin_bookmark_list_insert_uri (MarlinBookmarkList* self,
                                      const gchar* uri,
                                      guint index,
                                      const gchar* label);
void marlin_bookmark_list_insert_uri_at_end (MarlinBookmarkList* self,
                                             const gchar* uri,
                                             const gchar* label);
void marlin_bookmark_list_insert_uris (MarlinBookmarkList* self,
                                       GList* uris,
                                       guint index);
void marlin_bookmark_list_insert_uris_at_end (MarlinBookmarkList* self,
                                              GList* uris);
gboolean marlin_bookmark_list_contains (MarlinBookmarkList* self,
                                        MarlinBookmark* bm);
void marlin_bookmark_list_delete_item_at (MarlinBookmarkList* self,
                                          guint index);
void marlin_bookmark_list_delete_items_with_uri (MarlinBookmarkList* self,
                                                 const gchar* uri);
guint marlin_bookmark_list_length (MarlinBookmarkList* self);
MarlinBookmark* marlin_bookmark_list_item_at (MarlinBookmarkList* self,
                                              guint index);
void marlin_bookmark_list_move_item (MarlinBookmarkList* self,
                                     guint index,
                                     guint destination);
GList* marlin_bookmark_list_get_list (MarlinBookmarkList* self);
GType marlin_dnd_handler_get_type (void) G_GNUC_CONST;
MarlinDndHandler* marlin_dnd_handler_new (void);
MarlinDndHandler* marlin_dnd_handler_construct (GType object_type);
gboolean marlin_dnd_handler_dnd_perform (MarlinDndHandler* self,
                                         GtkWidget* widget,
                                         GOFFile* drop_target,
                                         GList* drop_file_list,
                                         GdkDragAction action);
GdkDragAction* marlin_dnd_handler_drag_drop_action_ask (MarlinDndHandler* self,
                                                        GtkWidget* dest_widget,
                                                        GtkApplicationWindow* win,
                                                        GdkDragAction possible_actions);
void marlin_dnd_handler_on_choice (MarlinDndHandler* self,
                                   GVariant* param);
gchar* marlin_dnd_handler_get_source_filename (MarlinDndHandler* self,
                                               GdkDragContext* context);
void marlin_dnd_handler_set_source_uri (MarlinDndHandler* self,
                                        GdkDragContext* context,
                                        const gchar* uri);
gboolean marlin_dnd_handler_handle_xdnddirectsave (MarlinDndHandler* self,
                                                   GdkDragContext* context,
                                                   GOFFile* drop_target,
                                                   GtkSelectionData* selection);
gboolean marlin_dnd_handler_handle_netscape_url (MarlinDndHandler* self,
                                                 GdkDragContext* context,
                                                 GOFFile* drop_target,
                                                 GtkSelectionData* selection);
gboolean marlin_dnd_handler_handle_file_drag_actions (MarlinDndHandler* self,
                                                      GtkWidget* dest_widget,
                                                      GtkApplicationWindow* win,
                                                      GdkDragContext* context,
                                                      GOFFile* drop_target,
                                                      GList* drop_file_list,
                                                      GdkDragAction possible_actions,
                                                      GdkDragAction suggested_action,
                                                      guint32 timestamp);
gboolean marlin_dnd_handler_selection_data_is_uri_list (GtkSelectionData* selection_data,
                                                        guint info,
                                                        gchar* * text);
gchar* marlin_dnd_handler_data_to_string (guchar* cdata,
                                          int cdata_length1);
void marlin_dnd_handler_set_selection_data_from_file_list (GtkSelectionData* selection_data,
                                                           GList* file_list,
                                                           const gchar* prefix);
void marlin_dnd_handler_set_selection_text_from_file_list (GtkSelectionData* selection_data,
                                                           GList* file_list,
                                                           const gchar* prefix);
GType marlin_window_state_get_type (void) G_GNUC_CONST;
gchar* marlin_window_state_to_string (MarlinWindowState self);
MarlinWindowState marlin_window_state_from_gdk_window_state (GdkWindowState state,
                                                             gboolean start);
gboolean marlin_window_state_is_tiled (MarlinWindowState self);
gboolean marlin_window_state_is_maximized (MarlinWindowState self);
GType marlin_view_mode_get_type (void) G_GNUC_CONST;
GType marlin_open_flag_get_type (void) G_GNUC_CONST;
GType marlin_zoom_level_get_type (void) G_GNUC_CONST;
GType marlin_icon_size_get_type (void) G_GNUC_CONST;
MarlinIconSize marlin_zoom_level_to_icon_size (MarlinZoomLevel zoom_level);
MarlinZoomLevel marlin_zoom_level_get_nearest_from_value (gint size);
GtkIconSize marlin_zoom_level_to_stock_icon_size (MarlinZoomLevel zoom_level);
GType marlin_target_type_get_type (void) G_GNUC_CONST;
GdkPixbuf* pf_pixbuf_utils_lighten (GdkPixbuf* src);
GdkPixbuf* pf_pixbuf_utils_darken (GdkPixbuf* src,
                                   guint8 saturation,
                                   guint8 darken);
GdkPixbuf* pf_pixbuf_utils_colorize (GdkPixbuf* src,
                                     GdkRGBA* color);
GdkPixbuf* pf_pixbuf_utils_lucent (GdkPixbuf* src,
                                   guint percent);
GList* pf_file_utils_files_from_uris (const gchar* uris);
GKeyFile* pf_file_utils_key_file_from_file (GFile* file,
                                            GCancellable* cancellable,
                                            GError** error);
GFile* pf_file_utils_get_file_for_path (const gchar* path);
gchar* pf_file_utils_get_parent_path_from_path (const gchar* path);
void pf_file_utils_restore_files_from_trash (GList* files,
                                             GtkWidget* widget);
gboolean pf_file_utils_path_has_parent (const gchar* new_path);
gchar* pf_file_utils_escape_uri (const gchar* uri,
                                 gboolean allow_utf8);
gchar* pf_file_utils_sanitize_path (const gchar* p,
                                    const gchar* cp);
void pf_file_utils_split_protocol_from_path (const gchar* path,
                                             gchar* * protocol,
                                             gchar* * new_path);
gchar* pf_file_utils_get_smb_share_from_uri (const gchar* uri);
void pf_file_utils_get_rename_region (const gchar* filename,
                                      gint* start_offset,
                                      gint* end_offset,
                                      gboolean select_all);
void pf_file_utils_set_file_display_name (GFile* old_location,
                                          const gchar* new_name,
                                          PFFileUtilsRenameCallbackFunc f,
                                          void* f_target);
gchar* pf_file_utils_get_formatted_time_attribute_from_info (GFileInfo* info,
                                                             const gchar* attr);
gchar* pf_file_utils_get_formatted_date_time (GDateTime* dt);
guint16 pf_file_utils_get_default_port_for_protocol (const gchar* protocol);
gboolean pf_file_utils_get_is_tls_for_protocol (const gchar* protocol);
gboolean pf_file_utils_location_is_in_trash (GFile* location);
GdkDragAction pf_file_utils_file_accepts_drop (GOFFile* dest,
                                               GList* drop_file_list,
                                               GdkDragContext* context,
                                               GdkDragAction* suggested_action_return);
#define MARLIN_ROOT_FS_URI "file://"
#define MARLIN_TRASH_URI "trash://"
#define MARLIN_NETWORK_URI "network://"
#define MARLIN_RECENT_URI "recent://"
#define MARLIN_AFP_URI "afp://"
#define MARLIN_DAV_URI "dav://"
#define MARLIN_DAVS_URI "davs://"
#define MARLIN_SFTP_URI "sftp://"
#define MARLIN_FTP_URI "ftp://"
#define MARLIN_SMB_URI "smb://"
#define MARLIN_MTP_URI "mtp://"
GType marlin_file_conflict_dialog_get_type (void) G_GNUC_CONST;
GType marlin_file_conflict_dialog_response_type_get_type (void) G_GNUC_CONST;
MarlinFileConflictDialog* marlin_file_conflict_dialog_new (GtkWindow* parent,
                                                           GFile* _source,
                                                           GFile* _destination,
                                                           GFile* _dest_dir);
MarlinFileConflictDialog* marlin_file_conflict_dialog_construct (GType object_type,
                                                                 GtkWindow* parent,
                                                                 GFile* _source,
                                                                 GFile* _destination,
                                                                 GFile* _dest_dir);
gchar* marlin_file_conflict_dialog_get_new_name (MarlinFileConflictDialog* self);
gboolean marlin_file_conflict_dialog_get_apply_to_all (MarlinFileConflictDialog* self);
GType gof_call_when_ready_get_type (void) G_GNUC_CONST;
GOFCallWhenReady* gof_call_when_ready_new (GList* _files,
                                           GOFCallWhenReadycall_when_ready_func _f,
                                           void* _f_target);
GOFCallWhenReady* gof_call_when_ready_construct (GType object_type,
                                                 GList* _files,
                                                 GOFCallWhenReadycall_when_ready_func _f,
                                                 void* _f_target);
GType gof_directory_async_state_get_type (void) G_GNUC_CONST;
void gof_directory_async_init (GOFDirectoryAsync* self,
                               GOFDirectoryAsyncGOFFileLoadedFunc file_loaded_func,
                               void* file_loaded_func_target);
void gof_directory_async_check_network (GOFDirectoryAsync* self,
                                        GAsyncReadyCallback _callback_,
                                        gpointer _user_data_);
gboolean gof_directory_async_check_network_finish (GOFDirectoryAsync* self,
                                                   GAsyncResult* _res_);
void gof_directory_async_cancel (GOFDirectoryAsync* self);
void gof_directory_async_reload (GOFDirectoryAsync* self);
void gof_directory_async_block_monitor (GOFDirectoryAsync* self);
void gof_directory_async_unblock_monitor (GOFDirectoryAsync* self);
void gof_directory_async_load_hiddens (GOFDirectoryAsync* self);
void gof_directory_async_update_files (GOFDirectoryAsync* self);
void gof_directory_async_update_desktop_files (GOFDirectoryAsync* self);
GOFFile* gof_directory_async_file_hash_lookup_location (GOFDirectoryAsync* self,
                                                        GFile* location);
void gof_directory_async_file_hash_add_file (GOFDirectoryAsync* self,
                                             GOFFile* gof);
GOFFile* gof_directory_async_file_cache_find_or_insert (GOFDirectoryAsync* self,
                                                        GFile* file,
                                                        gboolean update_hash);
void gof_directory_async_notify_files_changed (GList* files);
void gof_directory_async_notify_files_added (GList* files);
void gof_directory_async_notify_files_removed (GList* files);
void gof_directory_async_notify_files_moved (GList* files);
GOFDirectoryAsync* gof_directory_async_from_gfile (GFile* file);
GOFDirectoryAsync* gof_directory_async_from_file (GOFFile* gof);
void gof_directory_async_remove_file_from_cache (GOFFile* gof);
GOFDirectoryAsync* gof_directory_async_cache_lookup (GFile* file);
GOFDirectoryAsync* gof_directory_async_cache_lookup_parent (GFile* file);
gboolean gof_directory_async_remove_dir_from_cache (GOFDirectoryAsync* dir);
gboolean gof_directory_async_purge_dir_from_cache (GOFDirectoryAsync* dir);
gboolean gof_directory_async_has_parent (GOFDirectoryAsync* self);
GFile* gof_directory_async_get_parent (GOFDirectoryAsync* self);
gboolean gof_directory_async_is_loading (GOFDirectoryAsync* self);
gboolean gof_directory_async_is_loaded (GOFDirectoryAsync* self);
gboolean gof_directory_async_has_timed_out (GOFDirectoryAsync* self);
gboolean gof_directory_async_is_empty (GOFDirectoryAsync* self);
GList* gof_directory_async_get_sorted_dirs (GOFDirectoryAsync* self);
GFile* gof_directory_async_get_creation_key (GOFDirectoryAsync* self);
GFile* gof_directory_async_get_location (GOFDirectoryAsync* self);
GFile* gof_directory_async_get_selected_file (GOFDirectoryAsync* self);
GOFFile* gof_directory_async_get_file (GOFDirectoryAsync* self);
GOFDirectoryAsyncState gof_directory_async_get_state (GOFDirectoryAsync* self);
guint gof_directory_async_get_displayed_files_count (GOFDirectoryAsync* self);
const gchar* gof_directory_async_get_scheme (GOFDirectoryAsync* self);
gboolean gof_directory_async_get_is_local (GOFDirectoryAsync* self);
gboolean gof_directory_async_get_is_trash (GOFDirectoryAsync* self);
gboolean gof_directory_async_get_is_network (GOFDirectoryAsync* self);
gboolean gof_directory_async_get_is_recent (GOFDirectoryAsync* self);
gboolean gof_directory_async_get_is_no_info (GOFDirectoryAsync* self);
gboolean gof_directory_async_get_has_mounts (GOFDirectoryAsync* self);
gboolean gof_directory_async_get_has_trash_dirs (GOFDirectoryAsync* self);
gboolean gof_directory_async_get_can_load (GOFDirectoryAsync* self);
gboolean gof_directory_async_get_can_open_files (GOFDirectoryAsync* self);
gboolean gof_directory_async_get_can_stream_files (GOFDirectoryAsync* self);
gboolean gof_directory_async_get_allow_user_interaction (GOFDirectoryAsync* self);
void gof_directory_async_set_allow_user_interaction (GOFDirectoryAsync* self,
                                                     gboolean value);
gboolean gof_directory_async_get_is_cancelled (GOFDirectoryAsync* self);
const gchar* gof_directory_async_get_last_error_message (GOFDirectoryAsync* self);
gboolean gof_directory_async_get_loaded_from_cache (GOFDirectoryAsync* self);
gboolean gof_directory_async_get_freeze_update (GOFDirectoryAsync* self);
void gof_directory_async_set_freeze_update (GOFDirectoryAsync* self,
                                            gboolean value);
GType gof_preferences_get_type (void) G_GNUC_CONST;
extern GOFPreferences* gof_preferences;
GOFPreferences* gof_preferences_get_default (void);
GOFPreferences* gof_preferences_new (void);
GOFPreferences* gof_preferences_construct (GType object_type);
gboolean gof_preferences_get_show_hidden_files (GOFPreferences* self);
void gof_preferences_set_show_hidden_files (GOFPreferences* self,
                                            gboolean value);
gboolean gof_preferences_get_show_remote_thumbnails (GOFPreferences* self);
void gof_preferences_set_show_remote_thumbnails (GOFPreferences* self,
                                                 gboolean value);
gboolean gof_preferences_get_confirm_trash (GOFPreferences* self);
void gof_preferences_set_confirm_trash (GOFPreferences* self,
                                        gboolean value);
gboolean gof_preferences_get_force_icon_size (GOFPreferences* self);
void gof_preferences_set_force_icon_size (GOFPreferences* self,
                                          gboolean value);
gboolean gof_preferences_get_sort_directories_first (GOFPreferences* self);
void gof_preferences_set_sort_directories_first (GOFPreferences* self,
                                                 gboolean value);
const gchar* gof_preferences_get_date_format (GOFPreferences* self);
void gof_preferences_set_date_format (GOFPreferences* self,
                                      const gchar* value);
const gchar* gof_preferences_get_clock_format (GOFPreferences* self);
void gof_preferences_set_clock_format (GOFPreferences* self,
                                       const gchar* value);
GType marlin_plugin_manager_get_type (void) G_GNUC_CONST;
extern MarlinPluginManager* plugins;
MarlinPluginManager* marlin_plugin_manager_new (const gchar* plugin_dir,
                                                guint user_id);
MarlinPluginManager* marlin_plugin_manager_construct (GType object_type,
                                                      const gchar* plugin_dir,
                                                      guint user_id);
void marlin_plugin_manager_hook_context_menu (MarlinPluginManager* self,
                                              GtkWidget* menu,
                                              GList* files);
void marlin_plugin_manager_ui (MarlinPluginManager* self,
                               GtkUIManager* data);
void marlin_plugin_manager_directory_loaded (MarlinPluginManager* self,
                                             void* path);
void marlin_plugin_manager_interface_loaded (MarlinPluginManager* self,
                                             GtkWidget* win);
void marlin_plugin_manager_update_sidebar (MarlinPluginManager* self,
                                           GtkWidget* widget);
void marlin_plugin_manager_update_file_info (MarlinPluginManager* self,
                                             GOFFile* file);
GeeList* marlin_plugin_manager_get_available_plugins (MarlinPluginManager* self);
GeeList* marlin_plugin_manager_get_menuitem_references (MarlinPluginManager* self);
gpointer marlin_plugins_base_ref (gpointer instance);
void marlin_plugins_base_unref (gpointer instance);
GParamSpec* marlin_plugins_param_spec_base (const gchar* name,
                                            const gchar* nick,
                                            const gchar* blurb,
                                            GType object_type,
                                            GParamFlags flags);
void marlin_plugins_value_set_base (GValue* value,
                                    gpointer v_object);
void marlin_plugins_value_take_base (GValue* value,
                                     gpointer v_object);
gpointer marlin_plugins_value_get_base (const GValue* value);
GType marlin_plugins_base_get_type (void) G_GNUC_CONST;
void marlin_plugins_base_directory_loaded (MarlinPluginsBase* self,
                                           void* data);
void marlin_plugins_base_context_menu (MarlinPluginsBase* self,
                                       GtkWidget* widget,
                                       GList* files);
void marlin_plugins_base_ui (MarlinPluginsBase* self,
                             GtkUIManager* widget);
void marlin_plugins_base_update_sidebar (MarlinPluginsBase* self,
                                         GtkWidget* widget);
void marlin_plugins_base_update_file_info (MarlinPluginsBase* self,
                                           GOFFile* file);
void marlin_plugins_base_interface_loaded (MarlinPluginsBase* self,
                                           GtkWidget* widget);
MarlinPluginsBase* marlin_plugins_base_construct (GType object_type);
GType pf_progress_info_get_type (void) G_GNUC_CONST;
PFProgressInfo* pf_progress_info_new (void);
PFProgressInfo* pf_progress_info_construct (GType object_type);
gchar* pf_progress_info_get_title (PFProgressInfo* self);
gchar* pf_progress_info_get_status (PFProgressInfo* self);
gchar* pf_progress_info_get_details (PFProgressInfo* self);
GCancellable* pf_progress_info_get_cancellable (PFProgressInfo* self);
void pf_progress_info_cancel (PFProgressInfo* self);
gboolean pf_progress_info_get_is_started (PFProgressInfo* self);
gboolean pf_progress_info_get_is_finished (PFProgressInfo* self);
gboolean pf_progress_info_get_is_paused (PFProgressInfo* self);
gdouble pf_progress_info_get_progress (PFProgressInfo* self);
gdouble pf_progress_info_get_current (PFProgressInfo* self);
gdouble pf_progress_info_get_total (PFProgressInfo* self);
void pf_progress_info_start (PFProgressInfo* self);
void pf_progress_info_finish (PFProgressInfo* self);
void pf_progress_info_pause (PFProgressInfo* self);
void pf_progress_info_resume (PFProgressInfo* self);
void pf_progress_info_set_status (PFProgressInfo* self,
                                  const gchar* status);
void pf_progress_info_take_status (PFProgressInfo* self,
                                   gchar* status);
void pf_progress_info_set_details (PFProgressInfo* self,
                                   const gchar* details);
void pf_progress_info_take_details (PFProgressInfo* self,
                                    gchar* details);
void pf_progress_info_set_progress (PFProgressInfo* self,
                                    gdouble current,
                                    gdouble total);
void pf_progress_info_pulse_progress (PFProgressInfo* self);
GType pf_progress_info_manager_get_type (void) G_GNUC_CONST;
PFProgressInfoManager* pf_progress_info_manager_get_instance (void);
void pf_progress_info_manager_add_new_info (PFProgressInfoManager* self,
                                            PFProgressInfo* info);
GeeLinkedList* pf_progress_info_manager_get_all_infos (PFProgressInfoManager* self);
PFProgressInfoManager* pf_progress_info_manager_new (void);
PFProgressInfoManager* pf_progress_info_manager_construct (GType object_type);
GType pf_sound_manager_get_type (void) G_GNUC_CONST;
PFSoundManager* pf_sound_manager_get_instance (void);
void pf_sound_manager_play_delete_sound (PFSoundManager* self);
void pf_sound_manager_play_empty_trash_sound (PFSoundManager* self);
void pf_sound_manager_play_sound (PFSoundManager* self,
                                  const gchar* pf_sound_id);
#define PF_SOUND_THEME "freedesktop"
#define PF_SOUND_DELETE "trash-empty"
#define PF_SOUND_EMPTY_TRASH "trash-empty"
GraniteMessageDialog* pf_dialogs_show_error_dialog (const gchar* primary_text,
                                                    const gchar* secondary_text,
                                                    GtkWindow* parent);
GraniteMessageDialog* pf_dialogs_show_warning_dialog (const gchar* primary_text,
                                                      const gchar* secondary_text,
                                                      GtkWindow* parent);
void pf_dialogs_gtk_message_dialog_set_details_label (GtkMessageDialog* dialog,
                                                      const gchar* details_text);
GType marlin_trash_monitor_get_type (void) G_GNUC_CONST;
#define MARLIN_TRASH_MONITOR_URI "trash://"
MarlinTrashMonitor* marlin_trash_monitor_get_default (void);
GIcon* marlin_trash_monitor_get_icon (MarlinTrashMonitor* self);
MarlinTrashMonitor* marlin_trash_monitor_new (void);
MarlinTrashMonitor* marlin_trash_monitor_construct (GType object_type);
gboolean marlin_trash_monitor_get_is_empty (MarlinTrashMonitor* self);
GList* pf_user_utils_get_user_names (void);
GList* pf_user_utils_get_group_names_for_user (void);
GList* pf_user_utils_get_all_group_names (void);
gboolean pf_user_utils_user_in_group (const gchar* group_name);
uid_t* pf_user_utils_get_group_id_from_group_name (const gchar* group_name);
uid_t* pf_user_utils_get_user_id_from_user_name (const gchar* user_name);
const gchar* pf_user_utils_get_user_home_from_user_uid (uid_t uid);
uid_t* pf_user_utils_get_id_from_digit_string (const gchar* digit_string);
gchar* pf_user_utils_get_real_user_home (void);
GType marlin_icon_info_get_type (void) G_GNUC_CONST;
MarlinIconInfo* marlin_icon_info_new_for_pixbuf (GdkPixbuf* pixbuf);
MarlinIconInfo* marlin_icon_info_construct_for_pixbuf (GType object_type,
                                                       GdkPixbuf* pixbuf);
MarlinIconInfo* marlin_icon_info_new_for_icon_info (GtkIconInfo* icon_info);
MarlinIconInfo* marlin_icon_info_construct_for_icon_info (GType object_type,
                                                          GtkIconInfo* icon_info);
MarlinIconInfo* marlin_icon_info_lookup (GIcon* icon,
                                         gint size,
                                         gint scale);
MarlinIconInfo* marlin_icon_info_get_generic_icon (gint size,
                                                   gint scale);
MarlinIconInfo* marlin_icon_info_lookup_from_name (const gchar* icon_name,
                                                   gint size,
                                                   gint scale);
MarlinIconInfo* marlin_icon_info_lookup_from_path (const gchar* path,
                                                   gint size,
                                                   gint scale);
gboolean marlin_icon_info_is_fallback (MarlinIconInfo* self);
GdkPixbuf* marlin_icon_info_get_pixbuf_nodefault (MarlinIconInfo* self);
GtkIconTheme* marlin_icon_info_get_icon_theme (void);
guint marlin_icon_info_loadable_icon_cache_info (void);
guint marlin_icon_info_themed_icon_cache_info (void);
void marlin_icon_info_remove_cache (const gchar* path,
                                    gint size,
                                    gint scale);
void marlin_icon_info_set_reap_time (guint milliseconds);
void marlin_icon_info_clear_caches (void);
MarlinIconInfo* marlin_icon_info_new (void);
MarlinIconInfo* marlin_icon_info_construct (GType object_type);
GType marlin_thumbnailer_daemon_proxy_get_type (void) G_GNUC_CONST;
guint marlin_thumbnailer_daemon_register_object (void* object,
                                                 GDBusConnection* connection,
                                                 const gchar* path,
                                                 GError** error);
GType marlin_thumbnailer_daemon_get_type (void) G_GNUC_CONST;
void marlin_thumbnailer_daemon_queue (MarlinThumbnailerDaemon* self,
                                      gchar** uris,
                                      int uris_length1,
                                      gchar** mime_types,
                                      int mime_types_length1,
                                      const gchar* flavor,
                                      const gchar* scheduler,
                                      guint handle_to_unqueue,
                                      GAsyncReadyCallback _callback_,
                                      gpointer _user_data_);
guint marlin_thumbnailer_daemon_queue_finish (MarlinThumbnailerDaemon* self,
                                              GAsyncResult* _res_,
                                              GError** error);
void marlin_thumbnailer_daemon_dequeue (MarlinThumbnailerDaemon* self,
                                        guint handle,
                                        GAsyncReadyCallback _callback_,
                                        gpointer _user_data_);
void marlin_thumbnailer_daemon_dequeue_finish (MarlinThumbnailerDaemon* self,
                                               GAsyncResult* _res_,
                                               GError** error);
void marlin_thumbnailer_daemon_get_supported (MarlinThumbnailerDaemon* self,
                                              gchar*** uri_schemes,
                                              int* uri_schemes_length1,
                                              gchar*** mime_types,
                                              int* mime_types_length1,
                                              GError** error);
GType marlin_thumbnailer_get_type (void) G_GNUC_CONST;
MarlinThumbnailer* marlin_thumbnailer_get (void);
gboolean marlin_thumbnailer_queue_file (MarlinThumbnailer* self,
                                        GOFFile* file,
                                        gint* request,
                                        gboolean large);
gboolean marlin_thumbnailer_queue_files (MarlinThumbnailer* self,
                                         GList* files,
                                         gint* request,
                                         gboolean large);
void marlin_thumbnailer_dequeue (MarlinThumbnailer* self,
                                 gint request);

extern const gchar* GOF_PREFERENCES_TAGS_COLORS[10];

G_END_DECLS

#endif
