Salut,

J'ai crée pour mon programme un popup menu qui s'ouvre d'un clic droit sur chacun de mes widgets (mes petites boiboites, n'est-ce pas liberforce ). Pour des raisons pratiques et d'économie de mémoire, j'ai crée un unique popup pour tous les widgets ainsi qu'une unique callback pour tous les menu item, le widget cliqué est justement déterminé au moment du clic pour le distinguer et ainsi modifier en concordance le popup menu. Le souci est que chaque widget contient d'autres données et il faut les passer au popup menu qui agira en fonction du menu item cliqué par l'utilisateur.

Pour corser un peu le tout, je préfère utiliser des pointeurs de fonctions qui seront indiqués par une partie externe à ce bloc (où j'y dessine mes widgets), ceci afin de bien séparer mon code des données (comme tu m'as conseillé, liberforce ) pour par exemple utiliser ce code dans d'autres programmes sans avoir à le modifier.

Je ne peux pas passer les données au moment de la connexion du signal car justement cela dépend du widget cliqué par l'utilisateur. Je dois au maximum éviter d'utiliser des variables globales. J'ai pensé à connecter le signal du widget au moment du clic droit, ce qui me permet de modifier les menus item sans encombrer le conteneur de données (le gpointer data), le problème est je crois ne plus pouvoir modifier par la suite le conteneur de données, si je ne me trompe pas. J'ai pensé à déconnecter le signal du widget à chaque fois que l'action est terminée mais je n'ai pas trouvé de telle fonction.

Une idée ? Une piste ?
Merci.