Cet exempel va jsute vous montrer et expliquer ;-) comment creer une zone de texte, et comment y ranger le contenu d'un fichier.
Peut etre que par la suite je mettrait un petit editeur de text complet , mais seulement si j'ai le temps ;-)
Source / Exemple :
#include <gtk/gtk.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int main(int argc, char *argv[])
{
GtkWidget *fenetre, *boite, *texte, *scrollbar; //Declare les widget
int file;
gtk_init(&argc,&argv); //Intialisation de GTK
fenetre = gtk_window_new(GTK_WINDOW_TOPLEVEL); //Creer uen fenetre
boite = gtk_hbox_new(FALSE, 5); //Creer une boite de type hbox
gtk_container_add(GTK_CONTAINER(fenetre), boite); //Ajoute la boite au container de la fenetre
texte = gtk_text_new(NULL, NULL); //Creer une zone de texte
gtk_widget_set_usize(GTK_WIDGET(texte), 200, 200); //Attribut la taille initiale de la zone de texte
gtk_text_set_editable(GTK_TEXT (texte), TRUE); //Met TRUE pour indiquer que l'on peut modifier le texte, car si FALSE le texte peut etre afficher mais on peut pas modifier le contenu de la zone de texte
gtk_box_pack_start_defaults(GTK_BOX(boite), texte); //Ajoute la zone de texte a la boite
gtk_widget_show(texte); //Affiche la zone de texte
scrollbar = gtk_vscrollbar_new(GTK_TEXT(texte)->vadj); //Ajoute une scrollbar vertical a la zone
gtk_box_pack_end(GTK_BOX(boite), scrollbar, FALSE, FALSE, 0); //Ajoute la scrollbar a la zone de texte
gtk_widget_show(scrollbar); //Affiche la scrollbar
file = open(argv[1], O_RDONLY); //Ouvre le fichier passer en parametre au programme en lecture seule
if (file!=-1) //Si le fichier n'est pas vide
{
char buf[100]; //Declare un buffer
int nbre;
while ((nbre=read(file, buf, 100))!=0) //Tant que l'on est pas a la fin du fichier
//On ajoute les lignes du fichier a la zone de texte
gtk_text_insert (GTK_TEXT (texte), NULL,
NULL, NULL, buf, nbre);
close (file); //ferme le fichier
}
gtk_widget_show(boite); //Affiche la boite
gtk_widget_show(fenetre); //Affiche la fenetre
gtk_main(); //Rend la main a l'application
}
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.