Bonjour,

Je suis en train de développer une GUI avec glade.

Dans mon code C, j'ai associé à un bouton la fonction cb_open. Cette fonction doit ouvrir un gtk-assitant (défini dans glade). Comment le passer en paramètre de la fonction cb_open?

voici mon fichier main.c :

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
#include <stdlib.h>
#include <gtk/gtk.h>
#include "Callbacks.h"
 
 
 
int main (int argc, char ** argv)
{
   GtkBuilder  *  p_builder   = NULL;
   GError      *  p_err       = NULL;
 
 
   /* Initialisation de GTK+ */
   gtk_init (& argc, & argv);
 
 
   /* Creation d'un nouveau GtkBuilder */
   p_builder = gtk_builder_new ();
 
   if (p_builder != NULL)
   {
      /* Chargement du XML dans p_builder */
      gtk_builder_add_from_file (p_builder, "GUI.glade", & p_err);
 
      if (p_err == NULL)
      {
         /* 1.- Recuparation d'un pointeur sur la fenetre. */
         GtkWidget * p_win = (GtkWidget *) gtk_builder_get_object (
            p_builder, "window1"
         );
         gtk_window_set_default_size(GTK_WINDOW(p_win), 1024, 768);
         g_signal_connect(G_OBJECT(p_win), "destroy", G_CALLBACK(cb_quit), NULL);
 
         /* 2.- */
         /* Fenetres annexe*/
         GtkWidget * p_NP_assistant = (GtkWidget *) gtk_builder_get_object (
            p_builder, "New_project_assistant"
         );
         gtk_window_set_default_size(GTK_WINDOW(p_NP_assistant), 300, 200);
         g_signal_connect(G_OBJECT(p_NP_assistant), "close", G_CALLBACK(cb_quit_NP_assistant), NULL);
         g_signal_connect(G_OBJECT(p_NP_assistant), "cancel", G_CALLBACK(cb_quit_NP_assistant), NULL);
 
         /* 3.- */
         /* Signaux des bouttons*/
         g_signal_connect (
            gtk_builder_get_object (p_builder, "bouton_Nouveau"),
            "clicked", G_CALLBACK (cb_open), NULL
         );        
 
         gtk_widget_show_all (p_win);
         gtk_main ();
      }
      else
      {
         /* Affichage du message d'erreur de GTK+ */
         g_error ("%s", p_err->message);
         g_error_free (p_err);
      }
   }
 
 
   return EXIT_SUCCESS;
}
mon fichier Callbacks.c :

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
#include <stdio.h>
#include <stdlib.h>
#include <gtk/gtk.h>
#include "Callbacks.h"
 
void cb_open (GtkWidget * p_wid, gpointer p_data, GtkWidget * p_NP_assistant)
{
printf("toto\r\n");
gtk_widget_show_all (p_NP_assistant);
}
 
void cb_quit (GtkWidget * p_wid, gpointer p_data)
{
   gtk_main_quit ();
}
 
void cb_quit_NP_assistant (GtkWidget * p_wid, gpointer p_data)
{
   gtk_main_quit ();
}
Si vous pouviez me donner un/des exemples de passage de paramètres SVP...

Merci,

Alex