static void charset_combo_box_constructed (GObject *object) { ECharsetComboBoxPrivate *priv; GtkRadioAction *radio_action; GSList *group; priv = E_CHARSET_COMBO_BOX_GET_PRIVATE (object); /* Chain up to parent's constructed() method. */ G_OBJECT_CLASS (e_charset_combo_box_parent_class)->constructed (object); radio_action = priv->other_action; group = gtk_radio_action_get_group (radio_action); e_action_combo_box_set_action ( E_ACTION_COMBO_BOX (object), radio_action); e_action_combo_box_add_separator_after ( E_ACTION_COMBO_BOX (object), g_slist_length (group)); e_signal_connect_notify ( object, "notify::charset", G_CALLBACK (charset_combo_box_notify_charset_cb), NULL); }
static void charset_combo_box_finalize (GObject *object) { ECharsetComboBoxPrivate *priv; priv = E_CHARSET_COMBO_BOX_GET_PRIVATE (object); g_hash_table_destroy (priv->charset_index); /* Chain up to parent's finalize() method. */ G_OBJECT_CLASS (parent_class)->finalize (object); }
static void charset_combo_box_changed (GtkComboBox *combo_box) { ECharsetComboBoxPrivate *priv; priv = E_CHARSET_COMBO_BOX_GET_PRIVATE (combo_box); /* Chain up to parent's changed() method. */ GTK_COMBO_BOX_CLASS (parent_class)->changed (combo_box); /* Notify -before- updating previous index. */ g_object_notify (G_OBJECT (combo_box), "charset"); priv->previous_index = gtk_combo_box_get_active (combo_box); }
static void charset_combo_box_dispose (GObject *object) { ECharsetComboBoxPrivate *priv; priv = E_CHARSET_COMBO_BOX_GET_PRIVATE (object); if (priv->action_group != NULL) { g_object_unref (priv->action_group); priv->action_group = NULL; } if (priv->other_action != NULL) { g_object_unref (priv->other_action); priv->other_action = NULL; } g_hash_table_remove_all (priv->charset_index); /* Chain up to parent's dispose() method. */ G_OBJECT_CLASS (parent_class)->dispose (object); }