/* baobab-location-widget.c generated by valac 0.17.1.35-814b, the Vala compiler
 * generated from baobab-location-widget.vala, do not modify */

/* -*- indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/* Baobab - disk usage analyzer
 *
 * Copyright (C) 2012  Stefano Facchini <stefano.facchini@gmail.com>
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 */

#include <glib.h>
#include <glib-object.h>
#include <gtk/gtk.h>
#include <gio/gio.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <stdlib.h>
#include <string.h>
#include <float.h>
#include <math.h>
#include <glib/gi18n-lib.h>


#define BAOBAB_TYPE_LOCATION_WIDGET (baobab_location_widget_get_type ())
#define BAOBAB_LOCATION_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BAOBAB_TYPE_LOCATION_WIDGET, BaobabLocationWidget))
#define BAOBAB_LOCATION_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BAOBAB_TYPE_LOCATION_WIDGET, BaobabLocationWidgetClass))
#define BAOBAB_IS_LOCATION_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BAOBAB_TYPE_LOCATION_WIDGET))
#define BAOBAB_IS_LOCATION_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BAOBAB_TYPE_LOCATION_WIDGET))
#define BAOBAB_LOCATION_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BAOBAB_TYPE_LOCATION_WIDGET, BaobabLocationWidgetClass))

typedef struct _BaobabLocationWidget BaobabLocationWidget;
typedef struct _BaobabLocationWidgetClass BaobabLocationWidgetClass;
typedef struct _BaobabLocationWidgetPrivate BaobabLocationWidgetPrivate;
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))

#define BAOBAB_TYPE_LOCATION (baobab_location_get_type ())
#define BAOBAB_LOCATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BAOBAB_TYPE_LOCATION, BaobabLocation))
#define BAOBAB_LOCATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BAOBAB_TYPE_LOCATION, BaobabLocationClass))
#define BAOBAB_IS_LOCATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BAOBAB_TYPE_LOCATION))
#define BAOBAB_IS_LOCATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BAOBAB_TYPE_LOCATION))
#define BAOBAB_LOCATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BAOBAB_TYPE_LOCATION, BaobabLocationClass))

typedef struct _BaobabLocation BaobabLocation;
typedef struct _BaobabLocationClass BaobabLocationClass;
typedef struct _Block1Data Block1Data;
#define _baobab_location_unref0(var) ((var == NULL) ? NULL : (var = (baobab_location_unref (var), NULL)))
#define _g_free0(var) (var = (g_free (var), NULL))
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
#define _gtk_icon_info_free0(var) ((var == NULL) ? NULL : (var = (gtk_icon_info_free (var), NULL)))

struct _BaobabLocationWidget {
	GtkGrid parent_instance;
	BaobabLocationWidgetPrivate * priv;
};

struct _BaobabLocationWidgetClass {
	GtkGridClass parent_class;
};

typedef void (*BaobabLocationWidgetActionOnClick) (BaobabLocation* location, void* user_data);
struct _Block1Data {
	int _ref_count_;
	BaobabLocationWidget * self;
	BaobabLocation* location;
	BaobabLocationWidgetActionOnClick action;
	gpointer action_target;
};


static gpointer baobab_location_widget_parent_class = NULL;
static GtkSizeGroup* baobab_location_widget_name_size_group;
static GtkSizeGroup* baobab_location_widget_name_size_group = NULL;
static GtkSizeGroup* baobab_location_widget_mount_point_size_group;
static GtkSizeGroup* baobab_location_widget_mount_point_size_group = NULL;
static GtkSizeGroup* baobab_location_widget_size_size_group;
static GtkSizeGroup* baobab_location_widget_size_size_group = NULL;
static GtkSizeGroup* baobab_location_widget_used_size_group;
static GtkSizeGroup* baobab_location_widget_used_size_group = NULL;
static GtkSizeGroup* baobab_location_widget_button_size_group;
static GtkSizeGroup* baobab_location_widget_button_size_group = NULL;

GType baobab_location_widget_get_type (void) G_GNUC_CONST;
enum  {
	BAOBAB_LOCATION_WIDGET_DUMMY_PROPERTY
};
static void baobab_location_widget_ensure_size_groups (BaobabLocationWidget* self);
gpointer baobab_location_ref (gpointer instance);
void baobab_location_unref (gpointer instance);
GParamSpec* baobab_param_spec_location (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void baobab_value_set_location (GValue* value, gpointer v_object);
void baobab_value_take_location (GValue* value, gpointer v_object);
gpointer baobab_value_get_location (const GValue* value);
GType baobab_location_get_type (void) G_GNUC_CONST;
BaobabLocationWidget* baobab_location_widget_new (BaobabLocation* location, BaobabLocationWidgetActionOnClick action, void* action_target);
BaobabLocationWidget* baobab_location_widget_construct (GType object_type, BaobabLocation* location, BaobabLocationWidgetActionOnClick action, void* action_target);
static Block1Data* block1_data_ref (Block1Data* _data1_);
static void block1_data_unref (void * _userdata_);
GIcon* baobab_location_get_icon (BaobabLocation* self);
const gchar* baobab_location_get_name (BaobabLocation* self);
const gchar* baobab_location_get_mount_point (BaobabLocation* self);
guint64* baobab_location_get_size (BaobabLocation* self);
guint64* baobab_location_get_used (BaobabLocation* self);
static void __lambda8_ (Block1Data* _data1_);
static void ___lambda8__gtk_button_clicked (GtkButton* _sender, gpointer self);
static void baobab_location_widget_finalize (GObject* obj);


static void baobab_location_widget_ensure_size_groups (BaobabLocationWidget* self) {
	GtkSizeGroup* _tmp0_;
	GtkSizeGroup* _tmp1_;
	GtkSizeGroup* _tmp2_;
	GtkSizeGroup* _tmp3_;
	GtkSizeGroup* _tmp4_;
	GtkSizeGroup* _tmp5_;
	g_return_if_fail (self != NULL);
	_tmp0_ = baobab_location_widget_name_size_group;
	if (_tmp0_ != NULL) {
		return;
	}
	_tmp1_ = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
	_g_object_unref0 (baobab_location_widget_name_size_group);
	baobab_location_widget_name_size_group = _tmp1_;
	_tmp2_ = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
	_g_object_unref0 (baobab_location_widget_mount_point_size_group);
	baobab_location_widget_mount_point_size_group = _tmp2_;
	_tmp3_ = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
	_g_object_unref0 (baobab_location_widget_size_size_group);
	baobab_location_widget_size_size_group = _tmp3_;
	_tmp4_ = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
	_g_object_unref0 (baobab_location_widget_used_size_group);
	baobab_location_widget_used_size_group = _tmp4_;
	_tmp5_ = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
	_g_object_unref0 (baobab_location_widget_button_size_group);
	baobab_location_widget_button_size_group = _tmp5_;
}


static gpointer _baobab_location_ref0 (gpointer self) {
	return self ? baobab_location_ref (self) : NULL;
}


static Block1Data* block1_data_ref (Block1Data* _data1_) {
	g_atomic_int_inc (&_data1_->_ref_count_);
	return _data1_;
}


static void block1_data_unref (void * _userdata_) {
	Block1Data* _data1_;
	_data1_ = (Block1Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data1_->_ref_count_)) {
		BaobabLocationWidget * self;
		self = _data1_->self;
		_baobab_location_unref0 (_data1_->location);
		_g_object_unref0 (self);
		g_slice_free (Block1Data, _data1_);
	}
}


static gpointer _g_object_ref0 (gpointer self) {
	return self ? g_object_ref (self) : NULL;
}


static void __lambda8_ (Block1Data* _data1_) {
	BaobabLocationWidget * self;
	BaobabLocationWidgetActionOnClick _tmp0_;
	void* _tmp0__target;
	BaobabLocation* _tmp1_;
	self = _data1_->self;
	_tmp0_ = _data1_->action;
	_tmp0__target = _data1_->action_target;
	_tmp1_ = _data1_->location;
	_tmp0_ (_tmp1_, _tmp0__target);
}


static void ___lambda8__gtk_button_clicked (GtkButton* _sender, gpointer self) {
	__lambda8_ (self);
}


BaobabLocationWidget* baobab_location_widget_construct (GType object_type, BaobabLocation* location, BaobabLocationWidgetActionOnClick action, void* action_target) {
	BaobabLocationWidget * self = NULL;
	Block1Data* _data1_;
	BaobabLocation* _tmp0_;
	BaobabLocation* _tmp1_;
	BaobabLocationWidgetActionOnClick _tmp2_;
	void* _tmp2__target;
	GtkIconTheme* _tmp3_ = NULL;
	GtkIconTheme* _tmp4_;
	GtkIconTheme* icon_theme;
	BaobabLocation* _tmp5_;
	GIcon* _tmp6_;
	GIcon* _tmp7_;
	GtkIconInfo* _tmp8_ = NULL;
	GtkIconInfo* icon_info;
	BaobabLocation* _tmp19_;
	const gchar* _tmp20_;
	const gchar* _tmp21_;
	GtkLabel* _tmp22_;
	GtkLabel* label;
	GtkLabel* _tmp23_;
	GtkSizeGroup* _tmp24_;
	GtkLabel* _tmp25_;
	GtkLabel* _tmp26_;
	const gchar* _tmp27_ = NULL;
	BaobabLocation* _tmp28_;
	const gchar* _tmp29_;
	const gchar* _tmp30_;
	const gchar* _tmp34_;
	GtkLabel* _tmp35_;
	GtkLabel* _tmp36_;
	GtkLabel* _tmp37_;
	GtkLabel* _tmp38_;
	GtkLabel* _tmp39_;
	GtkStyleContext* _tmp40_ = NULL;
	GtkSizeGroup* _tmp41_;
	GtkLabel* _tmp42_;
	GtkLabel* _tmp43_;
	gchar* _tmp44_ = NULL;
	BaobabLocation* _tmp45_;
	guint64* _tmp46_;
	guint64* _tmp47_;
	const gchar* _tmp53_;
	GtkLabel* _tmp54_;
	GtkSizeGroup* _tmp55_;
	GtkLabel* _tmp56_;
	GtkLabel* _tmp57_;
	BaobabLocation* _tmp58_;
	guint64* _tmp59_;
	guint64* _tmp60_;
	const gchar* _tmp78_ = NULL;
	BaobabLocation* _tmp79_;
	const gchar* _tmp80_;
	const gchar* _tmp81_;
	const gchar* _tmp84_;
	gchar* _tmp85_;
	gchar* button_label;
	GtkButton* _tmp86_;
	GtkButton* button;
	GtkSizeGroup* _tmp87_;
	GError * _inner_error_ = NULL;
	g_return_val_if_fail (location != NULL, NULL);
	_data1_ = g_slice_new0 (Block1Data);
	_data1_->_ref_count_ = 1;
	_tmp0_ = location;
	_tmp1_ = _baobab_location_ref0 (_tmp0_);
	_data1_->location = _tmp1_;
	_tmp2_ = action;
	_tmp2__target = action_target;
	_data1_->action = _tmp2_;
	_data1_->action_target = _tmp2__target;
	self = (BaobabLocationWidget*) g_object_new (object_type, NULL);
	_data1_->self = g_object_ref (self);
	gtk_orientable_set_orientation ((GtkOrientable*) self, GTK_ORIENTATION_HORIZONTAL);
	gtk_grid_set_column_spacing ((GtkGrid*) self, 10);
	g_object_set ((GtkWidget*) self, "margin", 6, NULL);
	baobab_location_widget_ensure_size_groups (self);
	_tmp3_ = gtk_icon_theme_get_default ();
	_tmp4_ = _g_object_ref0 (_tmp3_);
	icon_theme = _tmp4_;
	_tmp5_ = _data1_->location;
	_tmp6_ = baobab_location_get_icon (_tmp5_);
	_tmp7_ = _tmp6_;
	_tmp8_ = gtk_icon_theme_lookup_by_gicon (icon_theme, _tmp7_, 64, 0);
	icon_info = _tmp8_;
	{
		GdkPixbuf* _tmp9_ = NULL;
		GdkPixbuf* pixbuf;
		GtkImage* _tmp10_;
		GtkImage* image;
		GtkImage* _tmp11_;
		_tmp9_ = gtk_icon_info_load_icon (icon_info, &_inner_error_);
		pixbuf = _tmp9_;
		if (_inner_error_ != NULL) {
			goto __catch4_g_error;
		}
		_tmp10_ = (GtkImage*) gtk_image_new_from_pixbuf (pixbuf);
		g_object_ref_sink (_tmp10_);
		image = _tmp10_;
		_tmp11_ = image;
		gtk_container_add ((GtkContainer*) self, (GtkWidget*) _tmp11_);
		_g_object_unref0 (image);
		_g_object_unref0 (pixbuf);
	}
	goto __finally4;
	__catch4_g_error:
	{
		GError* e = NULL;
		BaobabLocation* _tmp12_;
		GIcon* _tmp13_;
		GIcon* _tmp14_;
		gchar* _tmp15_ = NULL;
		gchar* _tmp16_;
		GError* _tmp17_;
		const gchar* _tmp18_;
		e = _inner_error_;
		_inner_error_ = NULL;
		_tmp12_ = _data1_->location;
		_tmp13_ = baobab_location_get_icon (_tmp12_);
		_tmp14_ = _tmp13_;
		_tmp15_ = g_icon_to_string (_tmp14_);
		_tmp16_ = _tmp15_;
		_tmp17_ = e;
		_tmp18_ = _tmp17_->message;
		g_warning ("baobab-location-widget.vala:58: Failed to load icon %s: %s", _tmp16_, _tmp18_);
		_g_free0 (_tmp16_);
		_g_error_free0 (e);
	}
	__finally4:
	if (_inner_error_ != NULL) {
		_gtk_icon_info_free0 (icon_info);
		_g_object_unref0 (icon_theme);
		block1_data_unref (_data1_);
		_data1_ = NULL;
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
		g_clear_error (&_inner_error_);
		return NULL;
	}
	_tmp19_ = _data1_->location;
	_tmp20_ = baobab_location_get_name (_tmp19_);
	_tmp21_ = _tmp20_;
	_tmp22_ = (GtkLabel*) gtk_label_new (_tmp21_);
	g_object_ref_sink (_tmp22_);
	label = _tmp22_;
	_tmp23_ = label;
	g_object_set ((GtkMisc*) _tmp23_, "xalign", (gfloat) 0, NULL);
	_tmp24_ = baobab_location_widget_name_size_group;
	_tmp25_ = label;
	gtk_size_group_add_widget (_tmp24_, (GtkWidget*) _tmp25_);
	_tmp26_ = label;
	gtk_container_add ((GtkContainer*) self, (GtkWidget*) _tmp26_);
	_tmp28_ = _data1_->location;
	_tmp29_ = baobab_location_get_mount_point (_tmp28_);
	_tmp30_ = _tmp29_;
	if (_tmp30_ != NULL) {
		BaobabLocation* _tmp31_;
		const gchar* _tmp32_;
		const gchar* _tmp33_;
		_tmp31_ = _data1_->location;
		_tmp32_ = baobab_location_get_mount_point (_tmp31_);
		_tmp33_ = _tmp32_;
		_tmp27_ = _tmp33_;
	} else {
		_tmp27_ = "";
	}
	_tmp34_ = _tmp27_;
	_tmp35_ = (GtkLabel*) gtk_label_new (_tmp34_);
	g_object_ref_sink (_tmp35_);
	_g_object_unref0 (label);
	label = _tmp35_;
	_tmp36_ = label;
	gtk_widget_set_hexpand ((GtkWidget*) _tmp36_, TRUE);
	_tmp37_ = label;
	gtk_widget_set_halign ((GtkWidget*) _tmp37_, GTK_ALIGN_CENTER);
	_tmp38_ = label;
	g_object_set ((GtkMisc*) _tmp38_, "xalign", (gfloat) 0, NULL);
	_tmp39_ = label;
	_tmp40_ = gtk_widget_get_style_context ((GtkWidget*) _tmp39_);
	gtk_style_context_add_class (_tmp40_, "dim-label");
	_tmp41_ = baobab_location_widget_mount_point_size_group;
	_tmp42_ = label;
	gtk_size_group_add_widget (_tmp41_, (GtkWidget*) _tmp42_);
	_tmp43_ = label;
	gtk_container_add ((GtkContainer*) self, (GtkWidget*) _tmp43_);
	_tmp45_ = _data1_->location;
	_tmp46_ = baobab_location_get_size (_tmp45_);
	_tmp47_ = _tmp46_;
	if (_tmp47_ != NULL) {
		BaobabLocation* _tmp48_;
		guint64* _tmp49_;
		guint64* _tmp50_;
		gchar* _tmp51_ = NULL;
		_tmp48_ = _data1_->location;
		_tmp49_ = baobab_location_get_size (_tmp48_);
		_tmp50_ = _tmp49_;
		_tmp51_ = g_format_size_full (*_tmp50_, G_FORMAT_SIZE_DEFAULT);
		_g_free0 (_tmp44_);
		_tmp44_ = _tmp51_;
	} else {
		gchar* _tmp52_;
		_tmp52_ = g_strdup ("");
		_g_free0 (_tmp44_);
		_tmp44_ = _tmp52_;
	}
	_tmp53_ = _tmp44_;
	_tmp54_ = (GtkLabel*) gtk_label_new (_tmp53_);
	g_object_ref_sink (_tmp54_);
	_g_object_unref0 (label);
	label = _tmp54_;
	_tmp55_ = baobab_location_widget_size_size_group;
	_tmp56_ = label;
	gtk_size_group_add_widget (_tmp55_, (GtkWidget*) _tmp56_);
	_tmp57_ = label;
	gtk_container_add ((GtkContainer*) self, (GtkWidget*) _tmp57_);
	_tmp58_ = _data1_->location;
	_tmp59_ = baobab_location_get_used (_tmp58_);
	_tmp60_ = _tmp59_;
	if (_tmp60_ != NULL) {
		GtkProgressBar* _tmp61_;
		GtkProgressBar* progress;
		GtkProgressBar* _tmp62_;
		GtkProgressBar* _tmp63_;
		BaobabLocation* _tmp64_;
		guint64* _tmp65_;
		guint64* _tmp66_;
		BaobabLocation* _tmp67_;
		guint64* _tmp68_;
		guint64* _tmp69_;
		GtkSizeGroup* _tmp70_;
		GtkProgressBar* _tmp71_;
		GtkProgressBar* _tmp72_;
		_tmp61_ = (GtkProgressBar*) gtk_progress_bar_new ();
		g_object_ref_sink (_tmp61_);
		progress = _tmp61_;
		_tmp62_ = progress;
		gtk_widget_set_valign ((GtkWidget*) _tmp62_, GTK_ALIGN_CENTER);
		_tmp63_ = progress;
		_tmp64_ = _data1_->location;
		_tmp65_ = baobab_location_get_used (_tmp64_);
		_tmp66_ = _tmp65_;
		_tmp67_ = _data1_->location;
		_tmp68_ = baobab_location_get_size (_tmp67_);
		_tmp69_ = _tmp68_;
		gtk_progress_bar_set_fraction (_tmp63_, ((gdouble) (*_tmp66_)) / (*_tmp69_));
		_tmp70_ = baobab_location_widget_used_size_group;
		_tmp71_ = progress;
		gtk_size_group_add_widget (_tmp70_, (GtkWidget*) _tmp71_);
		_tmp72_ = progress;
		gtk_container_add ((GtkContainer*) self, (GtkWidget*) _tmp72_);
		_g_object_unref0 (progress);
	} else {
		const gchar* _tmp73_ = NULL;
		GtkLabel* _tmp74_;
		GtkSizeGroup* _tmp75_;
		GtkLabel* _tmp76_;
		GtkLabel* _tmp77_;
		_tmp73_ = _ ("Usage unknown");
		_tmp74_ = (GtkLabel*) gtk_label_new (_tmp73_);
		g_object_ref_sink (_tmp74_);
		_g_object_unref0 (label);
		label = _tmp74_;
		_tmp75_ = baobab_location_widget_used_size_group;
		_tmp76_ = label;
		gtk_size_group_add_widget (_tmp75_, (GtkWidget*) _tmp76_);
		_tmp77_ = label;
		gtk_container_add ((GtkContainer*) self, (GtkWidget*) _tmp77_);
	}
	_tmp79_ = _data1_->location;
	_tmp80_ = baobab_location_get_mount_point (_tmp79_);
	_tmp81_ = _tmp80_;
	if (_tmp81_ != NULL) {
		const gchar* _tmp82_ = NULL;
		_tmp82_ = _ ("Scan");
		_tmp78_ = _tmp82_;
	} else {
		const gchar* _tmp83_ = NULL;
		_tmp83_ = _ ("Mount and scan");
		_tmp78_ = _tmp83_;
	}
	_tmp84_ = _tmp78_;
	_tmp85_ = g_strdup (_tmp84_);
	button_label = _tmp85_;
	_tmp86_ = (GtkButton*) gtk_button_new_with_label (button_label);
	g_object_ref_sink (_tmp86_);
	button = _tmp86_;
	gtk_widget_set_valign ((GtkWidget*) button, GTK_ALIGN_CENTER);
	_tmp87_ = baobab_location_widget_button_size_group;
	gtk_size_group_add_widget (_tmp87_, (GtkWidget*) button);
	gtk_container_add ((GtkContainer*) self, (GtkWidget*) button);
	g_signal_connect_data (button, "clicked", (GCallback) ___lambda8__gtk_button_clicked, block1_data_ref (_data1_), (GClosureNotify) block1_data_unref, 0);
	gtk_widget_show_all ((GtkWidget*) self);
	_g_object_unref0 (button);
	_g_free0 (button_label);
	_g_free0 (_tmp44_);
	_g_object_unref0 (label);
	_gtk_icon_info_free0 (icon_info);
	_g_object_unref0 (icon_theme);
	block1_data_unref (_data1_);
	_data1_ = NULL;
	return self;
}


BaobabLocationWidget* baobab_location_widget_new (BaobabLocation* location, BaobabLocationWidgetActionOnClick action, void* action_target) {
	return baobab_location_widget_construct (BAOBAB_TYPE_LOCATION_WIDGET, location, action, action_target);
}


static void baobab_location_widget_class_init (BaobabLocationWidgetClass * klass) {
	baobab_location_widget_parent_class = g_type_class_peek_parent (klass);
	G_OBJECT_CLASS (klass)->finalize = baobab_location_widget_finalize;
}


static void baobab_location_widget_instance_init (BaobabLocationWidget * self) {
}


static void baobab_location_widget_finalize (GObject* obj) {
	BaobabLocationWidget * self;
	self = BAOBAB_LOCATION_WIDGET (obj);
	G_OBJECT_CLASS (baobab_location_widget_parent_class)->finalize (obj);
}


GType baobab_location_widget_get_type (void) {
	static volatile gsize baobab_location_widget_type_id__volatile = 0;
	if (g_once_init_enter (&baobab_location_widget_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (BaobabLocationWidgetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) baobab_location_widget_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (BaobabLocationWidget), 0, (GInstanceInitFunc) baobab_location_widget_instance_init, NULL };
		GType baobab_location_widget_type_id;
		baobab_location_widget_type_id = g_type_register_static (GTK_TYPE_GRID, "BaobabLocationWidget", &g_define_type_info, 0);
		g_once_init_leave (&baobab_location_widget_type_id__volatile, baobab_location_widget_type_id);
	}
	return baobab_location_widget_type_id__volatile;
}



