/* revealer.c generated by valac 0.18.0.29-efcd0, the Vala compiler
 * generated from revealer.vala, do not modify */

/* This file is part of GNOME Boxes. License: LGPLv2+*/

#include <glib.h>
#include <glib-object.h>
#include <clutter/clutter.h>
#include <float.h>
#include <math.h>


#define BOXES_TYPE_REVEALER (boxes_revealer_get_type ())
#define BOXES_REVEALER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_REVEALER, BoxesRevealer))
#define BOXES_REVEALER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_REVEALER, BoxesRevealerClass))
#define BOXES_IS_REVEALER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_REVEALER))
#define BOXES_IS_REVEALER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_REVEALER))
#define BOXES_REVEALER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_REVEALER, BoxesRevealerClass))

typedef struct _BoxesRevealer BoxesRevealer;
typedef struct _BoxesRevealerClass BoxesRevealerClass;
typedef struct _BoxesRevealerPrivate BoxesRevealerPrivate;
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define _g_list_free0(var) ((var == NULL) ? NULL : (var = (g_list_free (var), NULL)))
typedef struct _Block36Data Block36Data;

struct _BoxesRevealer {
	ClutterActor parent_instance;
	BoxesRevealerPrivate * priv;
	guint duration;
	gboolean resize;
};

struct _BoxesRevealerClass {
	ClutterActorClass parent_class;
};

struct _BoxesRevealerPrivate {
	gboolean horizontal;
	gboolean children_visible;
	gboolean _revealed;
};

struct _Block36Data {
	int _ref_count_;
	BoxesRevealer * self;
	ClutterActor* child;
};


static gpointer boxes_revealer_parent_class = NULL;

GType boxes_revealer_get_type (void) G_GNUC_CONST;
#define BOXES_REVEALER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), BOXES_TYPE_REVEALER, BoxesRevealerPrivate))
enum  {
	BOXES_REVEALER_DUMMY_PROPERTY,
	BOXES_REVEALER_REVEALED
};
BoxesRevealer* boxes_revealer_new (gboolean horizontal);
BoxesRevealer* boxes_revealer_construct (GType object_type, gboolean horizontal);
static void __lambda3_ (BoxesRevealer* self, ClutterActor* child);
static void ___lambda3__clutter_container_actor_added (ClutterContainer* _sender, ClutterActor* actor, gpointer self);
void boxes_revealer_reveal (BoxesRevealer* self);
static void boxes_revealer_unreveal_child (BoxesRevealer* self, ClutterActor* child);
static Block36Data* block36_data_ref (Block36Data* _data36_);
static void block36_data_unref (void * _userdata_);
static void ___lambda4_ (Block36Data* _data36_);
static void ____lambda4__clutter_animation_completed (ClutterAnimation* _sender, gpointer self);
static void ___lambda5_ (Block36Data* _data36_);
static void ____lambda5__clutter_animation_completed (ClutterAnimation* _sender, gpointer self);
void boxes_revealer_unreveal (BoxesRevealer* self);
gboolean boxes_revealer_get_revealed (BoxesRevealer* self);
void boxes_revealer_set_revealed (BoxesRevealer* self, gboolean value);
static void boxes_revealer_finalize (GObject* obj);
static void _vala_boxes_revealer_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_boxes_revealer_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);


static void __lambda3_ (BoxesRevealer* self, ClutterActor* child) {
	gboolean _tmp0_;
#line 44 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	g_return_if_fail (child != NULL);
#line 45 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	_tmp0_ = self->priv->children_visible;
#line 45 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	if (_tmp0_) {
#line 88 "revealer.c"
		ClutterActor* _tmp1_;
#line 46 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		_tmp1_ = child;
#line 46 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		clutter_actor_show (_tmp1_);
#line 94 "revealer.c"
	} else {
		ClutterActor* _tmp2_;
#line 48 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		_tmp2_ = child;
#line 48 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		clutter_actor_hide (_tmp2_);
#line 101 "revealer.c"
	}
}


static void ___lambda3__clutter_container_actor_added (ClutterContainer* _sender, ClutterActor* actor, gpointer self) {
#line 44 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	__lambda3_ (self, actor);
#line 109 "revealer.c"
}


BoxesRevealer* boxes_revealer_construct (GType object_type, gboolean horizontal) {
	BoxesRevealer * self = NULL;
	gboolean _tmp0_;
	gboolean _tmp1_;
#line 28 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	self = (BoxesRevealer*) g_object_new (object_type, NULL);
#line 29 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	_tmp0_ = horizontal;
#line 29 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	self->priv->horizontal = _tmp0_;
#line 30 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	clutter_actor_set_clip_to_allocation ((ClutterActor*) self, TRUE);
#line 31 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	self->priv->children_visible = TRUE;
#line 32 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	self->duration = (guint) 250;
#line 34 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	_tmp1_ = horizontal;
#line 34 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	if (_tmp1_) {
#line 133 "revealer.c"
		ClutterBinLayout* _tmp2_;
		ClutterBinLayout* layout;
		ClutterBinLayout* _tmp3_;
#line 35 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		_tmp2_ = (ClutterBinLayout*) clutter_bin_layout_new (CLUTTER_BIN_ALIGNMENT_FILL, CLUTTER_BIN_ALIGNMENT_FIXED);
#line 35 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		g_object_ref_sink (_tmp2_);
#line 35 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		layout = _tmp2_;
#line 37 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		_tmp3_ = layout;
#line 37 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		clutter_actor_set_layout_manager ((ClutterActor*) self, (ClutterLayoutManager*) _tmp3_);
#line 34 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		_g_object_unref0 (layout);
#line 149 "revealer.c"
	} else {
		ClutterBinLayout* _tmp4_;
		ClutterBinLayout* layout;
		ClutterBinLayout* _tmp5_;
#line 39 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		_tmp4_ = (ClutterBinLayout*) clutter_bin_layout_new (CLUTTER_BIN_ALIGNMENT_FIXED, CLUTTER_BIN_ALIGNMENT_FILL);
#line 39 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		g_object_ref_sink (_tmp4_);
#line 39 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		layout = _tmp4_;
#line 41 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		_tmp5_ = layout;
#line 41 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		clutter_actor_set_layout_manager ((ClutterActor*) self, (ClutterLayoutManager*) _tmp5_);
#line 34 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		_g_object_unref0 (layout);
#line 166 "revealer.c"
	}
#line 44 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	g_signal_connect_object ((ClutterContainer*) self, "actor-added", (GCallback) ___lambda3__clutter_container_actor_added, self, 0);
#line 28 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	return self;
#line 172 "revealer.c"
}


BoxesRevealer* boxes_revealer_new (gboolean horizontal) {
#line 28 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	return boxes_revealer_construct (BOXES_TYPE_REVEALER, horizontal);
#line 179 "revealer.c"
}


void boxes_revealer_reveal (BoxesRevealer* self) {
	gboolean _tmp0_;
	gfloat max;
	GList* _tmp2_ = NULL;
	gboolean _tmp26_;
#line 52 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	g_return_if_fail (self != NULL);
#line 53 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	_tmp0_ = self->resize;
#line 53 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	if (_tmp0_) {
#line 194 "revealer.c"
		gboolean _tmp1_;
#line 54 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		_tmp1_ = self->priv->horizontal;
#line 54 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		if (_tmp1_) {
#line 55 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
			clutter_actor_set_height ((ClutterActor*) self, 0.0f);
#line 202 "revealer.c"
		} else {
#line 57 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
			clutter_actor_set_width ((ClutterActor*) self, 0.0f);
#line 206 "revealer.c"
		}
	}
#line 60 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	max = 0.0f;
#line 61 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	_tmp2_ = clutter_actor_get_children ((ClutterActor*) self);
#line 213 "revealer.c"
	{
		GList* child_collection = NULL;
		GList* child_it = NULL;
#line 61 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		child_collection = _tmp2_;
#line 61 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		for (child_it = child_collection; child_it != NULL; child_it = child_it->next) {
#line 221 "revealer.c"
			ClutterActor* child = NULL;
#line 61 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
			child = (ClutterActor*) child_it->data;
#line 225 "revealer.c"
			{
				gboolean _tmp3_;
				gboolean _tmp5_;
#line 62 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
				_tmp3_ = self->priv->children_visible;
#line 62 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
				if (!_tmp3_) {
#line 233 "revealer.c"
					ClutterActor* _tmp4_;
#line 63 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
					_tmp4_ = child;
#line 63 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
					clutter_actor_show (_tmp4_);
#line 239 "revealer.c"
				}
#line 64 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
				_tmp5_ = self->priv->horizontal;
#line 64 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
				if (_tmp5_) {
#line 245 "revealer.c"
					gboolean _tmp6_;
					ClutterActor* _tmp14_;
					guint _tmp15_;
#line 65 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
					_tmp6_ = self->priv->children_visible;
#line 65 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
					if (!_tmp6_) {
#line 253 "revealer.c"
						gfloat height = 0.0F;
						ClutterActor* _tmp7_;
						gfloat _tmp8_ = 0.0F;
						ClutterActor* _tmp9_;
						gfloat _tmp10_;
						gfloat _tmp11_;
						gfloat _tmp12_;
						gfloat _tmp13_ = 0.0F;
#line 67 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
						_tmp7_ = child;
#line 67 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
						clutter_actor_get_preferred_height (_tmp7_, (gfloat) (-1), NULL, &_tmp8_);
#line 67 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
						height = _tmp8_;
#line 68 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
						_tmp9_ = child;
#line 68 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
						_tmp10_ = height;
#line 68 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
						clutter_actor_set_y (_tmp9_, -_tmp10_);
#line 69 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
						_tmp11_ = max;
#line 69 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
						_tmp12_ = height;
#line 69 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
						_tmp13_ = MAX (_tmp11_, _tmp12_);
#line 69 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
						max = _tmp13_;
#line 282 "revealer.c"
					}
#line 71 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
					_tmp14_ = child;
#line 71 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
					_tmp15_ = self->duration;
#line 71 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
					clutter_actor_animate (_tmp14_, (gulong) CLUTTER_EASE_IN_QUAD, _tmp15_, "y", 0.f, NULL);
#line 290 "revealer.c"
				} else {
					gboolean _tmp16_;
					ClutterActor* _tmp24_;
					guint _tmp25_;
#line 73 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
					_tmp16_ = self->priv->children_visible;
#line 73 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
					if (!_tmp16_) {
#line 299 "revealer.c"
						gfloat width = 0.0F;
						ClutterActor* _tmp17_;
						gfloat _tmp18_ = 0.0F;
						ClutterActor* _tmp19_;
						gfloat _tmp20_;
						gfloat _tmp21_;
						gfloat _tmp22_;
						gfloat _tmp23_ = 0.0F;
#line 75 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
						_tmp17_ = child;
#line 75 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
						clutter_actor_get_preferred_width (_tmp17_, (gfloat) (-1), NULL, &_tmp18_);
#line 75 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
						width = _tmp18_;
#line 76 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
						_tmp19_ = child;
#line 76 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
						_tmp20_ = width;
#line 76 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
						clutter_actor_set_x (_tmp19_, -_tmp20_);
#line 77 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
						_tmp21_ = max;
#line 77 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
						_tmp22_ = width;
#line 77 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
						_tmp23_ = MAX (_tmp21_, _tmp22_);
#line 77 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
						max = _tmp23_;
#line 328 "revealer.c"
					}
#line 79 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
					_tmp24_ = child;
#line 79 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
					_tmp25_ = self->duration;
#line 79 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
					clutter_actor_animate (_tmp24_, (gulong) CLUTTER_EASE_IN_QUAD, _tmp25_, "x", 0.f, NULL);
#line 336 "revealer.c"
				}
			}
		}
#line 61 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		_g_list_free0 (child_collection);
#line 342 "revealer.c"
	}
#line 83 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	_tmp26_ = self->resize;
#line 83 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	if (_tmp26_) {
#line 348 "revealer.c"
		gboolean _tmp27_;
#line 84 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		_tmp27_ = self->priv->horizontal;
#line 84 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		if (_tmp27_) {
#line 354 "revealer.c"
			guint _tmp28_;
			gfloat _tmp29_;
#line 85 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
			_tmp28_ = self->duration;
#line 85 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
			_tmp29_ = max;
#line 85 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
			clutter_actor_animate ((ClutterActor*) self, (gulong) CLUTTER_EASE_IN_QUAD, _tmp28_, "height", _tmp29_, NULL);
#line 363 "revealer.c"
		} else {
			guint _tmp30_;
			gfloat _tmp31_;
#line 87 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
			_tmp30_ = self->duration;
#line 87 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
			_tmp31_ = max;
#line 87 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
			clutter_actor_animate ((ClutterActor*) self, (gulong) CLUTTER_EASE_IN_QUAD, _tmp30_, "width", _tmp31_, NULL);
#line 373 "revealer.c"
		}
	}
#line 90 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	self->priv->children_visible = TRUE;
#line 378 "revealer.c"
}


static gpointer _g_object_ref0 (gpointer self) {
#line 93 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	return self ? g_object_ref (self) : NULL;
#line 385 "revealer.c"
}


static Block36Data* block36_data_ref (Block36Data* _data36_) {
#line 93 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	g_atomic_int_inc (&_data36_->_ref_count_);
#line 93 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	return _data36_;
#line 394 "revealer.c"
}


static void block36_data_unref (void * _userdata_) {
	Block36Data* _data36_;
	_data36_ = (Block36Data*) _userdata_;
#line 93 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	if (g_atomic_int_dec_and_test (&_data36_->_ref_count_)) {
#line 403 "revealer.c"
		BoxesRevealer * self;
#line 93 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		self = _data36_->self;
#line 93 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		_g_object_unref0 (_data36_->child);
#line 93 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		_g_object_unref0 (self);
#line 93 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		g_slice_free (Block36Data, _data36_);
#line 413 "revealer.c"
	}
}


static void ___lambda4_ (Block36Data* _data36_) {
	BoxesRevealer * self;
	ClutterActor* _tmp0_;
#line 98 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	self = _data36_->self;
#line 99 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	_tmp0_ = _data36_->child;
#line 99 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	clutter_actor_hide (_tmp0_);
#line 100 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	self->priv->children_visible = FALSE;
#line 429 "revealer.c"
}


static void ____lambda4__clutter_animation_completed (ClutterAnimation* _sender, gpointer self) {
#line 98 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	___lambda4_ (self);
#line 436 "revealer.c"
}


static void ___lambda5_ (Block36Data* _data36_) {
	BoxesRevealer * self;
	ClutterActor* _tmp0_;
#line 106 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	self = _data36_->self;
#line 107 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	_tmp0_ = _data36_->child;
#line 107 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	clutter_actor_hide (_tmp0_);
#line 108 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	self->priv->children_visible = FALSE;
#line 451 "revealer.c"
}


static void ____lambda5__clutter_animation_completed (ClutterAnimation* _sender, gpointer self) {
#line 106 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	___lambda5_ (self);
#line 458 "revealer.c"
}


static void boxes_revealer_unreveal_child (BoxesRevealer* self, ClutterActor* child) {
	Block36Data* _data36_;
	ClutterActor* _tmp0_;
	ClutterActor* _tmp1_;
	gboolean _tmp2_;
	gboolean _tmp19_;
#line 93 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	g_return_if_fail (self != NULL);
#line 93 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	g_return_if_fail (child != NULL);
#line 93 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	_data36_ = g_slice_new0 (Block36Data);
#line 93 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	_data36_->_ref_count_ = 1;
#line 93 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	_data36_->self = g_object_ref (self);
#line 93 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	_tmp0_ = child;
#line 93 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	_tmp1_ = _g_object_ref0 (_tmp0_);
#line 93 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	_g_object_unref0 (_data36_->child);
#line 93 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	_data36_->child = _tmp1_;
#line 94 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	_tmp2_ = self->priv->horizontal;
#line 94 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	if (_tmp2_) {
#line 490 "revealer.c"
		gfloat height = 0.0F;
		ClutterActor* _tmp3_;
		gfloat _tmp4_ = 0.0F;
		ClutterActor* _tmp5_;
		guint _tmp6_;
		gfloat _tmp7_;
		ClutterAnimation* _tmp8_ = NULL;
		ClutterAnimation* _tmp9_;
		ClutterAnimation* anim;
		ClutterAnimation* _tmp10_;
#line 96 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		_tmp3_ = _data36_->child;
#line 96 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		clutter_actor_get_preferred_height (_tmp3_, (gfloat) (-1), NULL, &_tmp4_);
#line 96 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		height = _tmp4_;
#line 97 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		_tmp5_ = _data36_->child;
#line 97 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		_tmp6_ = self->duration;
#line 97 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		_tmp7_ = height;
#line 97 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		_tmp8_ = clutter_actor_animate (_tmp5_, (gulong) CLUTTER_EASE_OUT_QUAD, _tmp6_, "y", -_tmp7_, NULL);
#line 97 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		_tmp9_ = _g_object_ref0 (_tmp8_);
#line 97 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		anim = _tmp9_;
#line 98 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		_tmp10_ = anim;
#line 98 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		g_signal_connect_data (_tmp10_, "completed", (GCallback) ____lambda4__clutter_animation_completed, block36_data_ref (_data36_), (GClosureNotify) block36_data_unref, 0);
#line 94 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		_g_object_unref0 (anim);
#line 525 "revealer.c"
	} else {
		gfloat width = 0.0F;
		ClutterActor* _tmp11_;
		gfloat _tmp12_ = 0.0F;
		ClutterActor* _tmp13_;
		guint _tmp14_;
		gfloat _tmp15_;
		ClutterAnimation* _tmp16_ = NULL;
		ClutterAnimation* _tmp17_;
		ClutterAnimation* anim;
		ClutterAnimation* _tmp18_;
#line 104 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		_tmp11_ = _data36_->child;
#line 104 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		clutter_actor_get_preferred_width (_tmp11_, (gfloat) (-1), NULL, &_tmp12_);
#line 104 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		width = _tmp12_;
#line 105 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		_tmp13_ = _data36_->child;
#line 105 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		_tmp14_ = self->duration;
#line 105 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		_tmp15_ = width;
#line 105 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		_tmp16_ = clutter_actor_animate (_tmp13_, (gulong) CLUTTER_EASE_OUT_QUAD, _tmp14_, "x", -_tmp15_, NULL);
#line 105 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		_tmp17_ = _g_object_ref0 (_tmp16_);
#line 105 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		anim = _tmp17_;
#line 106 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		_tmp18_ = anim;
#line 106 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		g_signal_connect_data (_tmp18_, "completed", (GCallback) ____lambda5__clutter_animation_completed, block36_data_ref (_data36_), (GClosureNotify) block36_data_unref, 0);
#line 94 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		_g_object_unref0 (anim);
#line 561 "revealer.c"
	}
#line 112 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	_tmp19_ = self->resize;
#line 112 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	if (_tmp19_) {
#line 567 "revealer.c"
		gboolean _tmp20_;
#line 113 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		_tmp20_ = self->priv->horizontal;
#line 113 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		if (_tmp20_) {
#line 573 "revealer.c"
			guint _tmp21_;
#line 114 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
			_tmp21_ = self->duration;
#line 114 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
			clutter_actor_animate ((ClutterActor*) self, (gulong) CLUTTER_EASE_OUT_QUAD, _tmp21_, "height", 0.0f, NULL);
#line 579 "revealer.c"
		} else {
			guint _tmp22_;
#line 116 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
			_tmp22_ = self->duration;
#line 116 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
			clutter_actor_animate ((ClutterActor*) self, (gulong) CLUTTER_EASE_OUT_QUAD, _tmp22_, "width", 0.0f, NULL);
#line 586 "revealer.c"
		}
	}
#line 93 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	block36_data_unref (_data36_);
#line 93 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	_data36_ = NULL;
#line 593 "revealer.c"
}


void boxes_revealer_unreveal (BoxesRevealer* self) {
	gboolean _tmp0_;
	gboolean found_child;
	GList* _tmp1_ = NULL;
	gboolean _tmp3_;
#line 120 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	g_return_if_fail (self != NULL);
#line 121 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	_tmp0_ = self->priv->children_visible;
#line 121 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	if (!_tmp0_) {
#line 122 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		return;
#line 610 "revealer.c"
	}
#line 124 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	found_child = FALSE;
#line 125 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	_tmp1_ = clutter_actor_get_children ((ClutterActor*) self);
#line 616 "revealer.c"
	{
		GList* child_collection = NULL;
		GList* child_it = NULL;
#line 125 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		child_collection = _tmp1_;
#line 125 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		for (child_it = child_collection; child_it != NULL; child_it = child_it->next) {
#line 624 "revealer.c"
			ClutterActor* child = NULL;
#line 125 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
			child = (ClutterActor*) child_it->data;
#line 628 "revealer.c"
			{
				ClutterActor* _tmp2_;
#line 126 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
				found_child = TRUE;
#line 127 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
				_tmp2_ = child;
#line 127 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
				boxes_revealer_unreveal_child (self, _tmp2_);
#line 637 "revealer.c"
			}
		}
#line 125 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		_g_list_free0 (child_collection);
#line 642 "revealer.c"
	}
#line 129 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	_tmp3_ = found_child;
#line 129 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	if (!_tmp3_) {
#line 130 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		self->priv->children_visible = FALSE;
#line 650 "revealer.c"
	}
}


gboolean boxes_revealer_get_revealed (BoxesRevealer* self) {
	gboolean result;
	gboolean _tmp0_;
#line 12 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 13 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	_tmp0_ = self->priv->_revealed;
#line 13 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	result = _tmp0_;
#line 13 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	return result;
#line 666 "revealer.c"
}


void boxes_revealer_set_revealed (BoxesRevealer* self, gboolean value) {
	gboolean _tmp0_;
	gboolean _tmp1_;
	gboolean _tmp2_;
	gboolean _tmp3_;
#line 15 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	g_return_if_fail (self != NULL);
#line 16 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	_tmp0_ = self->priv->_revealed;
#line 16 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	_tmp1_ = value;
#line 16 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	if (_tmp0_ == _tmp1_) {
#line 17 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		return;
#line 685 "revealer.c"
	}
#line 19 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	_tmp2_ = value;
#line 19 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	self->priv->_revealed = _tmp2_;
#line 20 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	_tmp3_ = value;
#line 20 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	if (_tmp3_) {
#line 21 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		boxes_revealer_reveal (self);
#line 697 "revealer.c"
	} else {
#line 23 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		boxes_revealer_unreveal (self);
#line 701 "revealer.c"
	}
#line 15 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	g_object_notify ((GObject *) self, "revealed");
#line 705 "revealer.c"
}


static void boxes_revealer_class_init (BoxesRevealerClass * klass) {
#line 4 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	boxes_revealer_parent_class = g_type_class_peek_parent (klass);
#line 4 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	g_type_class_add_private (klass, sizeof (BoxesRevealerPrivate));
#line 4 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	G_OBJECT_CLASS (klass)->get_property = _vala_boxes_revealer_get_property;
#line 4 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	G_OBJECT_CLASS (klass)->set_property = _vala_boxes_revealer_set_property;
#line 4 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	G_OBJECT_CLASS (klass)->finalize = boxes_revealer_finalize;
#line 4 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), BOXES_REVEALER_REVEALED, g_param_spec_boolean ("revealed", "revealed", "revealed", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 722 "revealer.c"
}


static void boxes_revealer_instance_init (BoxesRevealer * self) {
#line 4 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	self->priv = BOXES_REVEALER_GET_PRIVATE (self);
#line 729 "revealer.c"
}


static void boxes_revealer_finalize (GObject* obj) {
	BoxesRevealer * self;
#line 4 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, BOXES_TYPE_REVEALER, BoxesRevealer);
#line 4 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	G_OBJECT_CLASS (boxes_revealer_parent_class)->finalize (obj);
#line 739 "revealer.c"
}


GType boxes_revealer_get_type (void) {
	static volatile gsize boxes_revealer_type_id__volatile = 0;
	if (g_once_init_enter (&boxes_revealer_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (BoxesRevealerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) boxes_revealer_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (BoxesRevealer), 0, (GInstanceInitFunc) boxes_revealer_instance_init, NULL };
		GType boxes_revealer_type_id;
		boxes_revealer_type_id = g_type_register_static (clutter_actor_get_type (), "BoxesRevealer", &g_define_type_info, 0);
		g_once_init_leave (&boxes_revealer_type_id__volatile, boxes_revealer_type_id);
	}
	return boxes_revealer_type_id__volatile;
}


static void _vala_boxes_revealer_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	BoxesRevealer * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, BOXES_TYPE_REVEALER, BoxesRevealer);
#line 4 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	switch (property_id) {
#line 4 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		case BOXES_REVEALER_REVEALED:
#line 4 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		g_value_set_boolean (value, boxes_revealer_get_revealed (self));
#line 4 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		break;
#line 766 "revealer.c"
		default:
#line 4 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
#line 4 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		break;
#line 772 "revealer.c"
	}
}


static void _vala_boxes_revealer_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
	BoxesRevealer * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, BOXES_TYPE_REVEALER, BoxesRevealer);
#line 4 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
	switch (property_id) {
#line 4 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		case BOXES_REVEALER_REVEALED:
#line 4 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		boxes_revealer_set_revealed (self, g_value_get_boolean (value));
#line 4 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		break;
#line 788 "revealer.c"
		default:
#line 4 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
#line 4 "/extra-data/checkout/gnome/gnome-boxes/src/revealer.vala"
		break;
#line 794 "revealer.c"
	}
}



