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
|
void visualisation(GtkWidget *widget, gpointer data)
{
FILE *fich, *fich_tmp;
gchar *title[NB_INT_MAX];
gchar tmp[50];
GtkWidget *pTextView = NULL;
GtkTextBuffer *Buffer_v = NULL;
GtkTextIter Buffer_Start_v;
GtkTextIter Buffer_End_v;
int nb_int, i;
GtkWidget *pBoite;
Struct_Widget *pt = (Struct_Widget *) data;
pBoite = gtk_dialog_new_with_buttons("Visualisation Intitules.",GTK_WINDOW(pt->Main_win),GTK_DIALOG_MODAL,GTK_STOCK_OK,GTK_RESPONSE_OK,NULL);
/* Creation de la zone de saisie */
GtkWidget *pTextview = gtk_text_view_new_with_buffer(Buffer_v);
gtk_text_view_set_editable(GTK_TEXT_VIEW(pTextview), FALSE);
gtk_text_buffer_get_start_iter(Buffer_v, &Buffer_Start_v);
gtk_text_buffer_get_end_iter(Buffer_v, &Buffer_End_v);
GtkWidget *pScrolled = gtk_scrolled_window_new(NULL,NULL);
gtk_box_pack_start(GTK_BOX(GTK_DIALOG(pBoite)->vbox), pScrolled, TRUE, TRUE, 0);
gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW(pScrolled), pTextview);
gtk_widget_set_size_request(GTK_WIDGET(pScrolled), 400, 300);
/* ouverture du fichier .txt en lecture seule */
fich = fopen("memo.txt","r");
if(fich == NULL)
{
perror("Erreur d'ouverture du fichier\n");
exit(0);
}
fich_tmp = fopen("test.txt","w");
if(fich_tmp == NULL)
{
perror("Erreur d'ouverture du fichier\n");
exit(0) ;
}
/* Extraire les intitulés */
nb_int = 0;
while( feof(fich) == 0 )
{
/* Extraire une ligne (exple)*/
fgets(tmp, 50, fich);
/* Allocation */
*(title + nb_int) = (gchar *)malloc(NB_INT_MAX * sizeof(gchar));
if( strncmp(&tmp[0],"\"", 1) == 0 )
{
/* Recuperer le titre */
strcpy(tmp, &tmp[1]);
/* Retirer le \n si il y en a un */
if( strchr(tmp, '\n' ) != NULL ) *(strchr(tmp, '\n')) = '\x0';
/* On copie la categorie */
strcpy(*(title + nb_int), tmp);
fprintf(fich_tmp,"====> %s\n", *(title + nb_int));
nb_int++;
}
}
/* Sauvegarde du dernier intitulé */
pt->dernier_memo = title[nb_int - 1];
fprintf(fich_tmp,"Dernier intitule ====> %s\n", (pt->dernier_memo));
/* Ecriture des Intitulés dans la textview */
for( i = 0 ; i < nb_int ; i++)
{
gtk_text_buffer_insert(Buffer_v, &Buffer_Start_v, *(title + i), strlen(*(title + i )));
gtk_text_buffer_insert(Buffer_v, &Buffer_Start_v, "\n", 1);
}
/* Affichage des elements de la boite de dialogue */
gtk_widget_show_all(GTK_DIALOG(pBoite)->vbox);
/* fermeture du flux associé au fichier */
fclose(fich);
fclose(fich_tmp);
free(title);
/* Destruction de la boite de dialogue */
switch (gtk_dialog_run (GTK_DIALOG (pBoite)))
{
case GTK_RESPONSE_YES:
gtk_widget_destroy (pBoite);
return;
break;
}
gtk_widget_destroy (pBoite);
} |
Partager