/* fdo.h generated by valac 0.10.4, the Vala compiler, do not modify */


#ifndef __DEFAULT_LIBDESKTOP_AGNOSTIC_FDO_H__
#define __DEFAULT_LIBDESKTOP_AGNOSTIC_FDO_H__

#include <glib.h>
#include <stdlib.h>
#include <string.h>
#include <glib-object.h>
#include <libdesktop-agnostic/vfs.h>

G_BEGIN_DECLS


#define DESKTOP_AGNOSTIC_FDO_TYPE_DESKTOP_ENTRY_LAUNCH_FLAGS (desktop_agnostic_fdo_desktop_entry_launch_flags_get_type ())

#define DESKTOP_AGNOSTIC_FDO_TYPE_DESKTOP_ENTRY_TYPE (desktop_agnostic_fdo_desktop_entry_type_get_type ())

#define DESKTOP_AGNOSTIC_FDO_TYPE_DESKTOP_ENTRY (desktop_agnostic_fdo_desktop_entry_get_type ())
#define DESKTOP_AGNOSTIC_FDO_DESKTOP_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DESKTOP_AGNOSTIC_FDO_TYPE_DESKTOP_ENTRY, DesktopAgnosticFDODesktopEntry))
#define DESKTOP_AGNOSTIC_FDO_IS_DESKTOP_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DESKTOP_AGNOSTIC_FDO_TYPE_DESKTOP_ENTRY))
#define DESKTOP_AGNOSTIC_FDO_DESKTOP_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), DESKTOP_AGNOSTIC_FDO_TYPE_DESKTOP_ENTRY, DesktopAgnosticFDODesktopEntryIface))

typedef struct _DesktopAgnosticFDODesktopEntry DesktopAgnosticFDODesktopEntry;
typedef struct _DesktopAgnosticFDODesktopEntryIface DesktopAgnosticFDODesktopEntryIface;

typedef enum  {
	DESKTOP_AGNOSTIC_FDO_DESKTOP_ENTRY_LAUNCH_FLAGS_ONLY_ONE = 1 << 0,
	DESKTOP_AGNOSTIC_FDO_DESKTOP_ENTRY_LAUNCH_FLAGS_USE_CWD = 1 << 1,
	DESKTOP_AGNOSTIC_FDO_DESKTOP_ENTRY_LAUNCH_FLAGS_DO_NOT_REAP_CHILD = 1 << 2
} DesktopAgnosticFDODesktopEntryLaunchFlags;

typedef enum  {
	DESKTOP_AGNOSTIC_FDO_DESKTOP_ENTRY_TYPE_UNKNOWN = 0,
	DESKTOP_AGNOSTIC_FDO_DESKTOP_ENTRY_TYPE_APPLICATION,
	DESKTOP_AGNOSTIC_FDO_DESKTOP_ENTRY_TYPE_LINK,
	DESKTOP_AGNOSTIC_FDO_DESKTOP_ENTRY_TYPE_DIRECTORY
} DesktopAgnosticFDODesktopEntryType;

typedef enum  {
	DESKTOP_AGNOSTIC_FDO_DESKTOP_ENTRY_ERROR_INVALID_FILE,
	DESKTOP_AGNOSTIC_FDO_DESKTOP_ENTRY_ERROR_NOT_LAUNCHABLE
} DesktopAgnosticFDODesktopEntryError;
#define DESKTOP_AGNOSTIC_FDO_DESKTOP_ENTRY_ERROR desktop_agnostic_fdo_desktop_entry_error_quark ()
struct _DesktopAgnosticFDODesktopEntryIface {
	GTypeInterface parent_iface;
	gboolean (*key_exists) (DesktopAgnosticFDODesktopEntry* self, const char* key);
	gboolean (*get_boolean) (DesktopAgnosticFDODesktopEntry* self, const char* key);
	void (*set_boolean) (DesktopAgnosticFDODesktopEntry* self, const char* key, gboolean value);
	char* (*get_string) (DesktopAgnosticFDODesktopEntry* self, const char* key);
	void (*set_string) (DesktopAgnosticFDODesktopEntry* self, const char* key, const char* value);
	char* (*get_localestring) (DesktopAgnosticFDODesktopEntry* self, const char* key, const char* locale);
	void (*set_localestring) (DesktopAgnosticFDODesktopEntry* self, const char* key, const char* locale, const char* value);
	char** (*get_string_list) (DesktopAgnosticFDODesktopEntry* self, const char* key);
	void (*set_string_list) (DesktopAgnosticFDODesktopEntry* self, const char* key, char** value);
	gboolean (*exists) (DesktopAgnosticFDODesktopEntry* self);
	GPid (*launch) (DesktopAgnosticFDODesktopEntry* self, DesktopAgnosticFDODesktopEntryLaunchFlags flags, GSList* documents, GError** error);
	void (*save) (DesktopAgnosticFDODesktopEntry* self, DesktopAgnosticVFSFile* new_file, GError** error);
	DesktopAgnosticVFSFile* (*get_file) (DesktopAgnosticFDODesktopEntry* self);
	void (*set_file) (DesktopAgnosticFDODesktopEntry* self, DesktopAgnosticVFSFile* value);
	GKeyFile* (*get_keyfile) (DesktopAgnosticFDODesktopEntry* self);
	void (*set_keyfile) (DesktopAgnosticFDODesktopEntry* self, GKeyFile* value);
	void (*set_data) (DesktopAgnosticFDODesktopEntry* self, const char* value);
	DesktopAgnosticFDODesktopEntryType (*get_entry_type) (DesktopAgnosticFDODesktopEntry* self);
	void (*set_entry_type) (DesktopAgnosticFDODesktopEntry* self, DesktopAgnosticFDODesktopEntryType value);
	char* (*get_name) (DesktopAgnosticFDODesktopEntry* self);
	void (*set_name) (DesktopAgnosticFDODesktopEntry* self, const char* value);
	char* (*get_icon) (DesktopAgnosticFDODesktopEntry* self);
	void (*set_icon) (DesktopAgnosticFDODesktopEntry* self, const char* value);
};


GType desktop_agnostic_fdo_desktop_entry_launch_flags_get_type (void) G_GNUC_CONST;
GType desktop_agnostic_fdo_desktop_entry_type_get_type (void) G_GNUC_CONST;
GQuark desktop_agnostic_fdo_desktop_entry_error_quark (void);
char* desktop_agnostic_fdo_desktop_entry_type_to_string (DesktopAgnosticFDODesktopEntryType entry_type);
GType desktop_agnostic_fdo_desktop_entry_get_type (void) G_GNUC_CONST;
gboolean desktop_agnostic_fdo_desktop_entry_key_exists (DesktopAgnosticFDODesktopEntry* self, const char* key);
gboolean desktop_agnostic_fdo_desktop_entry_get_boolean (DesktopAgnosticFDODesktopEntry* self, const char* key);
void desktop_agnostic_fdo_desktop_entry_set_boolean (DesktopAgnosticFDODesktopEntry* self, const char* key, gboolean value);
char* desktop_agnostic_fdo_desktop_entry_get_string (DesktopAgnosticFDODesktopEntry* self, const char* key);
void desktop_agnostic_fdo_desktop_entry_set_string (DesktopAgnosticFDODesktopEntry* self, const char* key, const char* value);
char* desktop_agnostic_fdo_desktop_entry_get_localestring (DesktopAgnosticFDODesktopEntry* self, const char* key, const char* locale);
void desktop_agnostic_fdo_desktop_entry_set_localestring (DesktopAgnosticFDODesktopEntry* self, const char* key, const char* locale, const char* value);
char** desktop_agnostic_fdo_desktop_entry_get_string_list (DesktopAgnosticFDODesktopEntry* self, const char* key);
void desktop_agnostic_fdo_desktop_entry_set_string_list (DesktopAgnosticFDODesktopEntry* self, const char* key, char** value);
gboolean desktop_agnostic_fdo_desktop_entry_exists (DesktopAgnosticFDODesktopEntry* self);
GPid desktop_agnostic_fdo_desktop_entry_launch (DesktopAgnosticFDODesktopEntry* self, DesktopAgnosticFDODesktopEntryLaunchFlags flags, GSList* documents, GError** error);
void desktop_agnostic_fdo_desktop_entry_save (DesktopAgnosticFDODesktopEntry* self, DesktopAgnosticVFSFile* new_file, GError** error);
DesktopAgnosticVFSFile* desktop_agnostic_fdo_desktop_entry_get_file (DesktopAgnosticFDODesktopEntry* self);
void desktop_agnostic_fdo_desktop_entry_set_file (DesktopAgnosticFDODesktopEntry* self, DesktopAgnosticVFSFile* value);
GKeyFile* desktop_agnostic_fdo_desktop_entry_get_keyfile (DesktopAgnosticFDODesktopEntry* self);
void desktop_agnostic_fdo_desktop_entry_set_keyfile (DesktopAgnosticFDODesktopEntry* self, GKeyFile* value);
void desktop_agnostic_fdo_desktop_entry_set_data (DesktopAgnosticFDODesktopEntry* self, const char* value);
DesktopAgnosticFDODesktopEntryType desktop_agnostic_fdo_desktop_entry_get_entry_type (DesktopAgnosticFDODesktopEntry* self);
void desktop_agnostic_fdo_desktop_entry_set_entry_type (DesktopAgnosticFDODesktopEntry* self, DesktopAgnosticFDODesktopEntryType value);
char* desktop_agnostic_fdo_desktop_entry_get_name (DesktopAgnosticFDODesktopEntry* self);
void desktop_agnostic_fdo_desktop_entry_set_name (DesktopAgnosticFDODesktopEntry* self, const char* value);
char* desktop_agnostic_fdo_desktop_entry_get_icon (DesktopAgnosticFDODesktopEntry* self);
void desktop_agnostic_fdo_desktop_entry_set_icon (DesktopAgnosticFDODesktopEntry* self, const char* value);
GType desktop_agnostic_fdo_get_type (GError** error);
DesktopAgnosticFDODesktopEntry* desktop_agnostic_fdo_desktop_entry_new (GError** error);
DesktopAgnosticFDODesktopEntry* desktop_agnostic_fdo_desktop_entry_new_for_file (DesktopAgnosticVFSFile* file, GError** error);
DesktopAgnosticFDODesktopEntry* desktop_agnostic_fdo_desktop_entry_new_for_keyfile (GKeyFile* keyfile, GError** error);
DesktopAgnosticFDODesktopEntry* desktop_agnostic_fdo_desktop_entry_new_for_data (const char* data, GError** error);


G_END_DECLS

#endif
