/* libutil.h generated by valac 0.56.19, the Vala compiler, do not modify */

#ifndef __LIBUTIL_H__
#define __LIBUTIL_H__

#include <glib-object.h>
#include <stdlib.h>
#include <string.h>
#include <glib.h>
#include <ibus.h>

G_BEGIN_DECLS

#if !defined(VALA_EXTERN)
#if defined(_MSC_VER)
#define VALA_EXTERN __declspec(dllexport) extern
#elif __GNUC__ >= 4
#define VALA_EXTERN __attribute__((visibility("default"))) extern
#else
#define VALA_EXTERN extern
#endif
#endif

#define TYPE_PREFERENCES (preferences_get_type ())
#define PREFERENCES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PREFERENCES, Preferences))
#define PREFERENCES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PREFERENCES, PreferencesClass))
#define IS_PREFERENCES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PREFERENCES))
#define IS_PREFERENCES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PREFERENCES))
#define PREFERENCES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PREFERENCES, PreferencesClass))

typedef struct _Preferences Preferences;
typedef struct _PreferencesClass PreferencesClass;
typedef struct _PreferencesPrivate PreferencesPrivate;

#define TYPE_PLIST_PARSE_ERROR (plist_parse_error_get_type ())

#define TYPE_PLIST (plist_get_type ())
#define PLIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PLIST, PList))
#define PLIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PLIST, PListClass))
#define IS_PLIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PLIST))
#define IS_PLIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PLIST))
#define PLIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PLIST, PListClass))

typedef struct _PList PList;
typedef struct _PListClass PListClass;
typedef struct _PListPrivate PListPrivate;

struct _Preferences {
	GObject parent_instance;
	PreferencesPrivate * priv;
};

struct _PreferencesClass {
	GObjectClass parent_class;
};

typedef enum  {
	PLIST_PARSE_ERROR_FAILED
} PListParseError;
#define PLIST_PARSE_ERROR plist_parse_error_quark ()

struct _PList {
	GObject parent_instance;
	PListPrivate * priv;
};

struct _PListClass {
	GObjectClass parent_class;
};

VALA_EXTERN GType preferences_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (Preferences, g_object_unref)
VALA_EXTERN void preferences_load (Preferences* self);
VALA_EXTERN void preferences_save (Preferences* self);
VALA_EXTERN GVariant* preferences_get (Preferences* self,
                           const gchar* name);
VALA_EXTERN void preferences_set (Preferences* self,
                      const gchar* name,
                      GVariant* value);
VALA_EXTERN Preferences* preferences_new (IBusConfig* config);
VALA_EXTERN Preferences* preferences_construct (GType object_type,
                                    IBusConfig* config);
VALA_EXTERN GQuark plist_parse_error_quark (void);
VALA_EXTERN GType plist_parse_error_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType plist_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (PList, g_object_unref)
VALA_EXTERN gchar* plist_get (PList* self,
                  const gchar* key);
VALA_EXTERN PList* plist_new (const gchar* str,
                  GError** error);
VALA_EXTERN PList* plist_construct (GType object_type,
                        const gchar* str,
                        GError** error);
VALA_EXTERN gchar* plist_escape (const gchar* str);
VALA_EXTERN gchar* plist_to_string (PList* self);

G_END_DECLS

#endif
