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 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155
| #include <stdlib.h>
#include <gtk/gtk.h>
#include <glade/glade.h>
GladeXML *xml;
GtkWidget *widget; //pour fenetre 1
GtkWidget *widget_choix; //pour fenetre 2
GtkWidget *widget_resultat; //pour fenetre3
GtkWidget *conv_butt;
GtkWidget *choixretourmenu_butt; //pour retourner au menu
GtkWidget *crypter;
GtkWidget *decrypter;
int res_Win_Created;
void on_Convertir_clicked (GtkButton *, gpointer);
void on_OK_clicked (GtkButton *, gpointer);
void menu_principal ();
void radiobuttonun ();
void on_Convertir_clicked (GtkButton *button, gpointer user_data) ///quand je clique sur convertir fenetre 2?
{
GtkWidget *text_widget;
GtkTextBuffer* text_buffer=0;
GtkTextIter start;
GtkTextIter end;
gchar* buf=0;
GtkWidget *choixok_butt;
text_widget = glade_xml_get_widget(xml,"entresaisie");
//On recupere le buffer
text_buffer=gtk_text_view_get_buffer(GTK_TEXT_VIEW(text_widget));
//On recupere l'origine du buffer
gtk_text_buffer_get_start_iter(text_buffer,&start);
//On recupere la fin du buffer
gtk_text_buffer_get_end_iter(text_buffer,&end);
//On copie le contenu du buffer dans une variable
buf=gtk_text_buffer_get_text(text_buffer,&start, &end,TRUE);
g_print("%s\n",buf); //buf est chaine de caractere du champ texte de la fenetre 1 (entresaisie)
gtk_widget_hide(widget);
widget_choix = glade_xml_get_widget(xml, "window3");
gtk_widget_show(widget_choix);
/* connect signal handlers */
//glade_xml_signal_autoconnect(xml);
choixok_butt = glade_xml_get_widget(xml, "OK");
g_signal_connect(G_OBJECT(choixok_butt), "clicked", G_CALLBACK(on_OK_clicked), NULL); // appel de la fonction on_OK_clicked
}
void on_OK_clicked (GtkButton *button, gpointer user_data) ///quand je clique sur ok dans la 2ieme fenetre : 3 fenetre
{
res_Win_Created = 1;
widget_resultat = glade_xml_get_widget(xml, "window2");
gtk_widget_show(widget_resultat);
gtk_widget_hide(widget_choix);
/* connect signal handlers */
//glade_xml_signal_autoconnect(xml);
choixretourmenu_butt = glade_xml_get_widget(xml, "retourmenu");
//g_signal_connect_swapped(GTK_FILE_SELECTION(file_selection)->ok_button, "clicked", G_CALLBACK(gtk_widget_destroy), file_selection);
g_signal_connect(G_OBJECT(choixretourmenu_butt), "clicked", G_CALLBACK(menu_principal), NULL); // appel de la fonction menu_principal
}
void menu_principal () /// fenetre menu principal
{
if (res_Win_Created == 1)
gtk_widget_hide(widget_resultat); // on detruit la fenetre 3
/* get a widget (useful if you want to change something) */
widget = glade_xml_get_widget(xml, "window1"); //on ouvre la fenetre 1
/* connect signal handlers */
//glade_xml_signal_autoconnect(xml);
conv_butt = glade_xml_get_widget(xml, "Convertir");
g_signal_connect(G_OBJECT(conv_butt), "clicked", G_CALLBACK(radiobuttonun), crypter); // appel de la fonction radiobuttonun
gtk_widget_show(widget);
}
//////////////
void radiobuttonun (GtkWidget *pBtn, gpointer data) /// test premier radio button
{
GSList *pList;
const gchar *sLabel;
/* Recuperation 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 selectionne */
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);
}
}
g_print("%s\n",data);
}
/////////////////////////////////////////
int main(int argc, char **argv)
{
res_Win_Created = 0;
gtk_init(&argc, &argv);
xml = glade_xml_new("../interfacecryptomain.glade", NULL, NULL);
menu_principal ();
gtk_main();
return 0;
} |
Partager