1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
void
togglebutton1_clicked_cb (GtkToggleButton *button)
{
(void) toggle_choix_exclusif (GTK_WIDGET(button));
}
void
togglebutton2_clicked_cb (GtkToggleButton *button)
{
(void) toggle_choix_exclusif (GTK_WIDGET(button));
}
void
togglebutton3_clicked_cb (GtkToggleButton *button)
{
(void) toggle_choix_exclusif (GTK_WIDGET(button));
....
void
toggle_choix_exclusif (GtkWidget *widget)
{
GtkWidget *tmp_widget;
GList *children, *l;
/* Toujours 1 choix actif et 1 seul */
if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)))
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), TRUE);
/* Remonter au GtkBox contenant les différents ToggleButton */
tmp_widget = gtk_widget_get_parent(widget);
gtk_container_get_children (GTK_CONTAINER (tmp_widget));
for (l = children; l; l = l->next)
{
if (GTK_IS_TOGGLE_BUTTON(l->data))
{
/* Désactiver les autres ToggleButton */
if (l->data != widget)
{
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(l->data)))
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(l->data), FALSE);
}
}
}
g_list_free (children);
} |
Partager