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
| #include <gtk/gtk.h>
#include <stdio.h>
static GtkWidget *Texte_affich;
static GtkWidget* Texte;
void OnEnter(GtkWidget *Texte, gpointer data);
int main(int argc, char** argv[])
{
GtkWidget* Fenetre;
GtkWidget* Box_verti;
GtkWidget* Enter;
GtkWidget* Scroll;
gtk_init(&argc, &argv);
Fenetre = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size(GTK_WINDOW(Fenetre), 500, 500);
gtk_window_set_title(GTK_WINDOW(Fenetre), "Mini-chat");
g_signal_connect(G_OBJECT(Fenetre),"destroy",G_CALLBACK(gtk_main_quit),0);
Box_verti=gtk_vbox_new(FALSE,5);
gtk_container_add(GTK_CONTAINER(Fenetre),Box_verti);
Scroll = gtk_scrolled_window_new(NULL, NULL);
gtk_box_pack_start(GTK_BOX(Box_verti), Scroll, TRUE, TRUE, 5);
Texte_affich=gtk_text_view_new();
gtk_container_add(GTK_CONTAINER(Scroll),Texte_affich);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(Scroll), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
Texte = gtk_entry_new();
gtk_box_pack_start(GTK_BOX(Box_verti),Texte, TRUE, TRUE, 0);
Enter=gtk_button_new_with_label("Entrer");
gtk_box_pack_start(GTK_BOX(Box_verti),Enter,FALSE,FALSE,0);
g_signal_connect(G_OBJECT(Enter),"clicked",G_CALLBACK(OnEnter),NULL);
gtk_widget_show_all(Fenetre);
gtk_main();
return 0;
}
void OnEnter(GtkWidget *Enter, gpointer data)
{
GtkTextBuffer *buffer;
GtkTextIter start;
GtkTextIter end;
FILE *fichier_affichage;
const gchar *chemin;
gchar lecture[1024];
gchar *sText, *sFile;
/*Recuperation texte*/
sText = gtk_entry_get_text(GTK_ENTRY(Texte));
/*Ouverture du fichier*/
fichier_affichage = fopen("Fichier_affichage", "w");
/*Ecriture fichier*/
fprintf(fichier_affichage, "%s", sText);
fclose(fichier_affichage);
sFile = "fichier_affichage";
buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(Texte_affich));
fichier_affichage = fopen(fichier_affichage,"rt");
gtk_text_buffer_get_start_iter(buffer,&start);
gtk_text_buffer_get_end_iter(buffer,&end);
gtk_text_buffer_delete(buffer, &start, &end);
g_file_get_contents(sFile, lecture, NULL, NULL);
gtk_text_buffer_get_start_iter(buffer,&start);
gtk_text_buffer_insert(buffer, &start, lecture, -1);
fclose(fichier_affichage);
} |
Partager