static void pnl_tab_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { PnlTab *self = PNL_TAB (object); switch (prop_id) { case PROP_EDGE: pnl_tab_set_edge (self, g_value_get_enum (value)); break; case PROP_TITLE: pnl_tab_set_title (self, g_value_get_string (value)); break; case PROP_WIDGET: pnl_tab_set_widget (self, g_value_get_object (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } }
static void pnl_tab_strip_child_title_changed (PnlTabStrip *self, GParamSpec *pspec, GtkWidget *child) { g_autofree gchar *title = NULL; GtkWidget *parent; PnlTab *tab; g_assert (PNL_IS_TAB_STRIP (self)); g_assert (GTK_IS_WIDGET (child)); tab = g_object_get_data (G_OBJECT (child), "PNL_TAB"); if (!PNL_IS_TAB (tab)) return; parent = gtk_widget_get_parent (child); gtk_container_child_get (GTK_CONTAINER (parent), child, "title", &title, NULL); pnl_tab_set_title (tab, title); }