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
|
Main.c
#include <stdlib.h>
#include <glib/gstdio.h>
#include <glib.h>
#include <gtk/gtk.h>
#include "fonction.h"
int main (int argc, char *argv[])
{
/// Initialisation de GTK+ */
gtk_init (&argc, &argv);
GtkWidget *p_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
GtkWidget *scrolled_window=gtk_scrolled_window_new (NULL, NULL);
GtkWidget *icon_view=gtk_icon_view_new_with_model (afficher_contenu_dosssier ("./Bibliotheque/image"));
gtk_icon_view_set_text_column (GTK_ICON_VIEW (icon_view), COL_DISPLAY_NAME);
gtk_icon_view_set_pixbuf_column (GTK_ICON_VIEW (icon_view), COL_PIXBUF);
gtk_icon_view_set_selection_mode (GTK_ICON_VIEW (icon_view), GTK_SELECTION_MULTIPLE);
gtk_icon_view_set_item_width (GTK_ICON_VIEW(icon_view),100);
gtk_container_add (GTK_CONTAINER (scrolled_window), icon_view);
gtk_container_add (GTK_CONTAINER (p_window), scrolled_window);
/// Affichage de la fenetre principale
gtk_widget_show_all (p_window);
/// Lancement de la boucle principale
gtk_main ();
return 0;
}
Fonction.c
#include <stdlib.h>
#include <gtk/gtk.h>
#include <gtk/gtkbbox.h>
#include <string.h>
#include <glib/gprintf.h>
#include "fonction.h"
/// Afficher le contenu d'un dossier
GtkTreeModel* afficher_contenu_dosssier(char* chemin){
GtkListStore *list_store;list_store = gtk_list_store_new (NUM_COLS, G_TYPE_STRING, GDK_TYPE_PIXBUF);
GdkPixbuf *pix ;
GtkTreeIter iter;
GDir* monDossier=g_dir_open(chemin, 0, NULL);
G_CONST_RETURN gchar* file= g_dir_read_name(monDossier);
gchar extension[6];gint i=0;
gchar nom_de_extension[]=".tiff";
gchar chemin_pix[40];
// Affiche tous les fichiers et dossiers contenus dans monDossier sur la sortie standard
while(file != NULL)
{
// recopie l'extention ( 5 derniers caractères) de file dans extention
for (i=0;i<6;i++){
extension[5-i]=file[strlen(file)-i];
}
if (strcmp(extension,nom_de_extension)==0){
sprintf(chemin_pix,"%s/%s",chemin,file);
printf("%s\n",file);
pix = gdk_pixbuf_new_from_file_at_size (chemin_pix,70,70, NULL);
gtk_list_store_append (list_store, &iter);
gtk_list_store_set (list_store, &iter, COL_DISPLAY_NAME, file, COL_PIXBUF, pix , -1);
}
file = g_dir_read_name(monDossier);
}
return GTK_TREE_MODEL (list_store);
}
fonction.h
#include <stdlib.h>
#include <gtk/gtk.h>
#include <gtk/gtkbbox.h>
#include <string.h>
#include <glib/gprintf.h>
enum
{
COL_DISPLAY_NAME,
COL_PIXBUF,
NUM_COLS
};
GtkTreeModel* afficher_contenu_dosssier(char* chemin); |
Partager