Salut les GTK,

J'ai le probl�me suivant:

Disons que pour abr�ger mon interface est d�couper en deux notebook qui sont contenus dans un GtkPaned, widget conteneur contenant 2 �l�ments s�par�s par une poign�e permettant de redimensionner la largeur de chaque notebook.

Je tiens a signaler que je maximise la fen�tre au d�but du programme.

Face a l'�cran.

D'abord le notebook de gauche sert de conteneur pouvant accueillir divers contenus de fichier, chaque fichier est ajouter au notebook gr�ce a un bouton.

Le notebook de droite ne contient qu'un seule �l�ment et je voudrai qu'il ai une taille fixe au d�but du programme. Sans actionner la poign�e.

Hors d'abord celui-ci ne fait pas la taille de d�part que je lui ai allouer, il est plus grand car le notebook de gauche ne contient qu'un seule fichier au d�but du programme et puis il rapetissit au fur et a mesure que j'ajoute des fichiers au notebook de gauche.

Sch�matiquement �a donne �a, les '+' repr�sente la s�paration des deux notebook:

-) D�part du programme: qu'un seule fichier.

Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
 
+------+----------------------------+
 
 
 
 
+------+----------------------------+
-) Ajout d'un fichier dans le notebook de gauche:
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
 
+----------+------------------------+
 
 
 
 
+---------+------------------------+
-) Ajout d'un troisi�me fichier:
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
 
+-------------------+---------------+
 
 
 
 
+ ------------------+---------------+
etc..

Jusqu'a ce que le notebook de gauche ai des fl�ches aux tabs et que le notebook de droite ai atteint la taille souhait�.

Bon le code est cens� repr�senter le probl�me: je l'ai �crit expr�s pour ce poste et le probl�me est que lui il fonctionne correctement:

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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
 
#include <gtk/gtk.h>
 
static void destroy(GtkWidget *widget ,gpointer pointer) ;
 
static gboolean delete_event(GtkWidget *widget,GdkEvent *event,gpointer pointer) ;
 
void new_file_set(GtkButton *button, GtkWidget *left_notebook) ;
 
int main(int argc, char *argv[]) {
 
  gtk_init(&argc,&argv) ;
 
  GtkWidget *window  ;
 
  window=gtk_window_new(GTK_WINDOW_TOPLEVEL) ;
 
  gtk_window_set_title(GTK_WINDOW(window),"title") ;
 
  gtk_window_maximize(GTK_WINDOW(window));
 
 
  GtkWidget *main_vbox        = gtk_box_new(GTK_ORIENTATION_VERTICAL,0) ;
 
 
  GtkWidget *open_file_button = gtk_button_new_with_label("Open file") ;
 
 
  GtkWidget *left_notebook    = gtk_notebook_new() ;  /** Dynamically files add as content               **/
 
  gtk_notebook_set_scrollable(GTK_NOTEBOOK(left_notebook), TRUE);
 
  g_signal_connect(G_OBJECT(open_file_button),"clicked",G_CALLBACK(new_file_set),left_notebook) ;
 
 
  GtkWidget *right_notebook   = gtk_notebook_new()    ;  /** Get only one page and should be fixed size. **/
 
  gtk_widget_set_size_request(right_notebook, 255,-1) ;  /** The width should be fixed.                  **/
 
  GtkWidget *main_paned       = gtk_paned_new(GTK_ORIENTATION_HORIZONTAL) ;
 
  /** Uncomment to get a visual view: 
  GtkWidget *button_test1      = gtk_button_new_with_label("test1") ;
  
  GtkWidget *button_test2      = gtk_button_new_with_label("test2") ;
  
  gtk_notebook_append_page(GTK_NOTEBOOK(left_notebook),button_test1,NULL) ;
  gtk_notebook_append_page(GTK_NOTEBOOK(right_notebook),button_test2,NULL) ;
  **/
 
 
  gtk_paned_pack1(GTK_PANED(main_paned),
                 left_notebook,          /** Child widget */
                 TRUE,                   /** should this child expand when the paned widget is resized.  **/
                 FALSE);                 /** can this child be made smaller than its requisition.        **/
 
 
 
  gtk_paned_pack2(GTK_PANED(main_paned),
                 right_notebook,         /** Child widget */
                 FALSE,                  /** should this child expand when the paned widget is resized. */
                 FALSE);                 /** can this child be made smaller than its requisition.       */
 
 
  gtk_box_pack_start(GTK_BOX(main_vbox), open_file_button, FALSE, FALSE, 0) ;
 
  gtk_box_pack_start(GTK_BOX(main_vbox), main_paned,       TRUE,  TRUE,  0) ;
 
 
 
  g_signal_connect(G_OBJECT(window),"destroy",G_CALLBACK(destroy),NULL) ;
 
  g_signal_connect(G_OBJECT(window),"delete-event",G_CALLBACK(delete_event),NULL) ;
 
  gtk_container_add(GTK_CONTAINER(window),main_vbox) ;
 
  gtk_widget_show_all(window) ;
 
  gtk_main() ;
 
  return 0 ;
 
}
 
void new_file_set(GtkButton *button, GtkWidget *left_notebook) {
 
  /** Here we set a new page to left_notebook with the content of the selected file **/
 
  /** Something like this:
    *
    * gtkWidget *scrolled_window = gtk_scrolled_window_new(NULL, NULL) ;
    *
    * gtkWidget *textview        = gtk_text_view_new() ;
    *
    * Here feed the textview with file content.
    *
    * gtk_container_add(GTK_CONTAINER(scrolled_window),textview) ;
    *
    * gtk_notebook_append_page(GTK_NOTEBOOK(left_notebook), scrolled_window, NULL);
    *
    **********************************************************************************/
 
  return ;
}
 
static void destroy(GtkWidget *widget,gpointer pointer) {
  fprintf(stdout,"%s function activate\n",__func__) ;
  gtk_main_quit() ;
}
 
static gboolean delete_event(GtkWidget *widget,GdkEvent *event,gpointer pointer) {
  if (event->type == GDK_DELETE) {
    fprintf(stdout,"%s delete_event catch\n",__func__) ;
    return FALSE ;
  }
  else {
    fprintf(stdout,"%s delete_event not catch\n",__func__) ;
    return TRUE ;
  }
}
Merci pour vos r�ponses �clair�es.