--- /dev/null
+/* AppDirs.c generated by valac, the Vala compiler
+ * generated from AppDirs.vala, do not modify */
+
+/* Copyright 2009-2010 Yorba Foundation
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gio/gio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_APP_DIRS (app_dirs_get_type ())
+#define APP_DIRS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APP_DIRS, AppDirs))
+#define APP_DIRS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APP_DIRS, AppDirsClass))
+#define IS_APP_DIRS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APP_DIRS))
+#define IS_APP_DIRS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APP_DIRS))
+#define APP_DIRS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APP_DIRS, AppDirsClass))
+
+typedef struct _AppDirs AppDirs;
+typedef struct _AppDirsClass AppDirsClass;
+typedef struct _AppDirsPrivate AppDirsPrivate;
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+typedef struct _ParamSpecAppDirs ParamSpecAppDirs;
+
+struct _AppDirs {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ AppDirsPrivate * priv;
+};
+
+struct _AppDirsClass {
+ GTypeClass parent_class;
+ void (*finalize) (AppDirs *self);
+};
+
+struct _ParamSpecAppDirs {
+ GParamSpec parent_instance;
+};
+
+
+static GFile* app_dirs_exec_dir;
+static GFile* app_dirs_exec_dir = NULL;
+static char* app_dirs_program_name;
+static char* app_dirs_program_name = NULL;
+static gpointer app_dirs_parent_class = NULL;
+
+gpointer app_dirs_ref (gpointer instance);
+void app_dirs_unref (gpointer instance);
+GParamSpec* param_spec_app_dirs (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_app_dirs (GValue* value, gpointer v_object);
+void value_take_app_dirs (GValue* value, gpointer v_object);
+gpointer value_get_app_dirs (const GValue* value);
+GType app_dirs_get_type (void);
+enum {
+ APP_DIRS_DUMMY_PROPERTY
+};
+void app_dirs_init (const char* arg0, const char* program_name);
+void app_dirs_terminate (void);
+GFile* app_dirs_get_exec_dir (void);
+static GFile* app_dirs_get_install_dir (void);
+GFile* app_dirs_get_resources_dir (void);
+AppDirs* app_dirs_new (void);
+AppDirs* app_dirs_construct (GType object_type);
+static void app_dirs_finalize (AppDirs* obj);
+
+
+
+#line 14 "AppDirs.vala"
+void app_dirs_init (const char* arg0, const char* program_name) {
+#line 78 "AppDirs.c"
+ char* _tmp0_;
+ GFile* _tmp1_;
+ GFile* exec_file;
+ GFile* _tmp2_;
+ char* _tmp3_;
+#line 14 "AppDirs.vala"
+ g_return_if_fail (arg0 != NULL);
+#line 14 "AppDirs.vala"
+ g_return_if_fail (program_name != NULL);
+#line 15 "AppDirs.vala"
+ exec_file = (_tmp1_ = g_file_new_for_path (_tmp0_ = g_find_program_in_path (arg0)), _g_free0 (_tmp0_), _tmp1_);
+#line 16 "AppDirs.vala"
+ app_dirs_exec_dir = (_tmp2_ = g_file_get_parent (exec_file), _g_object_unref0 (app_dirs_exec_dir), _tmp2_);
+#line 17 "AppDirs.vala"
+ app_dirs_program_name = (_tmp3_ = g_strdup (program_name), _g_free0 (app_dirs_program_name), _tmp3_);
+#line 94 "AppDirs.c"
+ _g_object_unref0 (exec_file);
+}
+
+
+#line 20 "AppDirs.vala"
+void app_dirs_terminate (void) {
+#line 101 "AppDirs.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+ return self ? g_object_ref (self) : NULL;
+}
+
+
+#line 23 "AppDirs.vala"
+GFile* app_dirs_get_exec_dir (void) {
+#line 112 "AppDirs.c"
+ GFile* result = NULL;
+ result = _g_object_ref0 (app_dirs_exec_dir);
+#line 24 "AppDirs.vala"
+ return result;
+#line 117 "AppDirs.c"
+}
+
+
+#line 27 "AppDirs.vala"
+GFile* app_dirs_get_resources_dir (void) {
+#line 123 "AppDirs.c"
+ GFile* result = NULL;
+ GFile* exec_dir;
+ GFile* install_dir;
+ GFile* return_value;
+#line 28 "AppDirs.vala"
+ exec_dir = app_dirs_get_exec_dir ();
+#line 29 "AppDirs.vala"
+ install_dir = app_dirs_get_install_dir ();
+#line 132 "AppDirs.c"
+ return_value = NULL;
+#line 31 "AppDirs.vala"
+ if (install_dir != NULL) {
+#line 136 "AppDirs.c"
+ GFile* _tmp1_;
+ GFile* _tmp0_;
+#line 32 "AppDirs.vala"
+ return_value = (_tmp1_ = g_file_get_child (_tmp0_ = g_file_get_child (install_dir, "share"), app_dirs_program_name), _g_object_unref0 (return_value), _tmp1_);
+#line 141 "AppDirs.c"
+ _g_object_unref0 (_tmp0_);
+ } else {
+ GFile* _tmp2_;
+#line 34 "AppDirs.vala"
+ return_value = (_tmp2_ = _g_object_ref0 (exec_dir), _g_object_unref0 (return_value), _tmp2_);
+#line 147 "AppDirs.c"
+ }
+ result = g_file_get_child (return_value, "resources");
+ _g_object_unref0 (exec_dir);
+ _g_object_unref0 (install_dir);
+ _g_object_unref0 (return_value);
+#line 36 "AppDirs.vala"
+ return result;
+#line 155 "AppDirs.c"
+}
+
+
+#line 39 "AppDirs.vala"
+static GFile* app_dirs_get_install_dir (void) {
+#line 161 "AppDirs.c"
+ GFile* result = NULL;
+ GFile* prefix_dir;
+ GFile* _tmp0_;
+#line 40 "AppDirs.vala"
+ prefix_dir = g_file_new_for_path (_PREFIX);
+#line 167 "AppDirs.c"
+ _tmp0_ = NULL;
+#line 41 "AppDirs.vala"
+ if (g_file_has_prefix (app_dirs_exec_dir, prefix_dir)) {
+#line 41 "AppDirs.vala"
+ _tmp0_ = prefix_dir;
+#line 173 "AppDirs.c"
+ } else {
+#line 41 "AppDirs.vala"
+ _tmp0_ = NULL;
+#line 177 "AppDirs.c"
+ }
+ result = _g_object_ref0 (_tmp0_);
+ _g_object_unref0 (prefix_dir);
+#line 41 "AppDirs.vala"
+ return result;
+#line 183 "AppDirs.c"
+}
+
+
+#line 10 "AppDirs.vala"
+AppDirs* app_dirs_construct (GType object_type) {
+#line 189 "AppDirs.c"
+ AppDirs* self;
+ self = (AppDirs*) g_type_create_instance (object_type);
+ return self;
+}
+
+
+#line 10 "AppDirs.vala"
+AppDirs* app_dirs_new (void) {
+#line 10 "AppDirs.vala"
+ return app_dirs_construct (TYPE_APP_DIRS);
+#line 200 "AppDirs.c"
+}
+
+
+static void value_app_dirs_init (GValue* value) {
+ value->data[0].v_pointer = NULL;
+}
+
+
+static void value_app_dirs_free_value (GValue* value) {
+ if (value->data[0].v_pointer) {
+ app_dirs_unref (value->data[0].v_pointer);
+ }
+}
+
+
+static void value_app_dirs_copy_value (const GValue* src_value, GValue* dest_value) {
+ if (src_value->data[0].v_pointer) {
+ dest_value->data[0].v_pointer = app_dirs_ref (src_value->data[0].v_pointer);
+ } else {
+ dest_value->data[0].v_pointer = NULL;
+ }
+}
+
+
+static gpointer value_app_dirs_peek_pointer (const GValue* value) {
+ return value->data[0].v_pointer;
+}
+
+
+static gchar* value_app_dirs_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ if (collect_values[0].v_pointer) {
+ AppDirs* object;
+ object = collect_values[0].v_pointer;
+ if (object->parent_instance.g_class == NULL) {
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+ }
+ value->data[0].v_pointer = app_dirs_ref (object);
+ } else {
+ value->data[0].v_pointer = NULL;
+ }
+ return NULL;
+}
+
+
+static gchar* value_app_dirs_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ AppDirs** object_p;
+ object_p = collect_values[0].v_pointer;
+ if (!object_p) {
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+ }
+ if (!value->data[0].v_pointer) {
+ *object_p = NULL;
+ } else if (collect_flags && G_VALUE_NOCOPY_CONTENTS) {
+ *object_p = value->data[0].v_pointer;
+ } else {
+ *object_p = app_dirs_ref (value->data[0].v_pointer);
+ }
+ return NULL;
+}
+
+
+GParamSpec* param_spec_app_dirs (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecAppDirs* spec;
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_APP_DIRS), NULL);
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+ G_PARAM_SPEC (spec)->value_type = object_type;
+ return G_PARAM_SPEC (spec);
+}
+
+
+gpointer value_get_app_dirs (const GValue* value) {
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_APP_DIRS), NULL);
+ return value->data[0].v_pointer;
+}
+
+
+void value_set_app_dirs (GValue* value, gpointer v_object) {
+ AppDirs* old;
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_APP_DIRS));
+ old = value->data[0].v_pointer;
+ if (v_object) {
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_APP_DIRS));
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+ value->data[0].v_pointer = v_object;
+ app_dirs_ref (value->data[0].v_pointer);
+ } else {
+ value->data[0].v_pointer = NULL;
+ }
+ if (old) {
+ app_dirs_unref (old);
+ }
+}
+
+
+void value_take_app_dirs (GValue* value, gpointer v_object) {
+ AppDirs* old;
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_APP_DIRS));
+ old = value->data[0].v_pointer;
+ if (v_object) {
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_APP_DIRS));
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+ value->data[0].v_pointer = v_object;
+ } else {
+ value->data[0].v_pointer = NULL;
+ }
+ if (old) {
+ app_dirs_unref (old);
+ }
+}
+
+
+static void app_dirs_class_init (AppDirsClass * klass) {
+ app_dirs_parent_class = g_type_class_peek_parent (klass);
+ APP_DIRS_CLASS (klass)->finalize = app_dirs_finalize;
+}
+
+
+static void app_dirs_instance_init (AppDirs * self) {
+ self->ref_count = 1;
+}
+
+
+static void app_dirs_finalize (AppDirs* obj) {
+ AppDirs * self;
+ self = APP_DIRS (obj);
+}
+
+
+GType app_dirs_get_type (void) {
+ static volatile gsize app_dirs_type_id__volatile = 0;
+ if (g_once_init_enter (&app_dirs_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_app_dirs_init, value_app_dirs_free_value, value_app_dirs_copy_value, value_app_dirs_peek_pointer, "p", value_app_dirs_collect_value, "p", value_app_dirs_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (AppDirsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) app_dirs_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (AppDirs), 0, (GInstanceInitFunc) app_dirs_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType app_dirs_type_id;
+ app_dirs_type_id = g_type_register_fundamental (g_type_fundamental_next (), "AppDirs", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&app_dirs_type_id__volatile, app_dirs_type_id);
+ }
+ return app_dirs_type_id__volatile;
+}
+
+
+gpointer app_dirs_ref (gpointer instance) {
+ AppDirs* self;
+ self = instance;
+ g_atomic_int_inc (&self->ref_count);
+ return instance;
+}
+
+
+void app_dirs_unref (gpointer instance) {
+ AppDirs* self;
+ self = instance;
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+ APP_DIRS_GET_CLASS (self)->finalize (self);
+ g_type_free_instance ((GTypeInstance *) self);
+ }
+}
+
+
+
+