Bonjour,

J'ai un petit probleme, je n'arrive pas a rajouter de tabs dans une page a onglets en GTK+.

Voila un petit code d'exemple :

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
# include <gtk/gtk.h>
# include <gdk/gdkprivate.h>
 
void    cb_quit(GtkWidget *p_widget __attribute__ ((__unused__)),
                gpointer user_data __attribute__ ((__unused__)))
{
  gtk_main_quit();
}
 
void    cb_disconnect(GtkWidget*p_widget __attribute__ ((__unused__)),
                 GtkWidget *fr)
{
  gint  num;
 
  num = gtk_notebook_get_current_page(GTK_NOTEBOOK(fr));
  gtk_notebook_remove_page(GTK_NOTEBOOK(fr), num);
}
 
void    cb_connect(GtkWidget*p_widget __attribute__ ((__unused__)),
                      GtkWidget *fr)
{
     GtkWidget     *chan;
     GtkWidget     *lbl;
 
     lbl = gtk_label_new("OK");
     chan = gtk_text_view_new();
     gtk_notebook_append_page(GTK_NOTEBOOK(fr), chan, lbl);
 
}
 
int main(int ac, char **av)
{
  GtkWidget     *window;
  GtkWidget     *Vbox;
  GtkWidget     *main_frame;
  GtkWidget     *b[2];
 
  gtk_init(&ac, &av);
  window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
  g_signal_connect(G_OBJECT (window), "destroy", G_CALLBACK(cb_quit), NULL);
  Vbox = gtk_vbox_new(FALSE, 0);
  gtk_container_add(GTK_CONTAINER(window), Vbox);
  main_frame = gtk_notebook_new();
  gtk_box_pack_start(GTK_BOX(Vbox), main_frame, TRUE, TRUE, 0);
 
  cb_connect(NULL, main_frame);
 
  b[0] = gtk_button_new_from_stock(GTK_STOCK_DISCONNECT);
  b[1] = gtk_button_new_from_stock(GTK_STOCK_CONNECT);
  g_signal_connect(G_OBJECT(b[0]), "clicked",
                   G_CALLBACK(cb_disconnect), main_frame);
  g_signal_connect(G_OBJECT(b[1]), "clicked",
                   G_CALLBACK(cb_connect), main_frame);
  gtk_box_pack_start(GTK_BOX(Vbox), b[0], FALSE, FALSE, 5);
  gtk_box_pack_start(GTK_BOX(Vbox), b[1], FALSE, FALSE, 5);
  gtk_widget_show_all(window);
  gtk_main();
  return (0);
}
La supprseion fonctionne mais pas l'ajout, une idee ?
cb_connect fonctionne bien car je m'en sert pour ajouter un nouvel onglet avant l'appel a gtk_main();

Merci d'avance.