| 12
 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