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
|
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 d’allouer la mémoire pour l’application.");
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ù s’affiche 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 d’affichage
gtk_widget_show_all(app->m_window);
return app;
} |
Partager