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
|
GtkTreeModel*
creer_view_film(void)
{
GtkTreeViewColumn *pColumn;
GtkTreeStore *pTreeStore;
GtkWidget *pTreeView;
GtkCellRenderer *pCellRenderer;
gint i;
gint j;
/* Chargement de la list */
Noeud* ListFilm = (Noeud*)malloc(sizeof(Noeud)); // je declare ici mes liste
Noeud* ListCategorie = (Noeud*)malloc(sizeof(Noeud));
strcpy(ListCategorie->nom, "0");
ListCategorie->suivant = NULL;
ChargerListFilm(ListFilm); // j'initialise ma list à partir d'un fichier text
DefinirCategorie(ListFilm, ListCategorie);
trierfilms(ListFilm,ListCategorie); // je subdivise par categorie mes films dans une autre liste
/* Creation du modele */
pTreeStore = gtk_tree_store_new(N_COLUMN2, G_TYPE_STRING, G_TYPE_STRING,G_TYPE_STRING,G_TYPE_STRING);
gchar *sTexte2;
sTexte2 = g_malloc(16);
gchar* idfilm;
idfilm = g_malloc(16);
gchar* stock;
stock = g_malloc(16);
gchar* prix;
prix = g_malloc(16);
Noeud* cat = ListCategorie->suivant; // premier element non desiré, j'le zap
/* Insertion des elements */
GtkTreeIter pIter;
GtkTreeIter pIter2;
for(i = 1 ; i < tailleL(ListCategorie); i++)
{
// je recupere les differents categories de films.
sprintf(sTexte2, "<b><span foreground=\"#B8860B\" > -> %s </span></b>", cat->nom);
/* Creation de la nouvelle ligne */
gtk_tree_store_append(pTreeStore, &pIter, NULL);
/* Mise a jour des donnees */
gtk_tree_store_set(pTreeStore, &pIter,
ID_COLUMN2, "",
NAME_COLUMN, sTexte2 ,
PRIX_COLUMN, "",
STOCK_COLUMN, "99", // pour reperer les lignes parents, et les afficher en couleur.
-1);
Noeud* ListFilm = cat->valeur; // recupere l'ensemble des films contenu dans la categorie
ListFilm = ListFilm->suivant; // le premier element de ma liste est non desiré, j'le zap.
int k = tailleL(ListFilm);
for(j = 0 ; j < k ; j++)
{
Film* f = ListFilm->valeur; // je charge les données à partir de mes structures de données
sprintf(sTexte2, "%s", f->titre);
sprintf(idfilm, "%d", f->id);
sprintf(stock, " %d", f->stock);
sprintf(prix, "%d", f->prix);
/* Creation de la nouvelle ligne enfant */
gtk_tree_store_append(pTreeStore, &pIter2, &pIter);
/* Mise a jour des donnees */
gtk_tree_store_set(pTreeStore, &pIter2,
ID_COLUMN2, idfilm,
NAME_COLUMN, sTexte2,
PRIX_COLUMN, prix,
STOCK_COLUMN, stock,
-1);
ListFilm = ListFilm->suivant;
}
cat = cat->suivant; // je passe à la categorie suivante
} |
Partager