Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdlib.h>
- #include <gtk/gtk.h>
- void creationWindows ();
- void mainWindowCreation(int argc, char *argv[]);
- void buttonCreation(GtkWidget **win);
- int main (int argc, char *argv[]);
- void singup(GtkWidget **pWindow);
- void OnValider(GtkWidget *pBtn, gpointer data);
- void singup(GtkWidget **pWindow){
- GtkWidget *pVBox;
- GtkWidget *pFrame;
- GtkWidget *pVBoxFrame;
- GtkWidget *pSeparator;
- GtkWidget *pEntry;
- GtkWidget *pLabel;
- GtkWidget *pRadio1;
- GtkWidget *pRadio2;
- GtkWidget *pValider;
- gchar *sUtf8;
- pVBox = gtk_vbox_new(TRUE, 0);
- gtk_container_add(GTK_CONTAINER(*pWindow), pVBox);
- /* Creation du premier GtkFrame */
- pFrame = gtk_frame_new("Profil");
- gtk_box_pack_start(GTK_BOX(pVBox), pFrame, TRUE, FALSE, 0);
- /* Creation et insertion d une boite pour le premier GtkFrame */
- pVBoxFrame = gtk_vbox_new(TRUE, 0);
- gtk_container_add(GTK_CONTAINER(pFrame), pVBoxFrame);
- /* Creation et insertion des elements contenus dans le premier GtkFrame */
- sUtf8 = g_locale_to_utf8("Prénom :", -1, NULL, NULL, NULL);
- pLabel = gtk_label_new(sUtf8);
- g_free(sUtf8);
- gtk_box_pack_start(GTK_BOX(pVBoxFrame), pLabel, TRUE, FALSE, 0);
- pEntry = gtk_entry_new();
- gtk_box_pack_start(GTK_BOX(pVBoxFrame), pEntry, TRUE, FALSE, 0);
- /* Creation d un GtkHSeparator */
- pSeparator = gtk_hseparator_new();
- gtk_box_pack_start(GTK_BOX(pVBoxFrame), pSeparator, TRUE, FALSE, 0);
- sUtf8 = g_locale_to_utf8("âge :", -1, NULL, NULL, NULL);
- pLabel = gtk_label_new(sUtf8);
- g_free(sUtf8);
- gtk_box_pack_start(GTK_BOX(pVBoxFrame), pLabel, TRUE, FALSE, 0);
- pEntry = gtk_entry_new();
- gtk_box_pack_start(GTK_BOX(pVBoxFrame), pEntry, TRUE, FALSE, 0);
- //---------------------------
- /* Creation du deuxieme GtkFrame */
- pFrame = gtk_frame_new("Avez vous une salle de sport ?");
- gtk_box_pack_start(GTK_BOX(pVBox), pFrame, TRUE, FALSE, 0);
- /* Creation et insertion d une boite pour le deuxieme GtkFrame */
- pVBoxFrame = gtk_vbox_new(TRUE, 0);
- gtk_container_add(GTK_CONTAINER(pFrame), pVBoxFrame);
- /* Création du premier bouton radio */
- pRadio1 = gtk_radio_button_new_with_label(NULL, "Pour");
- gtk_box_pack_start(GTK_BOX (pVBoxFrame), pRadio1, TRUE, FALSE, 0);
- /* Ajout du deuxieme */
- pRadio2 = gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON (pRadio1), "Contre");
- gtk_box_pack_start(GTK_BOX (pVBoxFrame), pRadio2, TRUE, FALSE, 0);
- //------------------------------------------
- /* Creation du deuxieme GtkFrame */
- pFrame = gtk_frame_new("Votre objectif");
- gtk_box_pack_start(GTK_BOX(pVBox), pFrame, TRUE, FALSE, 0);
- /* Creation et insertion d une boite pour le deuxieme GtkFrame */
- pVBoxFrame = gtk_vbox_new(TRUE, 0);
- gtk_container_add(GTK_CONTAINER(pFrame), pVBoxFrame);
- /* Création du premier bouton radio */
- pRadio1 = gtk_radio_button_new_with_label(NULL, "Pour");
- gtk_box_pack_start(GTK_BOX (pVBoxFrame), pRadio1, TRUE, FALSE, 0);
- /* Ajout du deuxieme */
- pRadio2 = gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON (pRadio1), "Contre");
- gtk_box_pack_start(GTK_BOX (pVBoxFrame), pRadio2, TRUE, FALSE, 0);
- //---------------------------
- /* Creation du deuxieme GtkFrame */
- pFrame = gtk_frame_new("maladies");
- gtk_box_pack_start(GTK_BOX(pVBox), pFrame, TRUE, FALSE, 0);
- /* Creation et insertion d une boite pour le deuxieme GtkFrame */
- pVBoxFrame = gtk_vbox_new(TRUE, 0);
- gtk_container_add(GTK_CONTAINER(pFrame), pVBoxFrame);
- pEntry = gtk_entry_new();
- gtk_box_pack_start(GTK_BOX(pVBoxFrame), pEntry, TRUE, FALSE, 0);
- pValider = gtk_button_new_from_stock(GTK_STOCK_OK);
- gtk_box_pack_start(GTK_BOX (pVBoxFrame), pValider, TRUE, FALSE, 0);
- g_signal_connect(G_OBJECT(pValider), "clicked", G_CALLBACK(OnValider), pRadio1);
- }
- void OnValider(GtkWidget *pBtn, gpointer data)
- {
- GtkWidget *pInfo;
- GtkWidget *pWindow;
- GSList *pList;
- const gchar *sLabel;
- /* Récupération de la liste des boutons */
- pList = gtk_radio_button_get_group(GTK_RADIO_BUTTON(data));
- /* Parcours de la liste */
- while(pList)
- {
- /* Le bouton est-il sélectionné */
- if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(pList->data)))
- {
- /* OUI -> on copie le label du bouton */
- sLabel = gtk_button_get_label(GTK_BUTTON(pList->data));
- /* On met la liste a NULL pour sortir de la boucle */
- pList = NULL;
- }
- else
- {
- /* NON -> on passe au bouton suivant */
- pList = g_slist_next(pList);
- }
- }
- pInfo = gtk_message_dialog_new(GTK_WINDOW(pWindow),
- GTK_DIALOG_MODAL,
- GTK_MESSAGE_INFO,
- GTK_BUTTONS_OK,
- "Vous avez choisi : %s", sLabel);
- gtk_dialog_run(GTK_DIALOG(pInfo));
- gtk_widget_destroy(pInfo);
- }
- void creationWindows (){
- GtkWidget *s_window = NULL;
- s_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
- gtk_container_set_border_width (GTK_CONTAINER(s_window), 30);
- gtk_window_set_title(GTK_WINDOW(s_window),"Fenetre secondaire");
- gtk_window_set_default_size(GTK_WINDOW(s_window),600,400);
- gtk_window_set_position(GTK_WINDOW(s_window),GTK_WIN_POS_CENTER);
- gtk_widget_realize(s_window);
- gtk_widget_show(s_window);
- singup(&s_window);
- gtk_widget_show_all (s_window);
- }
- void mainWindowCreation(int argc, char *argv[]){
- /* Initialize GTK+ */
- gtk_init (&argc, &argv);
- GtkWidget *win = NULL;
- /* Create the main window */
- win = gtk_window_new (GTK_WINDOW_TOPLEVEL);
- gtk_container_set_border_width (GTK_CONTAINER (win), 30);
- gtk_window_set_title (GTK_WINDOW (win), "Programme personalisé");
- gtk_window_set_default_size(GTK_WINDOW(win), 600, 400);
- gtk_window_set_position (GTK_WINDOW (win), GTK_WIN_POS_CENTER);
- gtk_widget_realize (win);
- g_signal_connect (win, "destroy", gtk_main_quit, NULL);
- buttonCreation(&win);
- gtk_widget_show_all (win);
- }
- void buttonCreation(GtkWidget **win){
- /* Create a vertical box with buttons */
- GtkWidget *vbox = gtk_vbox_new (FALSE, 6);
- gtk_container_add (GTK_CONTAINER (*win), vbox);
- GtkWidget *button = gtk_button_new_from_stock (GTK_STOCK_CONNECT);
- g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (creationWindows),NULL);
- gtk_box_pack_start (GTK_BOX (vbox), button, TRUE, TRUE, 0);
- button = gtk_button_new_from_stock (GTK_STOCK_CLOSE);
- g_signal_connect (button, "clicked", gtk_main_quit, NULL);
- gtk_box_pack_start (GTK_BOX (vbox), button, TRUE, TRUE, 0);
- }
- int main (int argc, char *argv[])
- {
- mainWindowCreation(argc, argv);
- /* Enter the main loop */
- gtk_main ();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement