+GList *lchild, *list;
+GtkWidget *radio;
+gint i;
+
+ if(!GTK_IS_CONTAINER(container))
+ return;
+
+ lchild = list = gtk_container_get_children (container);
+ for(i=0;list != NULL;i++)
+ {
+ radio = list->data;
+ if(GTK_IS_TOGGLE_BUTTON(radio))
+ {
+ g_signal_handlers_unblock_by_func (radio, c_handler, data);
+ }
+ list = g_list_next(list);
+ }
+ g_list_free(lchild);
+}
+
+
+void hbtk_radio_button_block_by_func(GtkContainer *container, GCallback c_handler, gpointer data)
+{
+GList *lchild, *list;
+GtkWidget *radio;
+gint i;
+
+ if(!GTK_IS_CONTAINER(container))
+ return;
+
+ lchild = list = gtk_container_get_children (container);
+ for(i=0;list != NULL;i++)
+ {
+ radio = list->data;
+ if(GTK_IS_TOGGLE_BUTTON(radio))
+ {
+ g_signal_handlers_block_by_func (radio, c_handler, data);
+ }
+ list = g_list_next(list);
+ }
+ g_list_free(lchild);
+}
+
+
+void hbtk_radio_button_connect(GtkContainer *container, const gchar *detailed_signal, GCallback c_handler, gpointer data)
+{
+GList *lchild, *list;
+GtkWidget *radio;
+gint i;
+
+ if(!GTK_IS_CONTAINER(container))
+ return;
+
+ lchild = list = gtk_container_get_children (container);
+ for(i=0;list != NULL;i++)
+ {
+ radio = list->data;
+ if(GTK_IS_TOGGLE_BUTTON(radio))
+ {
+ g_signal_connect (radio, "toggled", c_handler, data);
+ }
+ list = g_list_next(list);
+ }
+ g_list_free(lchild);
+
+}
+
+
+GtkWidget *hbtk_radio_button_new (gchar **items, gboolean buttonstyle)
+{
+GtkWidget *box, *button, *newbutton;