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
| /* essai sur les check buttons */
#include <stdlib.h>
#include <gtk/gtk.h>
int main(int argc,char **argv)
{
GtkWidget* pWindow;
GtkWidget* pCheck[10];
GtkWidget *pVBox; /* une box verticale */
void OnToggle(GtkWidget *pWidget, gpointer pData); /* fonction call back activation ou desactivation boutton */
int i;
char tmp[30];
gtk_init(&argc,&argv);
pWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(pWindow), "Check buttons");
gtk_window_set_default_size(GTK_WINDOW(pWindow), 320, 200);
/* création de la box verticale */
pVBox = gtk_vbox_new(FALSE, 0);
/* Creation des boutons check */
for (i=0;i<10;i++)
{
(void)sprintf(tmp,"essai %2d",i+1);
pCheck[i]=gtk_check_button_new_with_label(tmp);
/* ajout dans la boite verticale */
gtk_box_pack_start(GTK_BOX(pVBox), pCheck[i], FALSE, TRUE, 0);
}
/* ajout de la GtkVBox à la fenetre */
gtk_container_add(GTK_CONTAINER(pWindow), pVBox);
/* Connexion des signaux */
g_signal_connect(G_OBJECT(pWindow), "destroy", G_CALLBACK(gtk_main_quit), NULL);
for (i=0;i<10;i++)
g_signal_connect(G_OBJECT(pCheck[i]), "toggled", G_CALLBACK(OnToggle), NULL);
/*affichage de la fenetre */
gtk_widget_show_all(pWindow);
gtk_main();
return EXIT_SUCCESS;
}
void OnToggle(GtkWidget *pToggle, gpointer data)
{
gboolean bEtat;
/* Récupération de l'état du bouton */
bEtat = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(pToggle));
if (bEtat)
(void)printf("coche\n");
else
( void)printf("decoche\n");
} |
Partager