/* user-view.c generated by valac 0.16.0, the Vala compiler * generated from user-view.vala, do not modify */ /* * Copyright (C) 2010 Neil Jagdish Patel * * This library is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License * version 3.0 as published by the Free Software Foundation. * * This library 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 Lesser General Public License version 3.0 for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library. If not, see * . * * Authored by Ken VanDine */ #include #include #include "gwibber-gtk.h" #include #include #include "gwibber.h" #include #include #include #include #include #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) #define __g_list_free__g_object_unref0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__g_object_unref0_ (var), NULL))) #define __g_slist_free__g_object_unref0_0(var) ((var == NULL) ? NULL : (var = (_g_slist_free__g_object_unref0_ (var), NULL))) typedef struct _Block8Data Block8Data; #define _g_free0(var) (var = (g_free (var), NULL)) struct _GwibberGtkUserViewPrivate { GtkAdjustment* adjustment; GtkVScrollbar* scrollbar; GwibberGtkTileBox* view_box; gint _position; gint tiles_visible; guint refresh_id; gboolean _showing; GList* streams_list; GSList* tiles; gint last_width; gint last_height; }; struct _Block8Data { int _ref_count_; GwibberGtkUserView * self; guint n_rows; }; static gpointer gwibber_gtk_user_view_parent_class = NULL; #define GWIBBER_GTK_USER_VIEW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GWIBBER_GTK_TYPE_USER_VIEW, GwibberGtkUserViewPrivate)) enum { GWIBBER_GTK_USER_VIEW_DUMMY_PROPERTY, GWIBBER_GTK_USER_VIEW_POSITION, GWIBBER_GTK_USER_VIEW_SHOWING }; static void _g_object_unref0_ (gpointer var); static void _g_list_free__g_object_unref0_ (GList* self); static void _g_slist_free__g_object_unref0_ (GSList* self); static void gwibber_gtk_user_view_real_get_preferred_height_for_width (GtkWidget* base, gint width, gint* mh, gint* nh); static void gwibber_gtk_user_view_real_get_preferred_height (GtkWidget* base, gint* mh, gint* nh); static void gwibber_gtk_user_view_refresh (GwibberGtkUserView* self); static gboolean ___lambda58_ (GwibberGtkUserView* self); static void gwibber_gtk_user_view_do_refresh (GwibberGtkUserView* self); static gboolean ____lambda58__gsource_func (gpointer self); static Block8Data* block8_data_ref (Block8Data* _data8_); static void block8_data_unref (void * _userdata_); static void gwibber_gtk_user_view_fill_up_remaining_space (GwibberGtkUserView* self); static gboolean __lambda64_ (Block8Data* _data8_); static gboolean ___lambda64__gsource_func (gpointer self); static void ___lambda62_ (GwibberGtkUserView* self, const gchar* id, const gchar* name); static void ____lambda62__gwibber_gtk_user_view_tile_show_transient (GwibberGtkUserViewTile* _sender, const gchar* id, const gchar* name, gpointer self); static gboolean __lambda63_ (GwibberGtkUserView* self); static gboolean ___lambda63__gsource_func (gpointer self); static void gwibber_gtk_user_view_real_show_transient (GwibberGtkUserView* self, const gchar* id, const gchar* name); static void g_cclosure_user_marshal_VOID__STRING_STRING (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data); static GObject * gwibber_gtk_user_view_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties); static void _gwibber_gtk_user_view___lambda65_ (GwibberGtkUserView* self); static void __gwibber_gtk_user_view___lambda65__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self); static gboolean _gwibber_gtk_user_view___lambda66_ (GwibberGtkUserView* self, GtkWidget* source, GdkEventScroll* event); static gboolean __gwibber_gtk_user_view___lambda66__gtk_widget_scroll_event (GtkWidget* _sender, GdkEventScroll* event, gpointer self); static gboolean _gwibber_gtk_user_view___lambda67_ (GwibberGtkUserView* self, GtkWidget* source, GdkEventKey* event); static gboolean __gwibber_gtk_user_view___lambda67__gtk_widget_key_press_event (GtkWidget* _sender, GdkEventKey* event, gpointer self); static void _gwibber_gtk_user_view______lambda68_ (GwibberGtkUserView* self, const gchar* id, const gchar* name); static void __gwibber_gtk_user_view______lambda68__gwibber_gtk_user_view_tile_show_transient (GwibberGtkUserViewTile* _sender, const gchar* id, const gchar* name, gpointer self); static void _gwibber_gtk_user_view___lambda69_ (GwibberGtkUserView* self, GtkAllocation* a); static void __gwibber_gtk_user_view___lambda69__gtk_widget_size_allocate (GtkWidget* _sender, GtkAllocation* allocation, gpointer self); static void _gwibber_gtk_user_view___lambda70_ (GwibberGtkUserView* self, const gchar* id); static void __gwibber_gtk_user_view___lambda70__gwibber_streams_created (GwibberStreams* _sender, const gchar* id, gpointer self); static void _gwibber_gtk_user_view___lambda71_ (GwibberGtkUserView* self, const gchar* id); static void __gwibber_gtk_user_view___lambda71__gwibber_streams_updated (GwibberStreams* _sender, const gchar* id, gpointer self); static void _gwibber_gtk_user_view___lambda72_ (GwibberGtkUserView* self, const gchar* id); static void __gwibber_gtk_user_view___lambda72__gwibber_streams_deleted (GwibberStreams* _sender, const gchar* id, gpointer self); static void gwibber_gtk_user_view_finalize (GObject* obj); static void _vala_gwibber_gtk_user_view_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec); static void _vala_gwibber_gtk_user_view_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec); static void _g_object_unref0_ (gpointer var) { (var == NULL) ? NULL : (var = (g_object_unref (var), NULL)); } static void _g_list_free__g_object_unref0_ (GList* self) { g_list_foreach (self, (GFunc) _g_object_unref0_, NULL); g_list_free (self); } static void _g_slist_free__g_object_unref0_ (GSList* self) { g_slist_foreach (self, (GFunc) _g_object_unref0_, NULL); g_slist_free (self); } GwibberGtkUserView* gwibber_gtk_user_view_construct (GType object_type) { GwibberGtkUserView * self = NULL; self = (GwibberGtkUserView*) g_object_new (object_type, "homogeneous", FALSE, "spacing", 0, NULL); return self; } GwibberGtkUserView* gwibber_gtk_user_view_new (void) { return gwibber_gtk_user_view_construct (GWIBBER_GTK_TYPE_USER_VIEW); } static void gwibber_gtk_user_view_real_get_preferred_height_for_width (GtkWidget* base, gint width, gint* mh, gint* nh) { GwibberGtkUserView * self; gint _vala_mh = 0; gint _vala_nh = 0; gint _tmp0_; self = (GwibberGtkUserView*) base; _tmp0_ = self->priv->last_height; _vala_nh = _tmp0_; _vala_mh = _vala_nh; if (mh) { *mh = _vala_mh; } if (nh) { *nh = _vala_nh; } } static void gwibber_gtk_user_view_real_get_preferred_height (GtkWidget* base, gint* mh, gint* nh) { GwibberGtkUserView * self; gint _vala_mh = 0; gint _vala_nh = 0; gint _tmp0_; self = (GwibberGtkUserView*) base; _tmp0_ = self->priv->last_height; _vala_nh = _tmp0_; _vala_mh = _vala_nh; if (mh) { *mh = _vala_mh; } if (nh) { *nh = _vala_nh; } } static gboolean ___lambda58_ (GwibberGtkUserView* self) { gboolean result = FALSE; gwibber_gtk_user_view_do_refresh (self); self->priv->refresh_id = (guint) 0; result = FALSE; return result; } static gboolean ____lambda58__gsource_func (gpointer self) { gboolean result; result = ___lambda58_ (self); return result; } static void gwibber_gtk_user_view_refresh (GwibberGtkUserView* self) { guint _tmp0_; g_return_if_fail (self != NULL); _tmp0_ = self->priv->refresh_id; if (_tmp0_ == ((guint) 0)) { guint _tmp1_ = 0U; _tmp1_ = g_idle_add_full (G_PRIORITY_DEFAULT_IDLE, ____lambda58__gsource_func, g_object_ref (self), g_object_unref); self->priv->refresh_id = _tmp1_; } } static Block8Data* block8_data_ref (Block8Data* _data8_) { g_atomic_int_inc (&_data8_->_ref_count_); return _data8_; } static void block8_data_unref (void * _userdata_) { Block8Data* _data8_; _data8_ = (Block8Data*) _userdata_; if (g_atomic_int_dec_and_test (&_data8_->_ref_count_)) { GwibberGtkUserView * self; self = _data8_->self; _g_object_unref0 (self); g_slice_free (Block8Data, _data8_); } } static gpointer _g_object_ref0 (gpointer self) { return self ? g_object_ref (self) : NULL; } static gboolean __lambda64_ (Block8Data* _data8_) { GwibberGtkUserView * self; gboolean result = FALSE; GtkAdjustment* _tmp0_; guint _tmp1_; self = _data8_->self; gtk_widget_queue_draw ((GtkWidget*) self); _tmp0_ = self->priv->adjustment; _tmp1_ = _data8_->n_rows; gtk_adjustment_set_upper (_tmp0_, (gdouble) _tmp1_); result = FALSE; return result; } static gboolean ___lambda64__gsource_func (gpointer self) { gboolean result; result = __lambda64_ (self); return result; } static void gwibber_gtk_user_view_do_refresh (GwibberGtkUserView* self) { Block8Data* _data8_; gint i; GwibberStreams* _tmp0_; GList* _tmp1_ = NULL; GList* _tmp2_; guint _tmp3_ = 0U; GSList* _tmp4_; g_return_if_fail (self != NULL); _data8_ = g_slice_new0 (Block8Data); _data8_->_ref_count_ = 1; _data8_->self = g_object_ref (self); i = 0; gwibber_gtk_user_view_fill_up_remaining_space (self); _tmp0_ = self->streams; _tmp1_ = gwibber_streams_list (_tmp0_); __g_list_free__g_object_unref0_0 (self->priv->streams_list); self->priv->streams_list = _tmp1_; _tmp2_ = self->priv->streams_list; _tmp3_ = g_list_length (_tmp2_); _data8_->n_rows = _tmp3_; _tmp4_ = self->priv->tiles; { GSList* tile_collection = NULL; GSList* tile_it = NULL; tile_collection = _tmp4_; for (tile_it = tile_collection; tile_it != NULL; tile_it = tile_it->next) { GwibberGtkUserViewTile* _tmp5_; GwibberGtkUserViewTile* tile = NULL; _tmp5_ = _g_object_ref0 ((GwibberGtkUserViewTile*) tile_it->data); tile = _tmp5_; { gboolean _tmp6_ = FALSE; GList* _tmp7_; gint _tmp8_; gint _tmp9_; gint _tmp10_; gconstpointer _tmp11_ = NULL; gboolean _tmp16_; gint _tmp28_; _tmp7_ = self->priv->streams_list; _tmp8_ = gwibber_gtk_user_view_get_position (self); _tmp9_ = _tmp8_; _tmp10_ = i; _tmp11_ = g_list_nth_data (_tmp7_, (guint) (_tmp9_ + _tmp10_)); if (((GeeHashMap*) _tmp11_) != NULL) { gint _tmp12_; gint _tmp13_; gint _tmp14_; guint _tmp15_; _tmp12_ = gwibber_gtk_user_view_get_position (self); _tmp13_ = _tmp12_; _tmp14_ = i; _tmp15_ = _data8_->n_rows; _tmp6_ = (_tmp13_ + _tmp14_) < ((gint) _tmp15_); } else { _tmp6_ = FALSE; } _tmp16_ = _tmp6_; if (_tmp16_) { GwibberGtkUserViewTile* _tmp17_; GList* _tmp18_; gint _tmp19_; gint _tmp20_; gint _tmp21_; gconstpointer _tmp22_ = NULL; gint _tmp23_; GwibberGtkUserViewTile* _tmp24_; GwibberGtkUserViewTile* _tmp25_; _tmp17_ = tile; _tmp18_ = self->priv->streams_list; _tmp19_ = gwibber_gtk_user_view_get_position (self); _tmp20_ = _tmp19_; _tmp21_ = i; _tmp22_ = g_list_nth_data (_tmp18_, (guint) (_tmp20_ + _tmp21_)); gwibber_gtk_user_view_tile_set_details (_tmp17_, (GeeHashMap*) _tmp22_); _tmp23_ = i; self->priv->tiles_visible = _tmp23_ + 1; _tmp24_ = tile; gtk_widget_set_no_show_all ((GtkWidget*) _tmp24_, FALSE); _tmp25_ = tile; gtk_widget_show_all ((GtkWidget*) _tmp25_); } else { GwibberGtkUserViewTile* _tmp26_; GwibberGtkUserViewTile* _tmp27_; _tmp26_ = tile; gtk_widget_set_no_show_all ((GtkWidget*) _tmp26_, TRUE); _tmp27_ = tile; gwibber_gtk_user_view_tile_reset (_tmp27_); } _tmp28_ = i; i = _tmp28_ + 1; _g_object_unref0 (tile); } } } g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) 10, ___lambda64__gsource_func, block8_data_ref (_data8_), block8_data_unref); block8_data_unref (_data8_); _data8_ = NULL; } static void ___lambda62_ (GwibberGtkUserView* self, const gchar* id, const gchar* name) { const gchar* _tmp0_; const gchar* _tmp1_; g_return_if_fail (id != NULL); g_return_if_fail (name != NULL); _tmp0_ = id; _tmp1_ = name; g_signal_emit_by_name (self, "show-transient", _tmp0_, _tmp1_); } static void ____lambda62__gwibber_gtk_user_view_tile_show_transient (GwibberGtkUserViewTile* _sender, const gchar* id, const gchar* name, gpointer self) { ___lambda62_ (self, id, name); } static gboolean __lambda63_ (GwibberGtkUserView* self) { gboolean result = FALSE; gtk_widget_queue_draw ((GtkWidget*) self); result = FALSE; return result; } static gboolean ___lambda63__gsource_func (gpointer self) { gboolean result; result = __lambda63_ (self); return result; } static void gwibber_gtk_user_view_fill_up_remaining_space (GwibberGtkUserView* self) { GtkAllocation alloc = {0}; gint overall_height; gboolean one_was_hidden; GList* _tmp0_; guint _tmp1_ = 0U; guint n_rows; GwibberGtkTileBox* _tmp2_; GtkAllocation _tmp3_ = {0}; GSList* _tmp4_; gboolean _tmp13_ = FALSE; gboolean _tmp14_ = FALSE; GtkAllocation _tmp15_; gint _tmp16_; gint _tmp17_; gboolean _tmp19_; gboolean _tmp23_; g_return_if_fail (self != NULL); overall_height = 0; one_was_hidden = FALSE; _tmp0_ = self->priv->streams_list; _tmp1_ = g_list_length (_tmp0_); n_rows = _tmp1_; _tmp2_ = self->priv->view_box; gtk_widget_get_allocation ((GtkWidget*) _tmp2_, &_tmp3_); alloc = _tmp3_; _tmp4_ = self->priv->tiles; { GSList* tile_collection = NULL; GSList* tile_it = NULL; tile_collection = _tmp4_; for (tile_it = tile_collection; tile_it != NULL; tile_it = tile_it->next) { GwibberGtkUserViewTile* _tmp5_; GwibberGtkUserViewTile* tile = NULL; _tmp5_ = _g_object_ref0 ((GwibberGtkUserViewTile*) tile_it->data); tile = _tmp5_; { GtkAllocation a = {0}; GwibberGtkUserViewTile* _tmp6_; gboolean _tmp7_ = FALSE; _tmp6_ = tile; _tmp7_ = gtk_widget_get_visible ((GtkWidget*) _tmp6_); if (_tmp7_) { GwibberGtkUserViewTile* _tmp8_; GtkAllocation _tmp9_ = {0}; gint _tmp10_; GtkAllocation _tmp11_; gint _tmp12_; _tmp8_ = tile; gtk_widget_get_allocation ((GtkWidget*) _tmp8_, &_tmp9_); a = _tmp9_; _tmp10_ = overall_height; _tmp11_ = a; _tmp12_ = _tmp11_.height; overall_height = _tmp10_ + _tmp12_; } else { one_was_hidden = TRUE; } _g_object_unref0 (tile); } } } _tmp15_ = alloc; _tmp16_ = _tmp15_.height; _tmp17_ = overall_height; if (_tmp16_ > _tmp17_) { gboolean _tmp18_; _tmp18_ = one_was_hidden; _tmp14_ = !_tmp18_; } else { _tmp14_ = FALSE; } _tmp19_ = _tmp14_; if (_tmp19_) { GSList* _tmp20_; guint _tmp21_ = 0U; guint _tmp22_; _tmp20_ = self->priv->tiles; _tmp21_ = g_slist_length (_tmp20_); _tmp22_ = n_rows; _tmp13_ = ((gint) _tmp21_) < ((gint) _tmp22_); } else { _tmp13_ = FALSE; } _tmp23_ = _tmp13_; if (_tmp23_) { GwibberStreams* _tmp24_; GwibberGtkUserViewTile* _tmp25_; GwibberGtkUserViewTile* _tmp26_; GwibberGtkUserViewTile* tile; GwibberGtkUserViewTile* _tmp27_; GwibberGtkUserViewTile* _tmp28_; GwibberGtkTileBox* _tmp29_; GwibberGtkUserViewTile* _tmp30_; GwibberGtkUserViewTile* _tmp31_; GwibberGtkUserViewTile* _tmp32_; _tmp24_ = self->streams; _tmp25_ = gwibber_gtk_user_view_tile_new (_tmp24_); _tmp26_ = g_object_ref_sink (_tmp25_); tile = _tmp26_; _tmp27_ = tile; g_signal_connect_object (_tmp27_, "show-transient", (GCallback) ____lambda62__gwibber_gtk_user_view_tile_show_transient, self, 0); _tmp28_ = tile; gtk_widget_show ((GtkWidget*) _tmp28_); _tmp29_ = self->priv->view_box; _tmp30_ = tile; gtk_box_pack_start ((GtkBox*) _tmp29_, (GtkWidget*) _tmp30_, FALSE, FALSE, (guint) 0); _tmp31_ = tile; _tmp32_ = _g_object_ref0 (_tmp31_); self->priv->tiles = g_slist_append (self->priv->tiles, _tmp32_); gwibber_gtk_user_view_do_refresh (self); _g_object_unref0 (tile); } g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) 0, ___lambda63__gsource_func, g_object_ref (self), g_object_unref); } gint gwibber_gtk_user_view_get_position (GwibberGtkUserView* self) { gint result; gint _tmp0_; g_return_val_if_fail (self != NULL, 0); _tmp0_ = self->priv->_position; result = _tmp0_; return result; } void gwibber_gtk_user_view_set_position (GwibberGtkUserView* self, gint value) { gint _tmp0_; gint _tmp1_; g_return_if_fail (self != NULL); _tmp0_ = self->priv->_position; _tmp1_ = value; if (_tmp0_ != _tmp1_) { gint _tmp2_; gint _tmp3_; GList* _tmp4_; guint _tmp5_ = 0U; gint _tmp6_ = 0; gint _tmp7_; GtkAdjustment* _tmp8_; gdouble _tmp9_ = 0.0; _tmp2_ = value; self->priv->_position = _tmp2_; _tmp3_ = self->priv->_position; _tmp4_ = self->priv->streams_list; _tmp5_ = g_list_length (_tmp4_); _tmp6_ = CLAMP (_tmp3_, 0, (gint) _tmp5_); self->priv->_position = _tmp6_; _tmp7_ = self->priv->_position; _tmp8_ = self->priv->adjustment; _tmp9_ = gtk_adjustment_get_value (_tmp8_); if (((gdouble) _tmp7_) != _tmp9_) { GtkAdjustment* _tmp10_; gint _tmp11_; _tmp10_ = self->priv->adjustment; _tmp11_ = self->priv->_position; gtk_adjustment_set_value (_tmp10_, (gdouble) _tmp11_); gwibber_gtk_user_view_refresh (self); } } g_object_notify ((GObject *) self, "position"); } gboolean gwibber_gtk_user_view_get_showing (GwibberGtkUserView* self) { gboolean result; gboolean _tmp0_; g_return_val_if_fail (self != NULL, FALSE); _tmp0_ = self->priv->_showing; result = _tmp0_; return result; } void gwibber_gtk_user_view_set_showing (GwibberGtkUserView* self, gboolean value) { gboolean _tmp0_; gboolean _tmp1_; g_return_if_fail (self != NULL); _tmp0_ = value; _tmp1_ = self->priv->_showing; if (_tmp0_ != _tmp1_) { gboolean _tmp2_; _tmp2_ = value; self->priv->_showing = _tmp2_; } gwibber_gtk_user_view_do_refresh (self); g_object_notify ((GObject *) self, "showing"); } static void gwibber_gtk_user_view_real_show_transient (GwibberGtkUserView* self, const gchar* id, const gchar* name) { g_return_if_fail (id != NULL); g_return_if_fail (name != NULL); } static void g_cclosure_user_marshal_VOID__STRING_STRING (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) { typedef void (*GMarshalFunc_VOID__STRING_STRING) (gpointer data1, const char* arg_1, const char* arg_2, gpointer data2); register GMarshalFunc_VOID__STRING_STRING callback; register GCClosure * cc; register gpointer data1; register gpointer data2; cc = (GCClosure *) closure; g_return_if_fail (n_param_values == 3); if (G_CCLOSURE_SWAP_DATA (closure)) { data1 = closure->data; data2 = param_values->data[0].v_pointer; } else { data1 = param_values->data[0].v_pointer; data2 = closure->data; } callback = (GMarshalFunc_VOID__STRING_STRING) (marshal_data ? marshal_data : cc->callback); callback (data1, g_value_get_string (param_values + 1), g_value_get_string (param_values + 2), data2); } static void _gwibber_gtk_user_view___lambda65_ (GwibberGtkUserView* self) { GtkAdjustment* _tmp0_; gdouble _tmp1_ = 0.0; gdouble v; gint _tmp2_; gint _tmp3_; gdouble _tmp4_; _tmp0_ = self->priv->adjustment; _tmp1_ = gtk_adjustment_get_value (_tmp0_); v = _tmp1_; _tmp2_ = gwibber_gtk_user_view_get_position (self); _tmp3_ = _tmp2_; _tmp4_ = v; if (((gdouble) _tmp3_) != _tmp4_) { gboolean _tmp5_ = FALSE; gint _tmp6_; gint _tmp7_; gdouble _tmp8_; gboolean _tmp12_; _tmp6_ = gwibber_gtk_user_view_get_position (self); _tmp7_ = _tmp6_; _tmp8_ = v; if (((gdouble) _tmp7_) < _tmp8_) { gdouble _tmp9_; gint _tmp10_; gint _tmp11_; _tmp9_ = v; _tmp10_ = gwibber_gtk_user_view_get_position (self); _tmp11_ = _tmp10_; _tmp5_ = _tmp9_ < ((gdouble) (_tmp11_ + 1)); } else { _tmp5_ = FALSE; } _tmp12_ = _tmp5_; if (_tmp12_) { gint _tmp13_; gint _tmp14_; _tmp13_ = gwibber_gtk_user_view_get_position (self); _tmp14_ = _tmp13_; gwibber_gtk_user_view_set_position (self, _tmp14_ + 1); } else { gboolean _tmp15_ = FALSE; gint _tmp16_; gint _tmp17_; gdouble _tmp18_; gboolean _tmp22_; _tmp16_ = gwibber_gtk_user_view_get_position (self); _tmp17_ = _tmp16_; _tmp18_ = v; if (((gdouble) _tmp17_) > _tmp18_) { gdouble _tmp19_; gint _tmp20_; gint _tmp21_; _tmp19_ = v; _tmp20_ = gwibber_gtk_user_view_get_position (self); _tmp21_ = _tmp20_; _tmp15_ = _tmp19_ > ((gdouble) (_tmp21_ - 1)); } else { _tmp15_ = FALSE; } _tmp22_ = _tmp15_; if (_tmp22_) { gint _tmp23_; gint _tmp24_; _tmp23_ = gwibber_gtk_user_view_get_position (self); _tmp24_ = _tmp23_; gwibber_gtk_user_view_set_position (self, _tmp24_ - 1); } else { GtkAdjustment* _tmp25_; gdouble _tmp26_ = 0.0; _tmp25_ = self->priv->adjustment; _tmp26_ = gtk_adjustment_get_value (_tmp25_); gwibber_gtk_user_view_set_position (self, (gint) _tmp26_); } } } gwibber_gtk_user_view_refresh (self); } static void __gwibber_gtk_user_view___lambda65__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) { _gwibber_gtk_user_view___lambda65_ (self); } static gboolean _gwibber_gtk_user_view___lambda66_ (GwibberGtkUserView* self, GtkWidget* source, GdkEventScroll* event) { gboolean result = FALSE; GdkEventScroll _tmp0_; GdkScrollDirection _tmp1_; GdkScrollDirection direction; GdkEventScroll _tmp2_; GdkScrollDirection _tmp3_; GdkEventScroll _tmp8_; GdkScrollDirection _tmp9_; g_return_val_if_fail (source != NULL, FALSE); g_return_val_if_fail (event != NULL, FALSE); _tmp0_ = *event; _tmp1_ = _tmp0_.direction; direction = _tmp1_; _tmp2_ = *event; _tmp3_ = _tmp2_.direction; if (_tmp3_ == GDK_SCROLL_UP) { gint _tmp4_; gint _tmp5_; _tmp4_ = gwibber_gtk_user_view_get_position (self); _tmp5_ = _tmp4_; if (_tmp5_ > 0) { gint _tmp6_; gint _tmp7_; _tmp6_ = gwibber_gtk_user_view_get_position (self); _tmp7_ = _tmp6_; gwibber_gtk_user_view_set_position (self, _tmp7_ - 1); } } _tmp8_ = *event; _tmp9_ = _tmp8_.direction; if (_tmp9_ == GDK_SCROLL_DOWN) { gint _tmp10_; gint _tmp11_; GtkAdjustment* _tmp12_; gdouble _tmp13_; gdouble _tmp14_; gint _tmp15_; _tmp10_ = gwibber_gtk_user_view_get_position (self); _tmp11_ = _tmp10_; _tmp12_ = self->priv->adjustment; _tmp13_ = gtk_adjustment_get_upper (_tmp12_); _tmp14_ = _tmp13_; _tmp15_ = self->priv->tiles_visible; if (((gdouble) _tmp11_) < (_tmp14_ - _tmp15_)) { gint _tmp16_; gint _tmp17_; _tmp16_ = gwibber_gtk_user_view_get_position (self); _tmp17_ = _tmp16_; gwibber_gtk_user_view_set_position (self, _tmp17_ + 1); } } result = TRUE; return result; } static gboolean __gwibber_gtk_user_view___lambda66__gtk_widget_scroll_event (GtkWidget* _sender, GdkEventScroll* event, gpointer self) { gboolean result; result = _gwibber_gtk_user_view___lambda66_ (self, _sender, event); return result; } static gboolean _gwibber_gtk_user_view___lambda67_ (GwibberGtkUserView* self, GtkWidget* source, GdkEventKey* event) { gboolean result = FALSE; GdkEventKey _tmp0_; guint _tmp1_; guint key; GdkEventKey _tmp2_; guint _tmp3_; g_return_val_if_fail (source != NULL, FALSE); g_return_val_if_fail (event != NULL, FALSE); _tmp0_ = *event; _tmp1_ = _tmp0_.keyval; key = _tmp1_; _tmp2_ = *event; _tmp3_ = _tmp2_.keyval; switch (_tmp3_) { case 0xff55: case 0xff9a: { gint _tmp4_; gint _tmp5_; gint _tmp6_; _tmp4_ = gwibber_gtk_user_view_get_position (self); _tmp5_ = _tmp4_; _tmp6_ = self->priv->tiles_visible; gwibber_gtk_user_view_set_position (self, _tmp5_ - _tmp6_); break; } case 0xff56: case 0xff9b: { gint _tmp7_; gint _tmp8_; gint _tmp9_; _tmp7_ = gwibber_gtk_user_view_get_position (self); _tmp8_ = _tmp7_; _tmp9_ = self->priv->tiles_visible; gwibber_gtk_user_view_set_position (self, _tmp8_ + _tmp9_); break; } case 0xff54: case 0xff99: { gint _tmp10_; gint _tmp11_; _tmp10_ = gwibber_gtk_user_view_get_position (self); _tmp11_ = _tmp10_; gwibber_gtk_user_view_set_position (self, _tmp11_ + 1); break; } case 0xff52: case 0xff97: { gint _tmp12_; gint _tmp13_; _tmp12_ = gwibber_gtk_user_view_get_position (self); _tmp13_ = _tmp12_; gwibber_gtk_user_view_set_position (self, _tmp13_ - 1); break; } default: { result = FALSE; return result; } } result = TRUE; return result; } static gboolean __gwibber_gtk_user_view___lambda67__gtk_widget_key_press_event (GtkWidget* _sender, GdkEventKey* event, gpointer self) { gboolean result; result = _gwibber_gtk_user_view___lambda67_ (self, _sender, event); return result; } static void _gwibber_gtk_user_view______lambda68_ (GwibberGtkUserView* self, const gchar* id, const gchar* name) { const gchar* _tmp0_; const gchar* _tmp1_; g_return_if_fail (id != NULL); g_return_if_fail (name != NULL); _tmp0_ = id; _tmp1_ = name; g_signal_emit_by_name (self, "show-transient", _tmp0_, _tmp1_); } static void __gwibber_gtk_user_view______lambda68__gwibber_gtk_user_view_tile_show_transient (GwibberGtkUserViewTile* _sender, const gchar* id, const gchar* name, gpointer self) { _gwibber_gtk_user_view______lambda68_ (self, id, name); } static void _gwibber_gtk_user_view___lambda69_ (GwibberGtkUserView* self, GtkAllocation* a) { gboolean _tmp0_ = FALSE; gint _tmp1_; GtkAllocation _tmp2_; gint _tmp3_; gboolean _tmp7_; g_return_if_fail (a != NULL); _tmp1_ = self->priv->last_width; _tmp2_ = *a; _tmp3_ = _tmp2_.width; if (_tmp1_ != _tmp3_) { _tmp0_ = TRUE; } else { gint _tmp4_; GtkAllocation _tmp5_; gint _tmp6_; _tmp4_ = self->priv->last_height; _tmp5_ = *a; _tmp6_ = _tmp5_.height; _tmp0_ = _tmp4_ != _tmp6_; } _tmp7_ = _tmp0_; if (_tmp7_) { GtkAllocation _tmp8_; gint _tmp9_; GtkAllocation _tmp10_; gint _tmp11_; GwibberGtkTileBox* _tmp12_; gint _tmp13_; _tmp8_ = *a; _tmp9_ = _tmp8_.width; self->priv->last_width = _tmp9_; _tmp10_ = *a; _tmp11_ = _tmp10_.height; self->priv->last_height = _tmp11_; _tmp12_ = self->priv->view_box; _tmp13_ = self->priv->last_height; gwibber_gtk_tile_box_set_last_height (_tmp12_, _tmp13_); gwibber_gtk_user_view_refresh (self); } } static void __gwibber_gtk_user_view___lambda69__gtk_widget_size_allocate (GtkWidget* _sender, GtkAllocation* allocation, gpointer self) { _gwibber_gtk_user_view___lambda69_ (self, allocation); } static void _gwibber_gtk_user_view___lambda70_ (GwibberGtkUserView* self, const gchar* id) { GwibberStreams* _tmp0_; const gchar* _tmp1_; GeeHashMap* _tmp2_ = NULL; GeeHashMap* stream_map; GeeHashMap* _tmp3_; gpointer _tmp4_ = NULL; gchar* name; const gchar* _tmp5_; const gchar* _tmp6_; g_return_if_fail (id != NULL); _tmp0_ = self->streams; _tmp1_ = id; _tmp2_ = gwibber_streams_lookup (_tmp0_, _tmp1_); stream_map = _tmp2_; _tmp3_ = stream_map; _tmp4_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp3_, "name"); name = (gchar*) _tmp4_; gwibber_gtk_user_view_refresh (self); _tmp5_ = id; _tmp6_ = name; g_signal_emit_by_name (self, "show-transient", _tmp5_, _tmp6_); _g_free0 (name); _g_object_unref0 (stream_map); } static void __gwibber_gtk_user_view___lambda70__gwibber_streams_created (GwibberStreams* _sender, const gchar* id, gpointer self) { _gwibber_gtk_user_view___lambda70_ (self, id); } static void _gwibber_gtk_user_view___lambda71_ (GwibberGtkUserView* self, const gchar* id) { const gchar* _tmp0_; GwibberStreams* _tmp1_; const gchar* _tmp2_; GeeHashMap* _tmp3_ = NULL; GeeHashMap* stream_map; GeeHashMap* _tmp4_; gpointer _tmp5_ = NULL; gchar* name; const gchar* _tmp6_; const gchar* _tmp7_; g_return_if_fail (id != NULL); _tmp0_ = id; g_debug ("user-view.vala:182: updated stream %s", _tmp0_); _tmp1_ = self->streams; _tmp2_ = id; _tmp3_ = gwibber_streams_lookup (_tmp1_, _tmp2_); stream_map = _tmp3_; _tmp4_ = stream_map; _tmp5_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp4_, "name"); name = (gchar*) _tmp5_; gwibber_gtk_user_view_refresh (self); _tmp6_ = id; _tmp7_ = name; g_signal_emit_by_name (self, "show-transient", _tmp6_, _tmp7_); _g_free0 (name); _g_object_unref0 (stream_map); } static void __gwibber_gtk_user_view___lambda71__gwibber_streams_updated (GwibberStreams* _sender, const gchar* id, gpointer self) { _gwibber_gtk_user_view___lambda71_ (self, id); } static void _gwibber_gtk_user_view___lambda72_ (GwibberGtkUserView* self, const gchar* id) { g_return_if_fail (id != NULL); gwibber_gtk_user_view_refresh (self); } static void __gwibber_gtk_user_view___lambda72__gwibber_streams_deleted (GwibberStreams* _sender, const gchar* id, gpointer self) { _gwibber_gtk_user_view___lambda72_ (self, id); } static GObject * gwibber_gtk_user_view_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) { GObject * obj; GObjectClass * parent_class; GwibberGtkUserView * self; GwibberStreams* _tmp0_; GtkAdjustment* _tmp1_; GtkAdjustment* _tmp2_; GtkAdjustment* _tmp3_; GwibberGtkTileBox* _tmp4_; GwibberGtkTileBox* _tmp5_; GwibberGtkTileBox* _tmp6_; GwibberGtkTileBox* _tmp7_; GtkAdjustment* _tmp8_; GtkVScrollbar* _tmp9_; GtkVScrollbar* _tmp10_; GtkVScrollbar* _tmp11_; GwibberGtkTileBox* _tmp25_; GwibberStreams* _tmp26_; GwibberStreams* _tmp27_; GwibberStreams* _tmp28_; parent_class = G_OBJECT_CLASS (gwibber_gtk_user_view_parent_class); obj = parent_class->constructor (type, n_construct_properties, construct_properties); self = GWIBBER_GTK_USER_VIEW (obj); _tmp0_ = gwibber_streams_new (); _g_object_unref0 (self->streams); self->streams = _tmp0_; _tmp1_ = gtk_adjustment_new ((gdouble) 0, (gdouble) 0, (gdouble) 1, (gdouble) 1, (gdouble) 1, (gdouble) 1); _tmp2_ = g_object_ref_sink (_tmp1_); _g_object_unref0 (self->priv->adjustment); self->priv->adjustment = _tmp2_; _tmp3_ = self->priv->adjustment; g_signal_connect_object ((GObject*) _tmp3_, "notify::value", (GCallback) __gwibber_gtk_user_view___lambda65__g_object_notify, self, 0); _tmp4_ = gwibber_gtk_tile_box_new (); _tmp5_ = g_object_ref_sink (_tmp4_); _g_object_unref0 (self->priv->view_box); self->priv->view_box = _tmp5_; _tmp6_ = self->priv->view_box; gtk_box_pack_start ((GtkBox*) self, (GtkWidget*) _tmp6_, TRUE, TRUE, (guint) 0); _tmp7_ = self->priv->view_box; gtk_widget_show ((GtkWidget*) _tmp7_); _tmp8_ = self->priv->adjustment; _tmp9_ = (GtkVScrollbar*) gtk_vscrollbar_new (_tmp8_); _tmp10_ = g_object_ref_sink (_tmp9_); _g_object_unref0 (self->priv->scrollbar); self->priv->scrollbar = _tmp10_; _tmp11_ = self->priv->scrollbar; gtk_box_pack_start ((GtkBox*) self, (GtkWidget*) _tmp11_, FALSE, FALSE, (guint) 0); gtk_widget_set_events ((GtkWidget*) self, (gint) (GDK_KEY_PRESS_MASK | GDK_SCROLL_MASK)); g_signal_connect_object ((GtkWidget*) self, "scroll-event", (GCallback) __gwibber_gtk_user_view___lambda66__gtk_widget_scroll_event, self, 0); g_signal_connect_object ((GtkWidget*) self, "key-press-event", (GCallback) __gwibber_gtk_user_view___lambda67__gtk_widget_key_press_event, self, 0); { gint i; i = 0; { gboolean _tmp12_; _tmp12_ = TRUE; while (TRUE) { gboolean _tmp13_; gint _tmp15_; GwibberStreams* _tmp16_; GwibberGtkUserViewTile* _tmp17_; GwibberGtkUserViewTile* _tmp18_; GwibberGtkUserViewTile* tile; GwibberGtkUserViewTile* _tmp19_; GwibberGtkUserViewTile* _tmp20_; GwibberGtkTileBox* _tmp21_; GwibberGtkUserViewTile* _tmp22_; GwibberGtkUserViewTile* _tmp23_; GwibberGtkUserViewTile* _tmp24_; _tmp13_ = _tmp12_; if (!_tmp13_) { gint _tmp14_; _tmp14_ = i; i = _tmp14_ + 1; } _tmp12_ = FALSE; _tmp15_ = i; if (!(_tmp15_ < 10)) { break; } _tmp16_ = self->streams; _tmp17_ = gwibber_gtk_user_view_tile_new (_tmp16_); _tmp18_ = g_object_ref_sink (_tmp17_); tile = _tmp18_; _tmp19_ = tile; g_signal_connect_object (_tmp19_, "show-transient", (GCallback) __gwibber_gtk_user_view______lambda68__gwibber_gtk_user_view_tile_show_transient, self, 0); _tmp20_ = tile; gtk_widget_show_all ((GtkWidget*) _tmp20_); _tmp21_ = self->priv->view_box; _tmp22_ = tile; gtk_box_pack_start ((GtkBox*) _tmp21_, (GtkWidget*) _tmp22_, FALSE, FALSE, (guint) 0); _tmp23_ = tile; _tmp24_ = _g_object_ref0 (_tmp23_); self->priv->tiles = g_slist_append (self->priv->tiles, _tmp24_); _g_object_unref0 (tile); } } } _tmp25_ = self->priv->view_box; g_signal_connect_object ((GtkWidget*) _tmp25_, "size-allocate", (GCallback) __gwibber_gtk_user_view___lambda69__gtk_widget_size_allocate, self, G_CONNECT_AFTER); _tmp26_ = self->streams; g_signal_connect_object (_tmp26_, "created", (GCallback) __gwibber_gtk_user_view___lambda70__gwibber_streams_created, self, 0); _tmp27_ = self->streams; g_signal_connect_object (_tmp27_, "updated", (GCallback) __gwibber_gtk_user_view___lambda71__gwibber_streams_updated, self, 0); _tmp28_ = self->streams; g_signal_connect_object (_tmp28_, "deleted", (GCallback) __gwibber_gtk_user_view___lambda72__gwibber_streams_deleted, self, 0); gwibber_gtk_user_view_refresh (self); return obj; } static void gwibber_gtk_user_view_class_init (GwibberGtkUserViewClass * klass) { gwibber_gtk_user_view_parent_class = g_type_class_peek_parent (klass); g_type_class_add_private (klass, sizeof (GwibberGtkUserViewPrivate)); GTK_WIDGET_CLASS (klass)->get_preferred_height_for_width = gwibber_gtk_user_view_real_get_preferred_height_for_width; GTK_WIDGET_CLASS (klass)->get_preferred_height = gwibber_gtk_user_view_real_get_preferred_height; GWIBBER_GTK_USER_VIEW_CLASS (klass)->show_transient = gwibber_gtk_user_view_real_show_transient; G_OBJECT_CLASS (klass)->get_property = _vala_gwibber_gtk_user_view_get_property; G_OBJECT_CLASS (klass)->set_property = _vala_gwibber_gtk_user_view_set_property; G_OBJECT_CLASS (klass)->constructor = gwibber_gtk_user_view_constructor; G_OBJECT_CLASS (klass)->finalize = gwibber_gtk_user_view_finalize; g_object_class_install_property (G_OBJECT_CLASS (klass), GWIBBER_GTK_USER_VIEW_POSITION, g_param_spec_int ("position", "position", "position", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); g_object_class_install_property (G_OBJECT_CLASS (klass), GWIBBER_GTK_USER_VIEW_SHOWING, g_param_spec_boolean ("showing", "showing", "showing", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); g_signal_new ("show_transient", GWIBBER_GTK_TYPE_USER_VIEW, G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (GwibberGtkUserViewClass, show_transient), NULL, NULL, g_cclosure_user_marshal_VOID__STRING_STRING, G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING); } static void gwibber_gtk_user_view_instance_init (GwibberGtkUserView * self) { self->priv = GWIBBER_GTK_USER_VIEW_GET_PRIVATE (self); self->priv->_position = 0; self->priv->tiles_visible = 0; self->priv->refresh_id = (guint) 0; self->priv->_showing = FALSE; self->priv->last_width = 0; self->priv->last_height = 0; } static void gwibber_gtk_user_view_finalize (GObject* obj) { GwibberGtkUserView * self; self = GWIBBER_GTK_USER_VIEW (obj); _g_object_unref0 (self->priv->adjustment); _g_object_unref0 (self->priv->scrollbar); _g_object_unref0 (self->priv->view_box); _g_object_unref0 (self->streams); __g_list_free__g_object_unref0_0 (self->priv->streams_list); __g_slist_free__g_object_unref0_0 (self->priv->tiles); G_OBJECT_CLASS (gwibber_gtk_user_view_parent_class)->finalize (obj); } GType gwibber_gtk_user_view_get_type (void) { static volatile gsize gwibber_gtk_user_view_type_id__volatile = 0; if (g_once_init_enter (&gwibber_gtk_user_view_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (GwibberGtkUserViewClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gwibber_gtk_user_view_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GwibberGtkUserView), 0, (GInstanceInitFunc) gwibber_gtk_user_view_instance_init, NULL }; GType gwibber_gtk_user_view_type_id; gwibber_gtk_user_view_type_id = g_type_register_static (GTK_TYPE_BOX, "GwibberGtkUserView", &g_define_type_info, 0); g_once_init_leave (&gwibber_gtk_user_view_type_id__volatile, gwibber_gtk_user_view_type_id); } return gwibber_gtk_user_view_type_id__volatile; } static void _vala_gwibber_gtk_user_view_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { GwibberGtkUserView * self; self = GWIBBER_GTK_USER_VIEW (object); switch (property_id) { case GWIBBER_GTK_USER_VIEW_POSITION: g_value_set_int (value, gwibber_gtk_user_view_get_position (self)); break; case GWIBBER_GTK_USER_VIEW_SHOWING: g_value_set_boolean (value, gwibber_gtk_user_view_get_showing (self)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } static void _vala_gwibber_gtk_user_view_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { GwibberGtkUserView * self; self = GWIBBER_GTK_USER_VIEW (object); switch (property_id) { case GWIBBER_GTK_USER_VIEW_POSITION: gwibber_gtk_user_view_set_position (self, g_value_get_int (value)); break; case GWIBBER_GTK_USER_VIEW_SHOWING: gwibber_gtk_user_view_set_showing (self, g_value_get_boolean (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } }