Nombreuses questions : GdkEvent, empecher un dialog de se fermer.
Bonjour à tous,
Je suis en train de lire le tutoriel officiel de GTK+, et une nouvelle notion a fait son apparition que j'ai du mal à comprendre.
Je ne comprend pas très bien la différence entre une fonction callback "normal", et une fonction callback avec GdkEvent comme argument. Voici un code qui provient du tuto officiel :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
gint close_application( GtkWidget *widget,
GdkEvent *event,
gpointer data )
{
gtk_main_quit ();
return TRUE;
}
g_signal_connect_swapped (G_OBJECT (button), "clicked",
G_CALLBACK (close_application),
G_OBJECT (window)); |
Ici pourquoi faut il un GdkEvent en paramètre puisque le signal "clicked" ne fait pas partie de cette structure 8O . Le code suivant devrait suffire, non ? (ou tout cas il fonctionne) :
Code:
1 2 3 4 5 6 7 8 9 10 11
| gint close_application( GtkWidget *widget,
gpointer data )
{
gtk_main_quit ();
return TRUE;
g_signal_connect_swapped (G_OBJECT (button), "clicked",
G_CALLBACK (close_application),
G_OBJECT (window));
} |
Autre chose, comment empêcher un dialog de se fermer. Pas de problème vec une fenêtre, via "delete-event", mais impossible avec un dialog. J'ai regardé dans la doc et apparemment, le signal "delete-event" est désactivé lorsque le dialog est lancé (gtk_dialog_run). Quelqu'un a une solution ? Peut être que je peux forcer le signal ?
Dans mon programme j'ai une structure qui contient tous les éléments nécessaire au fonctionnement de la fenêtre principale. Je passe donc cette structure à des fonctions via un pointeur que j'ai alloué avec malloc, mais j'ai vu qu'il existait également g_malloc. Quelle différence existe il entre malloc et g_malloc ? Même si j'ai besoin de cette structure tout au long du programme faut il que je la free() :mouarf:, ou bien le système d'exploitation le fera quand le programme sera terminé (gtk_main_quit) ?
Derniere chose, je suis assez jeune (15 ans) et dans le tutoriel en anglais il y'a souvent un mot qui revient :"handler", qui signifierait poignée :lol:, quelqu'un peut m'expliquer ce que ce mot signifie ?
Merci à ceux qui prendront le temps de ma lire.