Bonjour à tous,
je suis en train de développer une application dans le cadre d'un projet, et je tombe sur un petit problème.

Pour le moment, mon application est sommairement composée d'un menu, et d'une hbox, qui sont toutes les deux mises dans une vbox.
Jusque là, pas de problème, mais je veux maintenant pouvoir ajouter une scrollbar à mon hbox ... et là j'ai un problème ...

En fait, je n'arrive mettre la scrollbar qu'à la première box qui contient les autres (la vbox), et donc lorsque je scrolle, le menu part avec ! Ce qui n'est pas pour me plaire bien sûr ...

Voici le code que j'utilise pour le moment, et qui scrolle toute la page :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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;
}
Je vous remercie d'avance pour vos réponses