| 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
 
 |  
Application* newApplication()
{
    // Déclaration des variables
    Application* app = NULL;
    GtkWidget* boxVerticale = NULL;
    GtkWidget* boxPrincipale = NULL;
    GtkWidget* scrollbar;
 
    app = (Application*) malloc(sizeof(Application));
    if(!app)
    {
        fprintf(stderr, "Erreur : Impossible dallouer la mémoire pour lapplication.");
        exit(EXIT_FAILURE);
    }
 
    app->m_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title(GTK_WINDOW(app->m_window), "Projet C - Sujet 3");
    gtk_window_set_position(GTK_WINDOW(app->m_window), GTK_WIN_POS_CENTER);
    gtk_window_set_default_size(GTK_WINDOW(app->m_window), 800, 600);
    gtk_window_set_resizable (GTK_WINDOW(app->m_window), TRUE);
 
    app->m_projet = newProjet();
 
    scrollbar = gtk_scrolled_window_new(NULL, NULL);
    gtk_container_add(GTK_CONTAINER(app->m_window),scrollbar);
 
    // Box verticale
    boxVerticale = gtk_vbox_new(FALSE, 0);
    gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scrollbar), boxVerticale);
    gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrollbar), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
 
    // Création du menu
    app->m_menuBar = newMenuBar(app);
    gtk_box_pack_start(GTK_BOX(boxVerticale), app->m_menuBar->m_bar, FALSE, FALSE, 0);
 
    // Box principale
    boxPrincipale = gtk_hbox_new(FALSE, 0);
    gtk_container_add(GTK_CONTAINER(boxVerticale), boxPrincipale);
 
    // Affectation de la box où saffiche le projet
    setProjetBox(app->m_projet, GTK_BOX(boxPrincipale));
 
    // Génération et actualisation du widget correspondant au projet
    generateProjetWidget(app->m_projet);
 
    // Connexion entre lévénement "quit" et la destruction de la fenêtre
    g_signal_connect(G_OBJECT(app->m_window), "destroy", G_CALLBACK(cb_quit), app);
 
    // Demande daffichage
	gtk_widget_show_all(app->m_window);
 
    return app;
} | 
Partager