Bonjour (ou re bonjour, vu que je post pas mal en ce moment ^^)

Je continue le développement de mon interface graphique avec GTK3.
Je souhaiterais essayer de reproduire cela :

Nom : source.png
Affichages : 740
Taille : 75,0 Ko

L'objectif c'est d'avoir une sorte de header ou je vais disposer plein de boutons horizontalement. Je souhaiterais que mon header prenne toute la longueur de mon interface graphique (qui aura une taille fixe). Mon header devra donc avoir une scroll bar.

Et en dessous de mon header, je vais disposer tous plein de widget.

Pour réaliser cela, j'avais penser de la manière suivante :
Créer une première grid appelé grid_secondaire dans la quelle je vais coller tous mes boutons qui représenteront mon header.
Créer une deuxième grid appelé grid_principale. J'ajoute ensuite sur la première ligne de ma grid_principale, ma grid_secondaire.
Et ensuite, j'ajoute tous les widgets en dessous.

Je sais pas si j'ai été bien clair (et je suis pas du tout sur de m'y prendre de la bonne manière non plus).
J'ai fais un bout de code pour essayer d'illustrer mes propos :

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
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
 
 
#include <stdlib.h>
#include <gtk/gtk.h>
//#include "rsa.c"
 
 
// gcc test1.c -o test1 $(pkg-config --libs --cflags gtk+-3.0)
 
 
int main(int argc,char **argv){
 
	// INITIALISATION DE GTK
	gtk_init(&argc, &argv);
 
 
	// VARIABLE
	GtkWidget *fenetre = NULL;
	GtkWidget *scroll_bar;
 	GtkWidget *grid, *general_grid = NULL;
 	GtkWidget *bouton1, *bouton2, *bouton3, *bouton4, *bouton5, *bouton6, *bouton7 = NULL;
 
	// FENETRE PRINCIPALE ET PARAMETRAGE
	fenetre = gtk_window_new(GTK_WINDOW_TOPLEVEL);				// on créer notre fenetre principale
	gtk_window_set_title(GTK_WINDOW(fenetre), "Calculatrice Crypto");	// titre
	gtk_window_set_default_size(GTK_WINDOW(fenetre), 500, 500);		// taille
	gtk_window_set_position(GTK_WINDOW(fenetre), GTK_WIN_POS_CENTER);	// position 
 
 
	scroll_bar = gtk_scrolled_window_new(NULL, NULL);
 	grid = gtk_grid_new();							// grid secodnaire (va être add dans la grid general)
 	general_grid = gtk_grid_new();						// grid principal					
 
 
	// ----------------- BOUTON ----------------------
	// ajoute les 5 premiers boutons sur la première ligne de la grid : grid
	bouton1 = gtk_button_new_with_label("11111");	
	gtk_grid_attach(GTK_GRID(grid), bouton1, 1, 1, 1, 1);
 
	bouton2 = gtk_button_new_with_label("222222222222");	
	gtk_grid_attach(GTK_GRID(grid), bouton2, 2, 1, 1, 1);
 
	bouton3 = gtk_button_new_with_label("3333333333331");	
	gtk_grid_attach(GTK_GRID(grid), bouton3, 3, 1, 1, 1);
 
	bouton4 = gtk_button_new_with_label("4444444444444");	
	gtk_grid_attach(GTK_GRID(grid), bouton4, 4, 1, 1, 1);
 
	bouton5 = gtk_button_new_with_label("5555555555555");	
	gtk_grid_attach(GTK_GRID(grid), bouton5, 5, 1, 1, 1);
 
	// ajoute les boutons 6 et 7 sur la 2eme ligne de la grid : grid_general
	bouton6 = gtk_button_new_with_label("6666666666666");	
	gtk_grid_attach(GTK_GRID(general_grid), bouton6, 1, 2, 1, 1);
 
	bouton7 = gtk_button_new_with_label("7777777777777");	
	gtk_grid_attach(GTK_GRID(general_grid), bouton7, 2, 2, 1, 1);
 
 
 
 
 
	gtk_grid_attach(GTK_GRID(general_grid), scroll_bar, 1, 1, 5, 1);		// ajoute la scroll_bar dans la grid (COMMENT FAIRE POUR QUE SCROLL BAR OCCUPE TOUTE LA LIGNE) ?
 
	gtk_container_add(GTK_CONTAINER(scroll_bar), grid);				// rend grid scrollable
	gtk_container_add(GTK_CONTAINER(fenetre), general_grid);			// add la grid : genera_grid dans la fenetre
 
 
 
 
 
	// FONCTION DE CALLBACK 
   	g_signal_connect(G_OBJECT(fenetre), "delete-event", G_CALLBACK(gtk_main_quit), NULL);
 
	// AUTRE
	gtk_widget_show_all(fenetre);				// affichage
	gtk_main();						// lancement de la boucle infini
 
	return EXIT_SUCCESS;
}
J'arrive bien a avoir ma slidebar sur mon header, mais impossible de faire en sorte que ce dernier prenne toute la place disponible dans la fenetre.
Comment est ce que je pourrais faire pour résoudre mon problème ? (déjà, est ce qu'utiliser une grid dans une grid est la meilleur des solutions pour ce que je souhaite faire) ?


Cordialement